32 lines
920 B
Ruby
32 lines
920 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "rails_helper"
|
|
|
|
RSpec.describe Jobs::AssignNotification do
|
|
describe "#execute" do
|
|
subject(:execute_job) { described_class.new.execute(args) }
|
|
|
|
let(:args) { { assignment_id: assignment_id } }
|
|
|
|
context "when `assignment_id` is not provided" do
|
|
let(:args) { {} }
|
|
|
|
it "raises an error" do
|
|
expect { execute_job }.to raise_error(Discourse::InvalidParameters, "assignment_id")
|
|
end
|
|
end
|
|
|
|
context "when `assignment_id` is provided" do
|
|
let(:assignment_id) { Fabricate(:topic_assignment).id }
|
|
let(:assignment) { stub("assignment").responds_like_instance_of(Assignment) }
|
|
|
|
before { Assignment.stubs(:find).with(assignment_id).returns(assignment) }
|
|
|
|
it "creates missing notifications for the provided assignment" do
|
|
assignment.expects(:create_missing_notifications!)
|
|
execute_job
|
|
end
|
|
end
|
|
end
|
|
end
|