Sha256: ef78738462d18b2a1927165f44d77fcb82f5ee1f6d9ea7e4d280422dc838ee6a

Contents?: true

Size: 1.63 KB

Versions: 5

Compression:

Stored size: 1.63 KB

Contents

require 'spec_helper'
require 'routemaster/resources/rest_resource'

module Routemaster
  module Resources
    RSpec.describe RestResource do
      let(:client) { double('Client') }
      let(:params) { {} }

      before { allow(client).to receive(:with_response).and_yield }

      describe "singular resource" do
        let(:url) { '/resources/1' }

        subject { described_class.new('/resources/{id}', client: client) }

        describe '#show' do
          it 'gets to the given url' do
            expect(client).to receive(:get).with(url, options: { enable_caching: true })
            subject.show(1)
          end
        end

        describe '#update' do
          it 'updates the given resource' do
            expect(client).to receive(:patch).with(url, body: params)
            subject.update(1, params)
          end
        end

        describe '#destroy' do
          it 'destroys the given resource' do
            expect(client).to receive(:delete).with(url)
            subject.destroy(1)
          end
        end
      end

      describe "collection resource" do
        let(:url) { '/resources' }

        subject { described_class.new('/resources{?page,per_page}', client: client) }

        describe '#create' do
          it 'posts to the given url' do
            expect(client).to receive(:post).with(url, body: params)
            subject.create(params)
          end
        end

        describe '#index' do
          it 'gets to the given url' do
            expect(client).to receive(:get).with(url, params: {}, options: { enable_caching: false })
            subject.index
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
routemaster-drain-2.5.4 spec/routemaster/resources/rest_resource_spec.rb
routemaster-drain-2.5.3 spec/routemaster/resources/rest_resource_spec.rb
routemaster-drain-2.5.2 spec/routemaster/resources/rest_resource_spec.rb
routemaster-drain-2.5.1 spec/routemaster/resources/rest_resource_spec.rb
routemaster-drain-2.5.0 spec/routemaster/resources/rest_resource_spec.rb