Sha256: 1397a5e44ec673f616b8d17f7cce437bcbba1b2df253935759da41d764fedafd

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

require 'spec_helper'

describe Acfs::Model::Locatable do
  let(:model) { MyUser }
  before do
    stub_request(:get, "http://users.example.org/users/1").to_return(
        body: MessagePack.dump({ id: 1, name: "Anon", age: 12 }),
        headers: {'Content-Type' => 'application/x-msgpack'})
  end

  describe '.url' do
    it 'should return URL' do
      expect(model.url).to be == 'http://users.example.org/users'
    end

    it 'should return URL with id path part if specified' do
      expect(model.url(5)).to be == 'http://users.example.org/users/5'
    end
  end

  describe '#url' do
    context 'new resource' do
      let(:m) { model.new }

      it "should return nil" do
        expect(m.url).to be == nil
      end

      context 'new resource with id' do
        let(:m) { model.new id: 475 }

        it "should return resource URL" do
          expect(m.url).to be == 'http://users.example.org/users/475'
        end
      end
    end

    context 'loaded resource' do
      let(:m) { model.find 1 }
      before { m; Acfs.run }

      it "should return resource's URL" do
        expect(m.url).to be == 'http://users.example.org/users/1'
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
acfs-0.11.0 spec/acfs/model/locatable_spec.rb
acfs-0.10.0 spec/acfs/model/locatable_spec.rb
acfs-0.9.0 spec/acfs/model/locatable_spec.rb
acfs-0.8.0 spec/acfs/model/locatable_spec.rb