Skip to content

Commit

Permalink
feat: change activity prereqs to be met if the approvable needed is a…
Browse files Browse the repository at this point in the history
…vailable
  • Loading branch information
santiagorodriguez96 committed Jun 17, 2024
1 parent 3dad2b3 commit 621acc4
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 25 deletions.
6 changes: 1 addition & 5 deletions app/models/activity_prerequisite.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@ class ActivityPrerequisite < Prerequisite
belongs_to :approvable_needed, class_name: "Approvable"

def met?(approved_approvable_ids)
if approvable_needed.is_exam?
approved_approvable_ids.include?(approvable_needed.subject.course.id)
else
true
end
approvable_needed.available?(approved_approvable_ids)
end
end
33 changes: 13 additions & 20 deletions spec/models/activity_prerequisite_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,25 @@

RSpec.describe ActivityPrerequisite, type: :model do
describe '#met?' do
context 'when approvable needed is an exam' do
context "when the course of the approvable needed's subject is approved" do
it 'returns true' do
subject_needed = create :subject, :with_exam
prerequisite = create :activity_prerequisite, approvable_needed: subject_needed.exam

expect(prerequisite.met?([subject_needed.course.id])).to be_truthy
end
end
context 'when the approvable needed is available' do
it 'returns true' do
subject_needed = create :subject, :with_exam
create :credits_prerequisite, approvable: subject_needed.exam, credits_needed: 5

context "when the the course of the approvable needed's subject is not approved" do
it 'returns false' do
subject_needed = create :subject, :with_exam
prerequisite = create :activity_prerequisite, approvable_needed: subject_needed.exam
prerequisite = create :activity_prerequisite, approvable_needed: subject_needed.exam

expect(prerequisite.met?([])).to be_falsey
end
expect(prerequisite.met?([create(:subject, credits: 5).course])).to be_truthy
end
end

context 'when approvable needed is a course' do
it 'returns true' do
subject_needed = create :subject
prerequisite = create :activity_prerequisite, approvable_needed: subject_needed.course
context 'when the approvable needed is not available' do
it 'returns false' do
subject_needed = create :subject, :with_exam
create :credits_prerequisite, approvable: subject_needed.exam, credits_needed: 5

prerequisite = create :activity_prerequisite, approvable_needed: subject_needed.exam

expect(prerequisite.met?([])).to be_truthy
expect(prerequisite.met?([])).to be_falsey
end
end
end
Expand Down

0 comments on commit 621acc4

Please sign in to comment.