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
|
require 'spec_helper'
describe Prawn::View do
let(:view_object) { Object.new.tap { |o| o.extend(described_class) } }
it 'provides a Prawn::Document object by default' do
expect(view_object.document).to be_kind_of(Prawn::Document)
end
it 'delegates unhandled methods to object returned by document method' do
doc = instance_double('Document')
allow(view_object).to receive(:document).and_return(doc)
allow(doc).to receive(:some_delegated_method)
view_object.some_delegated_method
expect(doc).to have_received(:some_delegated_method)
end
it 'allows a block-like DSL via the update method' do
doc = instance_double('Document')
allow(view_object).to receive(:document).and_return(doc)
allow(doc).to receive(:foo)
allow(doc).to receive(:bar)
view_object.update do
foo
bar
end
expect(doc).to have_received(:foo)
expect(doc).to have_received(:bar)
end
it 'aliases save_as() to document.render_file()' do
doc = instance_double('Document')
allow(doc).to receive(:render_file)
allow(view_object).to receive(:document).and_return(doc)
view_object.save_as('foo.pdf')
expect(doc).to have_received(:render_file)
end
end
|