Sha256: 7a5cc939c9107ff2068e2e0d49be2db5f79249c622394a1a2e395b32ac418b0d

Contents?: true

Size: 1.77 KB

Versions: 5

Compression:

Stored size: 1.77 KB

Contents

require 'spec_helper_models'

describe Gaku::StudentSelection do

  let(:student) { create(:student) }
  let(:student2) { create(:student) }
  let!(:user) { create(:user) }

  before do
    $redis.del(:student_selection)
  end

  describe '.add' do
    it 'adds student to selection' do
      expect(described_class.new(user).add(student)).to eq([student])
    end
  end

  describe '.remove' do
    it 'removes student from selection' do
      described_class.new(user).add(student)
      expect(described_class.new(user).remove(student)).to eq []
    end
  end

  describe '.all' do
    it 'returns all selected students' do
      described_class.new(user).add(student)
      expect(described_class.new(user).all).to eq([student.id.to_s])
    end
  end

  describe '.students' do
    it 'returns students object selected students' do
      described_class.new(user).add(student)
      expect(described_class.new(user).students).to eq([student])
    end
  end

  describe '.remove_all' do
    it 'removes all selected students' do
      described_class.new(user).add(student)
      expect(described_class.new(user).remove_all).to eq []
    end
  end

  describe '.collection' do
    it 'add collection to selected students' do

      described_class.new(user).collection([student, student2])
      expect(described_class.new(user).all).to eq [student.id.to_s, student2.id.to_s]
      expect(described_class.new(user).students).to eq [student, student2]
    end
  end

  describe '.remove_collection' do
    it 'add collection to selected students' do
      described_class.new(user).collection([student, student2])
      described_class.new(user).remove_collection([student, student2])
      expect(described_class.new(user).all).to eq []
      expect(described_class.new(user).students).to eq []
    end
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gaku-0.2.4 core/spec/services/student_selection_spec.rb
gaku-0.2.3 core/spec/services/student_selection_spec.rb
gaku-0.2.2 core/spec/services/student_selection_spec.rb
gaku-0.2.1 core/spec/services/student_selection_spec.rb
gaku-0.2.0 core/spec/services/student_selection_spec.rb