generated from espoo-dev/rails_boilerplate
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpdf_generator_service_spec.rb
More file actions
47 lines (40 loc) · 1.75 KB
/
pdf_generator_service_spec.rb
File metadata and controls
47 lines (40 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# frozen_string_literal: true
require "rails_helper"
RSpec.describe PdfGeneratorService, type: :service do
describe "#generate_pdf" do
context "when entity_name is event_procedures" do
it "generates event_procedures pdf" do
user = create(:user)
event_procedures = create_list(:event_procedure, 11)
amount = EventProcedures::TotalAmountCents.call(event_procedures: event_procedures)
pdf = described_class.new(
relation: event_procedures, amount: amount, entity_name: "event_procedures", email: user.email
).generate_pdf
rendered_pdf = pdf.render
page_analysis = PDF::Inspector::Page.analyze(rendered_pdf)
text_analysis = PDF::Inspector::Text.analyze(rendered_pdf)
expect(page_analysis.pages.size).to eq(2)
event_procedures.each do |event_procedure|
expect(text_analysis.strings).to include(event_procedure.procedure.name)
end
end
end
context "when entity_name is medical_shifts" do
it "generates medical_shifts pdf" do
user = create(:user)
medical_shifts = create_list(:medical_shift, 9, user: user)
amount = MedicalShifts::TotalAmountCents.call(medical_shifts: [medical_shifts[0]])
pdf = described_class.new(
relation: medical_shifts, amount: amount, entity_name: "medical_shifts", email: user.email
).generate_pdf
rendered_pdf = pdf.render
page_analysis = PDF::Inspector::Page.analyze(rendered_pdf)
text_analysis = PDF::Inspector::Text.analyze(rendered_pdf)
expect(page_analysis.pages.size).to eq(1)
medical_shifts.each do |medical_shift|
expect(text_analysis.strings).to include(medical_shift.hospital_name)
end
end
end
end
end