Sha256: 2ae59ce287ccc4413ec512b373079bff9ccf4464200edee5a587101f6acb961f

Contents?: true

Size: 1.07 KB

Versions: 19

Compression:

Stored size: 1.07 KB

Contents

require 'spec_helper'

describe 'Resource' do
  before(:all) do
    class Person
      include CurrencyCloud::Resource
      resource :people
      actions :update, :delete
    end
  end

  describe '#save' do
    it 'only updates changed records' do
      person = Person.new(id: 1, name: 'Richard', surname: 'Nienaber')
      allow(Person.client).to receive(:post).with(1, name: 'John').and_return(id: 1, name: 'John', surname: 'Nienaber')
      person.name = 'John'

      expect(person.save).to eq(person)
      expect(person.changed_attributes).to eq(Set.new)
    end

    it 'does nothing if nothing has changed' do
      person = Person.new(id: 1, name: 'Richard', surname: 'Nienaber')

      expect(person.save).to eq(person)
      expect(person.changed_attributes).to eq(Set.new)
    end
  end

  describe '#delete' do
    it 'removes resource' do
      person = Person.new(id: 1, name: 'Richard', surname: 'Nienaber')
      # Uses the class method to perform the deletion
      allow(Person).to receive(:delete).with(1)

      expect(person.delete).to eq(person)
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
currency_cloud-1.6.0 spec/currency_cloud/resource_spec.rb
currency_cloud-1.5.0 spec/currency_cloud/resource_spec.rb
currency_cloud-1.4.0 spec/currency_cloud/resource_spec.rb
currency_cloud-1.3.1 spec/currency_cloud/resource_spec.rb
currency_cloud-1.3.0 spec/currency_cloud/resource_spec.rb
currency_cloud-1.2.1 spec/currency_cloud/resource_spec.rb
currency_cloud-1.1.4 spec/currency_cloud/resource_spec.rb
currency_cloud-1.0.3 spec/currency_cloud/resource_spec.rb
currency_cloud-0.17.7 spec/currency_cloud/resource_spec.rb
currency_cloud-0.16.2 spec/currency_cloud/resource_spec.rb
currency_cloud-0.15.8 spec/currency_cloud/resource_spec.rb
currency_cloud-0.14.2 spec/currency_cloud/resource_spec.rb
currency_cloud-0.12.5 spec/currency_cloud/resource_spec.rb
currency_cloud-0.12.4 spec/currency_cloud/resource_spec.rb
currency_cloud-0.11.2 spec/currency_cloud/resource_spec.rb
currency_cloud-0.10.0 spec/currency_cloud/resource_spec.rb
currency_cloud-0.9.0 spec/currency_cloud/resource_spec.rb
currency_cloud-0.8.2 spec/currency_cloud/resource_spec.rb
currency_cloud-0.8.0 spec/currency_cloud/resource_spec.rb