discourse-assign/spec/jobs/regular/assign_notification_spec.rb

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