Sha256: 422ef9d89b0308341bd39f6b69928ca604187c7801055a6444f6b9b1cea04969

Contents?: true

Size: 1.57 KB

Versions: 9

Compression:

Stored size: 1.57 KB

Contents

require 'spec_helper'

describe Dnsimple::Extra do

  describe ".join_uri" do
    it "joins two or more strings" do
      expect(described_class.join_uri("foo")).to eq("foo")
      expect(described_class.join_uri("foo", "bar")).to eq("foo/bar")
      expect(described_class.join_uri("foo", "bar", "baz")).to eq("foo/bar/baz")
    end

    it "removes multiple trailing /" do
      expect(described_class.join_uri("foo", "bar")).to eq("foo/bar")
      expect(described_class.join_uri("foo", "bar/")).to eq("foo/bar")
      expect(described_class.join_uri("foo/", "bar")).to eq("foo/bar")
      expect(described_class.join_uri("foo/", "bar/")).to eq("foo/bar")
    end

    it "does not strip protocols" do
      expect(described_class.join_uri("https://dnsimple.com", "path")).to eq("https://dnsimple.com/path")
    end
  end

  describe ".validate_mandatory_attributes" do
    let(:mandatory_attributes) { %i(name email) }

    it "raises an error if a mandatory attribute is not present " do
      expect {
        described_class.validate_mandatory_attributes({ name: "foo" }, mandatory_attributes)
      }.to raise_error(ArgumentError, ":email is required")
    end

    it "does not raise an error if all attributes are present" do
      expect {
        described_class.validate_mandatory_attributes({ name: "foo", email: "bar" }, mandatory_attributes)
      }.not_to raise_error
    end

    it "handles nil as attributes value" do
      expect {
        described_class.validate_mandatory_attributes(nil, mandatory_attributes)
      }.to raise_error(ArgumentError, ":name is required")
    end
  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
dnsimple-4.6.0 spec/dnsimple/extra_spec.rb
dnsimple-4.5.0 spec/dnsimple/extra_spec.rb
dnsimple-4.4.0 spec/dnsimple/extra_spec.rb
dnsimple-4.3.0 spec/dnsimple/extra_spec.rb
dnsimple-4.2.0 spec/dnsimple/extra_spec.rb
dnsimple-4.1.0 spec/dnsimple/extra_spec.rb
dnsimple-4.0.0 spec/dnsimple/extra_spec.rb
dnsimple-3.1.0 spec/dnsimple/extra_spec.rb
dnsimple-3.0.0 spec/dnsimple/extra_spec.rb