|
285 | 285 | end |
286 | 286 | end |
287 | 287 |
|
| 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 | + |
288 | 332 | describe 'auditing' do |
289 | 333 | subject(:school_class) { create(:school_class, teacher_ids: [teacher.id], school:) } |
290 | 334 |
|
|
0 commit comments