spec/prawn/svg/interface_spec.rb in prawn-svg-0.34.2 vs spec/prawn/svg/interface_spec.rb in prawn-svg-0.35.0

- old
+ new

@@ -3,140 +3,148 @@ describe Prawn::SVG::Interface do let(:bounds) { double(width: 800, height: 600, absolute_left: 0, absolute_top: 0) } let(:prawn) { instance_double(Prawn::Document, font_families: {}, bounds: bounds, cursor: 600) } let(:svg) { '<svg width="250" height="100"></svg>' } - describe "#initialize" do - describe "invalid option detection" do - it "rejects invalid options when debug is on" do + describe '#initialize' do + describe 'invalid option detection' do + it 'rejects invalid options when debug is on' do allow(Prawn).to receive(:debug).and_return(true) - expect { - Prawn::SVG::Interface.new(svg, prawn, :invalid => "option") - }.to raise_error(Prawn::Errors::UnknownOption) + expect do + Prawn::SVG::Interface.new(svg, prawn, invalid: 'option') + end.to raise_error(Prawn::Errors::UnknownOption) end - it "does nothing if an invalid option is given and debug is off" do - Prawn::SVG::Interface.new(svg, prawn, :invalid => "option") + it 'does nothing if an invalid option is given and debug is off' do + Prawn::SVG::Interface.new(svg, prawn, invalid: 'option') end end end - describe "#draw" do - context "when the sizing object indicates the sizes are invalid" do + describe '#draw' do + context 'when the sizing object indicates the sizes are invalid' do let(:interface) { Prawn::SVG::Interface.new('<svg width="0"></svg>', prawn, {}) } it "doesn't draw anything and adds a warning" do interface.draw - expect(interface.document.warnings).to eq ["Zero or negative sizing data means this SVG cannot be rendered"] + expect(interface.document.warnings).to eq ['Zero or negative sizing data means this SVG cannot be rendered'] end end - describe "rewrites" do + describe 'rewrites' do before do [:save_font, :bounding_box].each { |message| allow(prawn).to receive(message).and_yield } - allow(prawn).to receive_messages([:move_to, :line_to, :close_path, :fill_color, :stroke_color, :transformation_matrix, :restore_graphics_state]) - allow(prawn).to receive(:save_graphics_state) { |&block| block.call if block } + allow(prawn).to receive_messages([:move_to, :line_to, :close_path, :fill_color, :stroke_color, + :transformation_matrix, :restore_graphics_state]) + allow(prawn).to receive(:save_graphics_state) { |&block| block&.call } end - context "when fill_and_stroke is issued" do + context 'when fill_and_stroke is issued' do def expect_rectangle - if RUBY_VERSION.start_with?("2.7.") + if RUBY_VERSION.start_with?('2.7.') expect(prawn).to receive(:rectangle) else expect(prawn).to receive(:rectangle).with([0, 100], 10, 10) end end - context "and fill rule is not set" do - let(:interface) { Prawn::SVG::Interface.new('<svg width="250" height="100"><rect width="10" height="10" stroke="red"></rect></svg>', prawn, {}) } + context 'and fill rule is not set' do + let(:interface) do + Prawn::SVG::Interface.new('<svg width="250" height="100"><rect width="10" height="10" stroke="red"></rect></svg>', + prawn, {}) + end it "adds content 'B'" do expect_rectangle - expect(prawn).to receive(:add_content).with("W n") - expect(prawn).to receive(:add_content).with("B") + expect(prawn).to receive(:add_content).with('W n') + expect(prawn).to receive(:add_content).with('B') interface.draw end end - context "and fill rule is evenodd" do - let(:interface) { Prawn::SVG::Interface.new('<svg width="250" height="100"><rect width="10" height="10" stroke="red" fill-rule="evenodd"></rect></svg>', prawn, {}) } + context 'and fill rule is evenodd' do + let(:interface) do + Prawn::SVG::Interface.new( + '<svg width="250" height="100"><rect width="10" height="10" stroke="red" fill-rule="evenodd"></rect></svg>', prawn, {} + ) + end it "adds content 'B*'" do expect_rectangle - expect(prawn).to receive(:add_content).with("W n") - expect(prawn).to receive(:add_content).with("B*") + expect(prawn).to receive(:add_content).with('W n') + expect(prawn).to receive(:add_content).with('B*') interface.draw end end end end end - describe "#position" do + describe '#position' do subject { interface.position } - context "when options[:at] supplied" do + context 'when options[:at] supplied' do let(:interface) { Prawn::SVG::Interface.new(svg, prawn, at: [1, 2], position: :left) } - it "returns options[:at]" do + it 'returns options[:at]' do expect(subject).to eq [1, 2] end end - context "when only a position is supplied" do + context 'when only a position is supplied' do let(:interface) { Prawn::SVG::Interface.new(svg, prawn, position: position) } - context "(:left)" do + context '(:left)' do let(:position) { :left } it { is_expected.to eq [0, 600] } end - context "(:center)" do + context '(:center)' do let(:position) { :center } it { is_expected.to eq [275, 600] } end - context "(:right)" do + context '(:right)' do let(:position) { :right } it { is_expected.to eq [550, 600] } end - context "a number" do + context 'a number' do let(:position) { 25.5 } it { is_expected.to eq [25.5, 600] } end end - context "when a vposition is supplied" do + context 'when a vposition is supplied' do let(:interface) { Prawn::SVG::Interface.new(svg, prawn, vposition: vposition) } - context "(:top)" do + context '(:top)' do let(:vposition) { :top } it { is_expected.to eq [0, 600] } end - context "(:center)" do + context '(:center)' do let(:vposition) { :center } it { is_expected.to eq [0, 350] } end - context "(:bottom)" do + context '(:bottom)' do let(:vposition) { :bottom } it { is_expected.to eq [0, 100] } end - context "a number" do + context 'a number' do let(:vposition) { 25.5 } it { is_expected.to eq [0, 600 - 25.5] } end end end - describe "#sizing and #resize" do + describe '#sizing and #resize' do let(:interface) { Prawn::SVG::Interface.new(svg, prawn, {}) } - it "allows the advanced user to resize the SVG after learning about its dimensions" do + it 'allows the advanced user to resize the SVG after learning about its dimensions' do expect(interface.sizing.output_width).to eq 250 expect(interface.sizing.output_height).to eq 100 interface.resize(width: 500)