Sha256: 105a8100b09f1ecc55626a6c1ae2a2553e6379a11953a9862179301d3612b093

Contents?: true

Size: 1.44 KB

Versions: 7

Compression:

Stored size: 1.44 KB

Contents

require "spec_helper"

describe ::ActiveRemote::Integration do
  let(:guid) { "GUID-derp" }
  subject { Tag.new(:guid => guid) }

  context "#to_param" do
    # API
    specify { expect(subject).to respond_to(:to_param) }

    it "returns the guid if the guid is present (by default)" do
      expect(subject.to_param).to eq(guid)
    end
  end

  context "#cache_key" do
    # API
    specify { expect(subject).to respond_to(:cache_key) }

    it "sets 'new' as the identifier when the record has not been persisted" do
      expect(subject).to receive(:new_record?).and_return(true)
      expect(subject.cache_key).to match(/tag\/new/)
    end

    it "sets the cache_key to the class/guid as a default" do
      expect(subject).to receive(:new_record?).and_return(false)
      expect(subject.cache_key).to eq("tag/#{guid}")
    end

    it "adds the 'updated_at' attribute to the cache_key if updated_at is present" do
      ::ActiveRemote.config.default_cache_key_updated_at = true
      twenty_o_one_one = subject[:updated_at] = DateTime.new(2001, 0o1, 0o1)
      expect(subject).to receive(:new_record?).and_return(false)
      expect(subject.cache_key).to eq("tag/#{guid}-#{twenty_o_one_one.to_s(:number)}")
      subject[:updated_at] = nil
      ::ActiveRemote.config.default_cache_key_updated_at = false
    end

    it "defaults the cache updated_at to false" do
      expect(::ActiveRemote.config.default_cache_key_updated_at?).to be_falsey
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
active_remote-5.0.1 spec/lib/active_remote/integration_spec.rb
active_remote-5.1.1 spec/lib/active_remote/integration_spec.rb
active_remote-5.1.0 spec/lib/active_remote/integration_spec.rb
active_remote-5.0.0 spec/lib/active_remote/integration_spec.rb
active_remote-5.1.0.rc1 spec/lib/active_remote/integration_spec.rb
active_remote-5.0.0.rc1 spec/lib/active_remote/integration_spec.rb
active_remote-5.0.0.pre spec/lib/active_remote/integration_spec.rb