Sha256: 78f83f93784c689ce68d3b1839ee10dd7108c514da1739b3de3158ff4241f73f

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

require 'spec_helper'

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

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

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

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

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

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

    it "adds the 'updated_at' attribute to the cache_key if updated_at is present" do
      twenty_o_one_one = subject[:updated_at] = DateTime.new(2001, 01, 01)
      subject.should_receive(:new_record?).and_return(false)
      subject.cache_key.should eq("tag/#{guid}-#{twenty_o_one_one.to_s(:number)}")
      subject[:updated_at] = nil
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_remote-1.6.1 spec/lib/active_remote/integration_spec.rb
active_remote-1.6.0 spec/lib/active_remote/integration_spec.rb