Sha256: 92dbb06892e0fe45963daa4be30f43045dd806b92b60387168805ad217bc2832

Contents?: true

Size: 1.7 KB

Versions: 9

Compression:

Stored size: 1.7 KB

Contents

require 'spec_helper'

module Spree
  describe Api::V1::ZonesController do
    render_views

    let!(:attributes) { [:id, :name, :zone_members] }

    before do
      stub_authentication!
      @zone = create(:zone, :name => 'Europe')
    end

    it "gets list of zones" do
      api_get :index
      json_response.first.should have_attributes(attributes)
    end

    it "gets a zone" do
      api_get :show, :id => @zone.id
      json_response.should have_attributes(attributes)
      json_response['zone']['name'].should eq @zone.name
      json_response['zone']['zone_members'].size.should eq @zone.zone_members.count
    end

    context "as an admin" do
      sign_in_as_admin!

      it "can create a new zone" do
        api_post :create, :zone => { :name => "North Pole",
                                     :zone_members => [ :zone_member => {
                                                        :zoneable_id => 1 }] }
        response.status.should == 201
        json_response.should have_attributes(attributes)
      end

      it "updates a zone" do
        api_put :update, :id => @zone.id,
                         :zone => { :name => "Americas",
                                    :zone_members => [ :zone_member => {
                                                       :zoneable_type => 'Spree::Country',
                                                       :zoneable_id => 1 }]}
        response.status.should == 200
        json_response['zone']['name'].should eq 'Americas'
      end

      it "can delete a zone" do
        api_delete :destroy, :id => @zone.id
        response.status.should == 200
        lambda { @zone.reload }.should raise_error(ActiveRecord::RecordNotFound)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spree_api-1.1.6 spec/controllers/spree/api/v1/zones_controller_spec.rb
spree_api-1.1.5 spec/controllers/spree/api/v1/zones_controller_spec.rb
spree_api-1.1.4 spec/controllers/spree/api/v1/zones_controller_spec.rb
spree_api-1.2.0 spec/controllers/spree/api/v1/zones_controller_spec.rb
spree_api-1.2.0.rc2 spec/controllers/spree/api/v1/zones_controller_spec.rb
spree_api-1.2.0.rc1 spec/controllers/spree/api/v1/zones_controller_spec.rb
spree_api-1.1.3 spec/controllers/spree/api/v1/zones_controller_spec.rb
spree_api-1.1.2 spec/controllers/spree/api/v1/zones_controller_spec.rb
spree_api-1.1.2.rc1 spec/controllers/spree/api/v1/zones_controller_spec.rb