Skip to content

Commit d106b4c

Browse files
committed
Update SchoolClass::Delete to mark as deleted
Instead of calling `destroy!` on SchoolClass, we now call `mark_as_deleted!` instead.
1 parent 937e693 commit d106b4c

2 files changed

Lines changed: 14 additions & 9 deletions

File tree

lib/concepts/school_class/operations/delete.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class Delete
55
class << self
66
def call(school:, school_class_id:)
77
response = OperationResponse.new
8-
delete_school_class(school, school_class_id)
8+
mark_school_class_as_deleted(school, school_class_id)
99
response
1010
rescue StandardError => e
1111
Sentry.capture_exception(e)
@@ -15,9 +15,9 @@ def call(school:, school_class_id:)
1515

1616
private
1717

18-
def delete_school_class(school, school_class_id)
18+
def mark_school_class_as_deleted(school, school_class_id)
1919
school_class = school.classes.find(school_class_id)
20-
school_class.destroy!
20+
school_class.mark_as_deleted!
2121
end
2222
end
2323
end

spec/concepts/school_class/delete_spec.rb

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,21 @@
1818
expect(response.success?).to be(true)
1919
end
2020

21-
it 'deletes a school class' do
22-
expect { described_class.call(school:, school_class_id:) }.to change(SchoolClass, :count).by(-1)
21+
it 'marks the school class as deleted' do
22+
described_class.call(school:, school_class_id:)
23+
expect(school_class.reload.deleted?).to be true
2324
end
2425

25-
it 'deletes class students in the school class' do
26-
expect { described_class.call(school:, school_class_id:) }.to change(ClassStudent, :count).by(-1)
26+
it 'does not delete the school class record' do
27+
expect { described_class.call(school:, school_class_id:) }.not_to change(SchoolClass, :count)
2728
end
2829

29-
it 'deletes class teachers in the school class' do
30-
expect { described_class.call(school:, school_class_id:) }.to change(ClassTeacher, :count).by(-1)
30+
it 'does not delete class students in the school class' do
31+
expect { described_class.call(school:, school_class_id:) }.not_to change(ClassStudent, :count)
32+
end
33+
34+
it 'does not delete class teachers in the school class' do
35+
expect { described_class.call(school:, school_class_id:) }.not_to change(ClassTeacher, :count)
3136
end
3237

3338
context 'when deletion fails' do

0 commit comments

Comments
 (0)