Skip to content

Commit 0531006

Browse files
committed
Tests for mark-as-deleted in SchoolClass model
1 parent d106b4c commit 0531006

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

spec/models/school_class_spec.rb

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,50 @@
285285
end
286286
end
287287

288+
describe '#deleted?' do
289+
it 'is not deleted by default' do
290+
school_class = create(:school_class, teacher_ids: [teacher.id], school:)
291+
expect(school_class.deleted?).to be false
292+
end
293+
294+
it 'returns true when deleted' do
295+
school_class = create(:school_class, teacher_ids: [teacher.id], school:)
296+
school_class.update!(deleted: true)
297+
expect(school_class.deleted?).to be true
298+
end
299+
end
300+
301+
describe '#mark_as_deleted!' do
302+
it 'sets deleted to true' do
303+
school_class = create(:school_class, teacher_ids: [teacher.id], school:)
304+
school_class.mark_as_deleted!
305+
expect(school_class.deleted).to be true
306+
end
307+
308+
it 'does nothing if already deleted' do
309+
school_class = create(:school_class, teacher_ids: [teacher.id], school:, deleted: true)
310+
expect { school_class.mark_as_deleted! }.not_to(change { school_class.reload.updated_at })
311+
end
312+
end
313+
314+
describe '.active scope' do
315+
it 'only returns active (non-deleted) classes' do
316+
active_class = create(:school_class, teacher_ids: [teacher.id], school:, deleted: false)
317+
create(:school_class, teacher_ids: [teacher.id], school:, deleted: true)
318+
319+
expect(described_class.active).to contain_exactly(active_class)
320+
end
321+
end
322+
323+
describe '.deleted scope' do
324+
it 'only returns deleted classes' do
325+
create(:school_class, teacher_ids: [teacher.id], school:, deleted: false)
326+
deleted_class = create(:school_class, teacher_ids: [teacher.id], school:, deleted: true)
327+
328+
expect(described_class.deleted).to contain_exactly(deleted_class)
329+
end
330+
end
331+
288332
describe 'auditing' do
289333
subject(:school_class) { create(:school_class, teacher_ids: [teacher.id], school:) }
290334

0 commit comments

Comments
 (0)