spec/valvat_spec.rb in valvat-1.0.1 vs spec/valvat_spec.rb in valvat-1.1.0

- old
+ new

@@ -1,289 +1,277 @@ -require 'spec_helper' +# frozen_string_literal: true require 'spec_helper' describe Valvat do - describe "#new" do - it "demands one and only one argument" do - expect{ Valvat.new }.to raise_error(ArgumentError) - expect{ Valvat.new("a", "b") }.to raise_error(ArgumentError) - expect{ Valvat.new("a") }.not_to raise_error + describe '#new' do + it 'demands one and only one argument' do + expect { described_class.new }.to raise_error(ArgumentError) + expect { described_class.new('a', 'b') }.to raise_error(ArgumentError) + expect { described_class.new('a') }.not_to raise_error end - it "normalizes input string" do - expect(Valvat.new("de25.9597,69 7").to_s).to eql("DE259597697") - expect(Valvat.new("de25.9597,69 7").iso_country_code).to eql("DE") + it 'normalizes input string' do + expect(described_class.new('de25.9597,69 7').to_s).to eql('DE259597697') + expect(described_class.new('de25.9597,69 7').iso_country_code).to eql('DE') end end - context "Valvat()" do - it "initializes new Valvat instance on string" do - expect(Valvat("abc")).to be_kind_of(Valvat) + describe 'Valvat()' do + it 'initializes new Valvat instance on string' do + expect(Valvat('abc')).to be_kind_of(described_class) end - it "returns same Valvat instance on Valvat instance" do - vat = Valvat.new("abc") - expect(Valvat(vat)).to be_kind_of(Valvat) + it 'returns same Valvat instance on Valvat instance' do + vat = described_class.new('abc') + expect(Valvat(vat)).to be_kind_of(described_class) expect(Valvat(vat).object_id).to eql(vat.object_id) end end - - describe "#blank?" do - - it "returns true when when initialized with nil" do - expect(Valvat.new(nil)).to be_blank + describe '#blank?' do + it 'returns true when when initialized with nil' do + expect(described_class.new(nil)).to be_blank end - it "returns true when when initialized with an empty string" do - expect(Valvat.new(" ")).to be_blank + it 'returns true when when initialized with an empty string' do + expect(described_class.new(' ')).to be_blank end - it "returns false when initialized with a value" do - expect(Valvat.new("DE259597697")).not_to be_blank + it 'returns false when initialized with a value' do + expect(described_class.new('DE259597697')).not_to be_blank end end - context "on european VAT number" do - let(:de_vat) { Valvat.new("DE259597697") } # valid & exists - let(:invalid_checksum) { Valvat.new("DE259597687") } # valid & invalid checksum - let(:at_vat) { Valvat.new("ATU458890031") } # invalid - let(:gr_vat) { Valvat.new("EL999943280") } # valid & exists + context 'with european VAT number' do + let(:de_vat) { described_class.new('DE259597697') } # valid & exists + let(:invalid_checksum) { described_class.new('DE259597687') } # valid & invalid checksum + let(:at_vat) { described_class.new('ATU458890031') } # invalid + let(:gr_vat) { described_class.new('EL999943280') } # valid & exists - describe "#valid?" do - it "returns true on valid numbers" do + describe '#valid?' do + it 'returns true on valid numbers' do expect(de_vat).to be_valid expect(gr_vat).to be_valid end - it "returns false on invalid numbers" do + it 'returns false on invalid numbers' do expect(at_vat).not_to be_valid end end - describe "#valid_checksum?" do - it "returns true on valid numbers" do + describe '#valid_checksum?' do + it 'returns true on valid numbers' do expect(de_vat).to be_valid_checksum expect(gr_vat).to be_valid_checksum end - it "returns false on invalid numbers" do + it 'returns false on invalid numbers' do expect(at_vat).not_to be_valid_checksum expect(invalid_checksum).not_to be_valid_checksum end end - describe "#exist(s)?" do - context "on existing VAT numbers" do - before do - allow(Valvat::Lookup).to receive_messages(validate: true) - end - - it "returns true" do - expect(de_vat.exists?).to eql(true) - expect(gr_vat.exists?).to eql(true) - expect(de_vat.exist?).to eql(true) - expect(gr_vat.exist?).to eql(true) - end + describe '#exist(s)?' do + it 'returns true with existing VAT numbers' do + allow(Valvat::Lookup).to receive_messages(validate: true) + expect(de_vat.exists?).to be(true) + expect(gr_vat.exists?).to be(true) + expect(de_vat.exist?).to be(true) + expect(gr_vat.exist?).to be(true) end - context "on not existing VAT numbers" do - before do - allow(Valvat::Lookup).to receive_messages(validate: false) - end - - it "returns false" do - expect(at_vat.exists?).to eql(false) - expect(at_vat.exist?).to eql(false) - end + it 'returns false with not existing VAT numbers' do + allow(Valvat::Lookup).to receive_messages(validate: false) + expect(at_vat.exists?).to be(false) + expect(at_vat.exist?).to be(false) end - context "with options" do - it "calls Valvat::Lookup.validate with options" do - expect(Valvat::Lookup).to receive(:validate).once.with(de_vat, detail: true, bla: 'blupp').and_return(true) - expect(de_vat.exists?(detail: true, bla: 'blupp')).to eql(true) - end + it 'calls Valvat::Lookup.validate with options' do + allow(Valvat::Lookup).to receive_messages(validate: true) + expect(de_vat.exists?(detail: true, bla: 'blupp')).to be(true) + expect(Valvat::Lookup).to have_received(:validate).once.with( + de_vat, detail: true, bla: 'blupp' + ) end end - describe "#iso_country_code" do - it "returns iso country code on iso_country_code" do - expect(de_vat.iso_country_code).to eql("DE") - expect(at_vat.iso_country_code).to eql("AT") + describe '#iso_country_code' do + it 'returns iso country code on iso_country_code' do + expect(de_vat.iso_country_code).to eql('DE') + expect(at_vat.iso_country_code).to eql('AT') end - it "returns GR iso country code on greek VAT number" do - expect(gr_vat.iso_country_code).to eql("GR") + it 'returns GR iso country code on greek VAT number' do + expect(gr_vat.iso_country_code).to eql('GR') end end - describe "#vat_country_code" do - it "returns iso country code on iso_country_code" do - expect(de_vat.vat_country_code).to eql("DE") - expect(at_vat.vat_country_code).to eql("AT") + describe '#vat_country_code' do + it 'returns iso country code on iso_country_code' do + expect(de_vat.vat_country_code).to eql('DE') + expect(at_vat.vat_country_code).to eql('AT') end - it "returns EL iso language code on greek VAT number" do - expect(gr_vat.vat_country_code).to eql("EL") + it 'returns EL iso language code on greek VAT number' do + expect(gr_vat.vat_country_code).to eql('EL') end end - describe "#european?" do - it "returns true" do + describe '#european?' do + it 'returns true' do expect(de_vat).to be_european expect(at_vat).to be_european expect(gr_vat).to be_european end end - describe "#to_s" do - it "returns full VAT number" do - expect(de_vat.to_s).to eql("DE259597697") - expect(at_vat.to_s).to eql("ATU458890031") - expect(gr_vat.to_s).to eql("EL999943280") + describe '#to_s' do + it 'returns full VAT number' do + expect(de_vat.to_s).to eql('DE259597697') + expect(at_vat.to_s).to eql('ATU458890031') + expect(gr_vat.to_s).to eql('EL999943280') end end - describe "#inspect" do - it "returns VAT number with iso country code" do - expect(de_vat.inspect).to eql("#<Valvat DE259597697 DE>") - expect(at_vat.inspect).to eql("#<Valvat ATU458890031 AT>") - expect(gr_vat.inspect).to eql("#<Valvat EL999943280 GR>") + describe '#inspect' do + it 'returns VAT number with iso country code' do + expect(de_vat.inspect).to eql('#<Valvat DE259597697 DE>') + expect(at_vat.inspect).to eql('#<Valvat ATU458890031 AT>') + expect(gr_vat.inspect).to eql('#<Valvat EL999943280 GR>') end end - describe "#to_a" do - it "calls Valvat::Utils.split with raw VAT number and returns result" do + describe '#to_a' do + it 'calls Valvat::Utils.split with raw VAT number and returns result' do + allow(Valvat::Utils).to receive(:split).and_return(%w[a b]) de_vat # initialize - expect(Valvat::Utils).to receive(:split).once.with("DE259597697").and_return(["a", "b"]) - expect(de_vat.to_a).to eql(["a", "b"]) + expect(Valvat::Utils).to have_received(:split).once.with('DE259597697') + expect(de_vat.to_a).to eql(%w[a b]) end end end - context "on VAT number from outside of europe" do - let(:us_vat) { Valvat.new("US345889003") } - let(:ch_vat) { Valvat.new("CH445889003") } + context 'with VAT number from outside of europe' do + let(:us_vat) { described_class.new('US345889003') } + let(:ch_vat) { described_class.new('CH445889003') } - describe "#valid?" do - it "returns false" do + describe '#valid?' do + it 'returns false' do expect(us_vat).not_to be_valid expect(ch_vat).not_to be_valid end end - describe "#exist?" do - it "returns false" do + describe '#exist?' do + it 'returns false' do expect(us_vat).not_to be_exist expect(ch_vat).not_to be_exist end end - describe "#iso_country_code" do - it "returns nil" do - expect(us_vat.iso_country_code).to eql(nil) - expect(ch_vat.iso_country_code).to eql(nil) + describe '#iso_country_code' do + it 'returns nil' do + expect(us_vat.iso_country_code).to be(nil) + expect(ch_vat.iso_country_code).to be(nil) end end - describe "#vat_country_code" do - it "returns nil" do - expect(us_vat.vat_country_code).to eql(nil) - expect(ch_vat.vat_country_code).to eql(nil) + describe '#vat_country_code' do + it 'returns nil' do + expect(us_vat.vat_country_code).to be(nil) + expect(ch_vat.vat_country_code).to be(nil) end end - describe "#european?" do - it "returns false" do + describe '#european?' do + it 'returns false' do expect(us_vat).not_to be_european expect(ch_vat).not_to be_european end end - describe "#to_s" do - it "returns full given VAT number" do - expect(us_vat.to_s).to eql("US345889003") - expect(ch_vat.to_s).to eql("CH445889003") + describe '#to_s' do + it 'returns full given VAT number' do + expect(us_vat.to_s).to eql('US345889003') + expect(ch_vat.to_s).to eql('CH445889003') end end - describe "#inspect" do - it "returns VAT number without iso country code" do - expect(us_vat.inspect).to eql("#<Valvat US345889003>") - expect(ch_vat.inspect).to eql("#<Valvat CH445889003>") + describe '#inspect' do + it 'returns VAT number without iso country code' do + expect(us_vat.inspect).to eql('#<Valvat US345889003>') + expect(ch_vat.inspect).to eql('#<Valvat CH445889003>') end end - end - context "on non-sense/empty VAT number" do - let(:only_iso_vat) { Valvat.new("DE") } - let(:num_vat) { Valvat.new("12445889003") } - let(:empty_vat) { Valvat.new("") } - let(:nil_vat) { Valvat.new("") } + context 'with non-sense/empty VAT number' do + let(:only_iso_vat) { described_class.new('DE') } + let(:num_vat) { described_class.new('12445889003') } + let(:empty_vat) { described_class.new('') } + let(:nil_vat) { described_class.new('') } - describe "#valid?" do - it "returns false" do + describe '#valid?' do + it 'returns false' do expect(only_iso_vat).not_to be_valid expect(num_vat).not_to be_valid expect(empty_vat).not_to be_valid expect(nil_vat).not_to be_valid end end - describe "#exist?" do - it "returns false" do + describe '#exist?' do + it 'returns false' do expect(only_iso_vat).not_to be_exist expect(num_vat).not_to be_exist expect(empty_vat).not_to be_exist expect(nil_vat).not_to be_exist end end - describe "#iso_country_code" do - it "returns nil" do - expect(only_iso_vat.iso_country_code).to eql(nil) - expect(num_vat.iso_country_code).to eql(nil) - expect(empty_vat.iso_country_code).to eql(nil) - expect(nil_vat.iso_country_code).to eql(nil) + describe '#iso_country_code' do + it 'returns nil' do + expect(only_iso_vat.iso_country_code).to be(nil) + expect(num_vat.iso_country_code).to be(nil) + expect(empty_vat.iso_country_code).to be(nil) + expect(nil_vat.iso_country_code).to be(nil) end end - describe "#vat_country_code" do - it "returns nil" do - expect(only_iso_vat.vat_country_code).to eql(nil) - expect(num_vat.vat_country_code).to eql(nil) - expect(empty_vat.vat_country_code).to eql(nil) - expect(nil_vat.vat_country_code).to eql(nil) + describe '#vat_country_code' do + it 'returns nil' do + expect(only_iso_vat.vat_country_code).to be(nil) + expect(num_vat.vat_country_code).to be(nil) + expect(empty_vat.vat_country_code).to be(nil) + expect(nil_vat.vat_country_code).to be(nil) end end - describe "#european?" do - it "returns false" do + describe '#european?' do + it 'returns false' do expect(only_iso_vat).not_to be_european expect(num_vat).not_to be_european expect(empty_vat).not_to be_european expect(nil_vat).not_to be_european end end - describe "#to_s" do - it "returns full given VAT number" do - expect(only_iso_vat.to_s).to eql("DE") - expect(num_vat.to_s).to eql("12445889003") - expect(empty_vat.to_s).to eql("") - expect(nil_vat.to_s).to eql("") + describe '#to_s' do + it 'returns full given VAT number' do + expect(only_iso_vat.to_s).to eql('DE') + expect(num_vat.to_s).to eql('12445889003') + expect(empty_vat.to_s).to eql('') + expect(nil_vat.to_s).to eql('') end end - describe "#inspect" do - it "returns VAT number without iso country code" do - expect(only_iso_vat.inspect).to eql("#<Valvat DE>") - expect(num_vat.inspect).to eql("#<Valvat 12445889003>") - expect(empty_vat.inspect).to eql("#<Valvat >") - expect(nil_vat.inspect).to eql("#<Valvat >") + describe '#inspect' do + it 'returns VAT number without iso country code' do + expect(only_iso_vat.inspect).to eql('#<Valvat DE>') + expect(num_vat.inspect).to eql('#<Valvat 12445889003>') + expect(empty_vat.inspect).to eql('#<Valvat >') + expect(nil_vat.inspect).to eql('#<Valvat >') end end - end -end \ No newline at end of file +end