require 'spec_helper' describe USPSFlags::Burgees do it "should return the list of available burgees from available" do expect(USPSFlags::Burgees.available).to eql([:birmingham]) end it "should raise USPSFlags::Errors::UnknownBurgee if an invalid burgee is entered" do @burgee = USPSFlags::Burgees.new do |b| b.squadron = :not_a_squadron b.outfile = "" end expect { @burgee.svg }.to raise_error(USPSFlags::Errors::UnknownBurgee) end it "should generate a burgee from the builtins" do @burgee = USPSFlags::Burgees.new do |b| b.squadron = :birmingham b.outfile = "" end expect(@burgee.svg).to include( <<~SVG Birmingham Burgee Julian Fiander SVG ) expect(@burgee.svg).to include( <<~SVG This image is a registered trademark of United States Power Squadrons. http://www.usps.org/national/itcom/trademark.html SVG ) end it "should generate a burgee from the custom directory" do @custom_file = "#{USPSFlags.configuration.burgees_dir}/birmingham.svg" ::FileUtils.mkdir_p(USPSFlags.configuration.burgees_dir) ::FileUtils.cp("lib/usps_flags/burgees/builtins/birmingham.svg", @custom_file) f = ::File.open(@custom_file, "w+") f.write("") f.close @burgee = USPSFlags::Burgees.new do |b| b.squadron = :birmingham b.outfile = "" end expect(@burgee.svg).to include("Birmingham Burgee") expect(@burgee.svg).to include("") ::FileUtils.rm_rf(USPSFlags.configuration.burgees_dir) end end