Files
old-holivud2/spec/jobs/attach_contract_to_releasable_job_spec.rb
2020-05-31 22:38:19 +02:00

49 lines
1.3 KiB
Ruby

require "rails_helper"
describe AttachContractToReleasableJob do
describe ".perform_now" do
it "generates contract PDF" do
release = build_stubbed(:appearance_release)
contract = mock_contract_new
pdf = mock_contract_to_pdf(contract)
allow(release.contract).to receive(:attach)
AttachContractToReleasableJob.perform_now release
expect(Contract).to have_received(:new).with(release)
end
it "attaches it to a releaseable record" do
release = build_stubbed(:appearance_release)
contract = mock_contract_new(filename: "contract.pdf")
pdf = mock_contract_to_pdf(contract)
allow(release.contract).to receive(:attach)
AttachContractToReleasableJob.perform_now release
expect(release.contract).to(
have_received(:attach).
with({
io: pdf,
filename: "contract.pdf",
content_type: "application/pdf",
})
)
end
end
private
def mock_contract_new(filename: "")
double("contract", filename: filename).tap do |contract|
allow(Contract).to receive(:new).and_return(contract)
end
end
def mock_contract_to_pdf(contract)
double("pdf").tap do |pdf|
allow(contract).to receive(:to_pdf).and_return(pdf)
end
end
end