require 'spec_helper' module Spree describe Api::CountriesController, :type => :controller do render_views before do stub_authentication! @state = create(:state) @country = @state.country end it "gets all countries" do api_get :index expect(json_response['countries'].first['iso3']).to eq @country.iso3 end context "with two countries" do before { @zambia = create(:country, :name => "Zambia") } it "can view all countries" do api_get :index expect(json_response['count']).to eq(2) expect(json_response['current_page']).to eq(1) expect(json_response['pages']).to eq(1) end it 'can query the results through a paramter' do api_get :index, :q => { :name_cont => 'zam' } expect(json_response['count']).to eq(1) expect(json_response['countries'].first['name']).to eq @zambia.name end it 'can control the page size through a parameter' do api_get :index, :per_page => 1 expect(json_response['count']).to eq(1) expect(json_response['current_page']).to eq(1) expect(json_response['pages']).to eq(2) end end it "includes states" do api_get :show, :id => @country.id states = json_response['states'] expect(states.first['name']).to eq @state.name end end end