spec: reorganize spec to improve diffing
this is prework to help the code reivew diffing for GRADE-893 ref: GRADE-893 Change-Id: I1fe2622bc88b32332fac36b2ec839fda3518841f Reviewed-on: https://gerrit.instructure.com/143574 Tested-by: Jenkins Reviewed-by: Jeremy Neander <jneander@instructure.com> Product-Review: Derek Bender <djbender@instructure.com> QA-Review: Derek Bender <djbender@instructure.com>
This commit is contained in:
parent
c683d109c6
commit
e895ef4fa7
|
@ -16,7 +16,7 @@
|
|||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
require File.expand_path(File.dirname(__FILE__) + '/../sharding_spec_helper.rb')
|
||||
require_relative '../spec_helper'
|
||||
|
||||
describe DueDateCacher do
|
||||
before(:once) do
|
||||
|
@ -201,16 +201,19 @@ describe DueDateCacher do
|
|||
end
|
||||
|
||||
describe "#recompute" do
|
||||
before(:once) do
|
||||
@cacher = DueDateCacher.new(@course, [@assignment])
|
||||
submission_model(:assignment => @assignment, :user => @student)
|
||||
Submission.update_all(:cached_due_date => nil)
|
||||
subject(:cacher) { DueDateCacher.new(@course, [@assignment]) }
|
||||
|
||||
let(:submission) { submission_model(assignment: @assignment, user: @student) }
|
||||
|
||||
describe "cached_due_date" do
|
||||
before do
|
||||
Submission.update_all(cached_due_date: nil)
|
||||
end
|
||||
|
||||
context 'without existing submissions' do
|
||||
it "should create submissions for enrollments that are not overridden" do
|
||||
Submission.destroy_all
|
||||
expect { @cacher.recompute }.to change {
|
||||
expect { cacher.recompute }.to change {
|
||||
Submission.active.where(assignment_id: @assignment.id).count
|
||||
}.from(0).to(1)
|
||||
end
|
||||
|
@ -218,7 +221,7 @@ describe DueDateCacher do
|
|||
it "should delete submissions for enrollments that are deleted" do
|
||||
@course.student_enrollments.update_all(workflow_state: 'deleted')
|
||||
|
||||
expect { @cacher.recompute }.to change {
|
||||
expect { cacher.recompute }.to change {
|
||||
Submission.active.where(assignment_id: @assignment.id).count
|
||||
}.from(1).to(0)
|
||||
end
|
||||
|
@ -229,7 +232,7 @@ describe DueDateCacher do
|
|||
@override.save!
|
||||
Submission.destroy_all
|
||||
|
||||
expect { @cacher.recompute }.to change {
|
||||
expect { cacher.recompute }.to change {
|
||||
Submission.active.where(assignment_id: @assignment.id).count
|
||||
}.from(0).to(1)
|
||||
end
|
||||
|
@ -258,7 +261,7 @@ describe DueDateCacher do
|
|||
end
|
||||
|
||||
it "should not create another submission for enrollments that have a submission" do
|
||||
expect { @cacher.recompute }.not_to change {
|
||||
expect { cacher.recompute }.not_to change {
|
||||
Submission.active.where(assignment_id: @assignment.id).count
|
||||
}
|
||||
end
|
||||
|
@ -268,7 +271,7 @@ describe DueDateCacher do
|
|||
@override.override_due_at(@assignment.due_at + 1.day)
|
||||
@override.save!
|
||||
|
||||
expect { @cacher.recompute }.not_to change {
|
||||
expect { cacher.recompute }.not_to change {
|
||||
Submission.active.where(assignment_id: @assignment.id).count
|
||||
}
|
||||
end
|
||||
|
@ -311,16 +314,16 @@ describe DueDateCacher do
|
|||
@assignment.due_at += 1.day
|
||||
@assignment.save!
|
||||
|
||||
@cacher.recompute
|
||||
expect(@submission.reload.cached_due_date).to eq @assignment.due_at.change(sec: 0)
|
||||
cacher.recompute
|
||||
expect(submission.reload.cached_due_date).to eq @assignment.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
it "should set the cached_due_date to nil if the assignment has no due_at" do
|
||||
@assignment.due_at = nil
|
||||
@assignment.save!
|
||||
|
||||
@cacher.recompute
|
||||
expect(@submission.reload.cached_due_date).to be_nil
|
||||
cacher.recompute
|
||||
expect(submission.reload.cached_due_date).to be_nil
|
||||
end
|
||||
|
||||
it "does not update submissions for students with concluded enrollments" do
|
||||
|
@ -346,8 +349,8 @@ describe DueDateCacher do
|
|||
@override.override_due_at(@assignment.due_at - 1.day)
|
||||
@override.save!
|
||||
|
||||
@cacher.recompute
|
||||
expect(@submission.reload.cached_due_date).to eq @override.due_at.change(sec: 0)
|
||||
cacher.recompute
|
||||
expect(submission.reload.cached_due_date).to eq @override.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
it "should prefer override's due_at over assignment's nil" do
|
||||
|
@ -357,24 +360,24 @@ describe DueDateCacher do
|
|||
@assignment.due_at = nil
|
||||
@assignment.save!
|
||||
|
||||
@cacher.recompute
|
||||
expect(@submission.reload.cached_due_date).to eq @override.due_at.change(sec: 0)
|
||||
cacher.recompute
|
||||
expect(submission.reload.cached_due_date).to eq @override.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
it "should prefer override's nil over assignment's due_at" do
|
||||
@override.override_due_at(nil)
|
||||
@override.save!
|
||||
|
||||
@cacher.recompute
|
||||
expect(@submission.reload.cached_due_date).to eq @override.due_at
|
||||
cacher.recompute
|
||||
expect(submission.reload.cached_due_date).to eq @override.due_at
|
||||
end
|
||||
|
||||
it "should not apply override if it doesn't override due_at" do
|
||||
@override.clear_due_at_override
|
||||
@override.save!
|
||||
|
||||
@cacher.recompute
|
||||
expect(@submission.reload.cached_due_date).to eq @assignment.due_at.change(sec: 0)
|
||||
cacher.recompute
|
||||
expect(submission.reload.cached_due_date).to eq @assignment.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
it "does not update submissions for students with concluded enrollments" do
|
||||
|
@ -400,18 +403,18 @@ describe DueDateCacher do
|
|||
:due_at => @assignment.due_at + 1.day)
|
||||
@override.assignment_override_students.create!(:user => @student2)
|
||||
|
||||
@submission1 = @submission
|
||||
@submission1 = submission_model(:assignment => @assignment, :user => @student1)
|
||||
@submission2 = submission_model(:assignment => @assignment, :user => @student2)
|
||||
Submission.update_all(:cached_due_date => nil)
|
||||
end
|
||||
|
||||
it "should apply to students in the adhoc set" do
|
||||
@cacher.recompute
|
||||
cacher.recompute
|
||||
expect(@submission2.reload.cached_due_date).to eq @override.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
it "should not apply to students not in the adhoc set" do
|
||||
@cacher.recompute
|
||||
cacher.recompute
|
||||
expect(@submission1.reload.cached_due_date).to eq @assignment.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
|
@ -435,11 +438,11 @@ describe DueDateCacher do
|
|||
:due_at => @assignment.due_at + 1.day,
|
||||
:set => @course_section)
|
||||
|
||||
@submission1 = @submission
|
||||
@submission1 = submission_model(:assignment => @assignment, :user => @student1)
|
||||
@submission2 = submission_model(:assignment => @assignment, :user => @student2)
|
||||
Submission.update_all(:cached_due_date => nil)
|
||||
|
||||
@cacher.recompute
|
||||
cacher.recompute
|
||||
end
|
||||
|
||||
it "should apply to students in that section" do
|
||||
|
@ -479,23 +482,23 @@ describe DueDateCacher do
|
|||
:due_at => @assignment.due_at + 1.day,
|
||||
:set => @group)
|
||||
|
||||
@submission1 = @submission
|
||||
@submission1 = submission_model(:assignment => @assignment, :user => @student1)
|
||||
@submission2 = submission_model(:assignment => @assignment, :user => @student2)
|
||||
Submission.update_all(:cached_due_date => nil)
|
||||
end
|
||||
|
||||
it "should apply to students in that group" do
|
||||
@cacher.recompute
|
||||
cacher.recompute
|
||||
expect(@submission2.reload.cached_due_date).to eq @override.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
it "should not apply to students not in the group" do
|
||||
@cacher.recompute
|
||||
cacher.recompute
|
||||
expect(@submission1.reload.cached_due_date).to eq @assignment.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
it "should not apply to non-active memberships in that group" do
|
||||
@cacher.recompute
|
||||
cacher.recompute
|
||||
@group.add_user(@student1, 'deleted')
|
||||
expect(@submission1.reload.cached_due_date).to eq @assignment.due_at.change(sec: 0)
|
||||
end
|
||||
|
@ -527,32 +530,32 @@ describe DueDateCacher do
|
|||
@override1.override_due_at(@assignment.due_at + 2.days)
|
||||
@override1.save!
|
||||
|
||||
@cacher.recompute
|
||||
expect(@submission.reload.cached_due_date).to eq @override1.due_at.change(sec: 0)
|
||||
cacher.recompute
|
||||
expect(submission.reload.cached_due_date).to eq @override1.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
it "should prefer second override's due_at if latest" do
|
||||
@override2.override_due_at(@assignment.due_at + 2.days)
|
||||
@override2.save!
|
||||
|
||||
@cacher.recompute
|
||||
expect(@submission.reload.cached_due_date).to eq @override2.due_at.change(sec: 0)
|
||||
cacher.recompute
|
||||
expect(submission.reload.cached_due_date).to eq @override2.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
it "should be nil if first override's nil" do
|
||||
@override1.override_due_at(nil)
|
||||
@override1.save!
|
||||
|
||||
@cacher.recompute
|
||||
expect(@submission.reload.cached_due_date).to be_nil
|
||||
cacher.recompute
|
||||
expect(submission.reload.cached_due_date).to be_nil
|
||||
end
|
||||
|
||||
it "should be nil if second override's nil" do
|
||||
@override2.override_due_at(nil)
|
||||
@override2.save!
|
||||
|
||||
@cacher.recompute
|
||||
expect(@submission.reload.cached_due_date).to be_nil
|
||||
cacher.recompute
|
||||
expect(submission.reload.cached_due_date).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -577,7 +580,7 @@ describe DueDateCacher do
|
|||
:due_at => @assignment.due_at + 2.days,
|
||||
:set => @course_section)
|
||||
|
||||
@submission1 = @submission
|
||||
@submission1 = submission_model(:assignment => @assignment, :user => @student1)
|
||||
@submission2 = submission_model(:assignment => @assignment, :user => @student2)
|
||||
@submission3 = submission_model(:assignment => @assignment, :user => @student3)
|
||||
Submission.update_all(:cached_due_date => nil)
|
||||
|
@ -587,7 +590,7 @@ describe DueDateCacher do
|
|||
@override1.override_due_at(@assignment.due_at + 1.day)
|
||||
@override1.save!
|
||||
|
||||
@cacher.recompute
|
||||
cacher.recompute
|
||||
expect(@submission1.reload.cached_due_date).to eq @override1.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
|
@ -595,7 +598,7 @@ describe DueDateCacher do
|
|||
@override2.override_due_at(@assignment.due_at + 1.day)
|
||||
@override2.save!
|
||||
|
||||
@cacher.recompute
|
||||
cacher.recompute
|
||||
expect(@submission2.reload.cached_due_date).to eq @override2.due_at.change(sec: 0)
|
||||
end
|
||||
|
||||
|
@ -603,7 +606,7 @@ describe DueDateCacher do
|
|||
@override1.override_due_at(@assignment.due_at + 1.day)
|
||||
@override1.save!
|
||||
|
||||
@cacher.recompute
|
||||
cacher.recompute
|
||||
expect(@submission2.reload.cached_due_date).to eq @override2.due_at.change(sec: 0)
|
||||
end
|
||||
end
|
||||
|
@ -618,7 +621,7 @@ describe DueDateCacher do
|
|||
:due_at => @assignment1.due_at + 1.day)
|
||||
@override.assignment_override_students.create!(:user => @student)
|
||||
|
||||
@submission1 = @submission
|
||||
@submission1 = submission_model(:assignment => @assignment1, :user => @student)
|
||||
@submission2 = submission_model(:assignment => @assignment2, :user => @student)
|
||||
Submission.update_all(:cached_due_date => nil)
|
||||
|
||||
|
@ -637,7 +640,7 @@ describe DueDateCacher do
|
|||
it "kicks off a LatePolicyApplicator job on completion when called with a single assignment" do
|
||||
expect(LatePolicyApplicator).to receive(:for_assignment).with(@assignment)
|
||||
|
||||
@cacher.recompute
|
||||
cacher.recompute
|
||||
end
|
||||
|
||||
it "does not kick off a LatePolicyApplicator job when called with multiple assignments" do
|
||||
|
@ -679,7 +682,7 @@ describe DueDateCacher do
|
|||
@student_2, @student_3, @student_4 = n_students_in_course(3, course: @course)
|
||||
# The n_students_in_course helper creates the enrollments in a
|
||||
# way that appear to skip callbacks
|
||||
@cacher.recompute
|
||||
cacher.recompute
|
||||
end
|
||||
|
||||
it "leaves other users submissions alone on enrollment destroy" do
|
||||
|
@ -709,4 +712,5 @@ describe DueDateCacher do
|
|||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue