Advertisement
storhet

rspec example

May 29th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rails 2.08 KB | None | 0 0
  1. require 'rails_helper'
  2.  
  3. RSpec.describe Admin::IndividualsController, :type => :controller do
  4.   let(:employer){ create(:employer) }
  5.   let(:cohort){ create(:cohort, employer: employer) }
  6.   let(:individual1){ create(:individual) }
  7.   let(:individual2){ create(:individual) }
  8.   let(:coach){ create(:user) }
  9.   let(:coach2){ create(:user) }
  10.  
  11.   before :each do
  12.     sign_in create(:user, roles: [:wellness_coach_admin])
  13.   end
  14.  
  15.   describe '#assign_cohort' do
  16.     it 'should assign' do
  17.       expect{
  18.         post :assign_cohort, cohort_id: cohort.id, assign: [individual1.id, individual2.id]
  19.       }.to change(cohort.individuals, :count).to(2)
  20.     end
  21.  
  22.     it 'should skip already assigned' do
  23.       cohort.individuals << individual1
  24.       cohort.save!
  25.       post :assign_cohort, cohort_id: cohort.id, assign: [individual1.id, individual2.id]
  26.       cohort.reload
  27.       expect(cohort.individuals).to eq [individual1, individual2]
  28.     end
  29.   end
  30.  
  31.   describe '#assign_coach' do
  32.     it 'should assign one' do
  33.       expect{
  34.         post :assign_coach, coach_ids: [coach.id], assign: [individual1.id, individual2.id]
  35.       }.to change(coach.patients, :count).to(2)
  36.     end
  37.  
  38.     it 'should assign multiple coaches to multiple individuals' do
  39.       post :assign_coach, coach_ids: [coach.id, coach2.id], assign: [individual1.id, individual2.id]
  40.       expect(coach.patients).to eq [individual1, individual2]
  41.       expect(coach2.patients).to eq [individual1, individual2]
  42.     end
  43.  
  44.     it 'should skip already assigned' do
  45.       coach.patients << individual1
  46.       coach.save!
  47.       post :assign_coach, coach_ids: [coach.id], assign: [individual1.id, individual2.id]
  48.       coach.reload
  49.       expect(coach.patients).to eq [individual1, individual2]
  50.     end
  51.   end
  52.  
  53.   describe '#unassign_coach' do
  54.     it 'should unassign' do
  55.       coach.patients << individual1
  56.       coach.save!
  57.       expect(coach.patients).to eq [individual1]
  58.  
  59.       expect{
  60.         post :unassign_coach, coach_id: coach.id, individual_id: individual1.id
  61.       }.to change(coach.patients, :count).to(0)
  62.     end
  63.   end
  64. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement