Sha256: a619b9245f09370dea2b3249559255cf6c49ead0587cf9e20b5c2dd63adb1374

Contents?: true

Size: 1.7 KB

Versions: 40

Compression:

Stored size: 1.7 KB

Contents

require 'spec_helper'

module Spree
  describe Api::AddressesController, :type => :controller do
    render_views

    before do
      stub_authentication!
      @address = create(:address)
      @order = create(:order, :bill_address => @address)
    end

    context "with their own address" do
      before do
        allow_any_instance_of(Order).to receive_messages :user => current_api_user
      end

      it "gets an address" do
        api_get :show, :id => @address.id, :order_id => @order.number
        expect(json_response['address1']).to eq @address.address1
      end

      it "updates an address" do
        api_put :update, :id => @address.id, :order_id => @order.number,
                         :address => { :address1 => "123 Test Lane" }
        expect(json_response['address1']).to eq '123 Test Lane'
      end

      it "receives the errors object if address is invalid" do
        api_put :update, :id => @address.id, :order_id => @order.number,
                         :address => { :address1 => "" }

        expect(json_response['error']).not_to be_nil
        expect(json_response['errors']).not_to be_nil
        expect(json_response['errors']['address1'].first).to eq "can't be blank"
      end
    end

    context "on an address that does not belong to this order" do
      before do
        @order.bill_address_id = nil
        @order.ship_address = nil
      end

      it "cannot retrieve address information" do
        api_get :show, :id => @address.id, :order_id => @order.number
        assert_unauthorized!
      end

      it "cannot update address information" do
        api_get :update, :id => @address.id, :order_id => @order.number
        assert_unauthorized!
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 2 rubygems

Version Path
solidus_api-1.0.7 spec/controllers/spree/api/addresses_controller_spec.rb
spree_api-3.0.10 spec/controllers/spree/api/addresses_controller_spec.rb
spree_api-3.0.9 spec/controllers/spree/api/addresses_controller_spec.rb
solidus_api-1.0.6 spec/controllers/spree/api/addresses_controller_spec.rb
spree_api-3.0.8 spec/controllers/spree/api/addresses_controller_spec.rb
spree_api-3.0.7 spec/controllers/spree/api/addresses_controller_spec.rb
solidus_api-1.0.5 spec/controllers/spree/api/addresses_controller_spec.rb
spree_api-3.0.6.1 spec/controllers/spree/api/addresses_controller_spec.rb
spree_api-3.0.6 spec/controllers/spree/api/addresses_controller_spec.rb
spree_api-3.0.5 spec/controllers/spree/api/addresses_controller_spec.rb
solidus_api-1.0.4 spec/controllers/spree/api/addresses_controller_spec.rb
solidus_api-1.0.3 spec/controllers/spree/api/addresses_controller_spec.rb
solidus_api-1.0.2 spec/controllers/spree/api/addresses_controller_spec.rb
spree_api-3.0.4 spec/controllers/spree/api/addresses_controller_spec.rb
spree_api-2.4.10 spec/controllers/spree/api/addresses_controller_spec.rb
solidus_api-1.0.1 spec/controllers/spree/api/addresses_controller_spec.rb
solidus_api-1.0.0 spec/controllers/spree/api/addresses_controller_spec.rb
solidus_api-1.0.0.rc2 spec/controllers/spree/api/addresses_controller_spec.rb
solidus_api-1.0.0.rc1 spec/controllers/spree/api/addresses_controller_spec.rb
spree_api-3.0.3 spec/controllers/spree/api/addresses_controller_spec.rb