Sha256: ca83b072016dd83e367279b40cbe56f13cbb6ee1a6d468ff3c4484ed0f0cad10

Contents?: true

Size: 1.59 KB

Versions: 12

Compression:

Stored size: 1.59 KB

Contents

RSpec.describe Evil::Client::NameError do
  let(:error) { described_class.new name }
  let(:name)  { "object_id" }

  describe ".check!" do
    subject { described_class.check! name }

    context "with a valid name" do
      let(:name) { "qux_3" }

      it "symbolizes the name" do
        expect(subject).to eq :qux_3
      end
    end

    context "with a name starting from a digit" do
      let(:name) { "1qux_3" }

      it "raises itself" do
        expect { subject }.to raise_error described_class
      end
    end

    context "with a name starting from  underscore" do
      let(:name) { "_qux_3" }

      it "raises itself" do
        expect { subject }.to raise_error described_class
      end
    end

    context "with a one-letter name" do
      let(:name) { "q" }

      it "raises itself" do
        expect { subject }.to raise_error described_class
      end
    end

    context "with a name ending with the underscore" do
      let(:name) { "qux_3_" }

      it "raises itself" do
        expect { subject }.to raise_error described_class
      end
    end

    context "with a name containing improper symbols" do
      let(:name) { "quX_3" }

      it "raises itself" do
        expect { subject }.to raise_error described_class
      end
    end

    context "with a forbidden name" do
      let(:name) { "object_id" }

      it "raises itself" do
        expect { subject }.to raise_error described_class
      end
    end
  end

  describe "#message" do
    subject { error.message }

    it "builds a proper error message" do
      expect(subject).to include "Invalid name :object_id."
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
evil-client-3.3.0 spec/unit/exceptions/name_error_spec.rb
evil-client-3.2.0 spec/unit/exceptions/name_error_spec.rb
evil-client-3.1.0 spec/unit/exceptions/name_error_spec.rb
evil-client-3.0.4 spec/unit/exceptions/name_error_spec.rb
evil-client-3.0.3 spec/unit/exceptions/name_error_spec.rb
evil-client-3.0.2 spec/unit/exceptions/name_error_spec.rb
evil-client-3.0.1 spec/unit/exceptions/name_error_spec.rb
evil-client-3.0.0 spec/unit/exceptions/name_error_spec.rb
evil-client-2.1.1 spec/unit/exceptions/name_error_spec.rb
evil-client-2.1.0 spec/unit/exceptions/name_error_spec.rb
evil-client-2.0.0 spec/unit/exceptions/name_error_spec.rb
evil-client-1.1.0 spec/unit/exceptions/name_error_spec.rb