Sha256: 3563b46a63feb1649ee18d765e4d4b4686fe6132946e5b0d3af1c528b7dc15ef

Contents?: true

Size: 1.25 KB

Versions: 3

Compression:

Stored size: 1.25 KB

Contents

require 'rails_helper'

RSpec.describe TbCommerce::Api::BaseController, type: :controller do

  describe '#get_limit_param' do
    it 'should return the limit param' do
      controller.params[:limit] = 99
      expect(controller.send(:get_limit_param)).to eq(99)
    end

    it 'should return the default limit' do
      controller.params[:limit] = nil
      expect(controller.send(:get_limit_param, default: 101)).to eq(101)
    end
  end

  describe '#get_page_param' do
    it 'should return the page param' do
      controller.params[:page] = 3
      expect(controller.send(:get_page_param)).to eq(3)
    end
    it 'should return 1' do
      controller.params[:page] = nil
      expect(controller.send(:get_page_param)).to eq(1)
    end
  end

  describe '#paginate_params' do
    it 'should return a hash for pagination' do
      controller.params[:page] = 2
      controller.params[:limit] = 10
      expect(controller.send(:paginate_params)).to eq({
        :page => 2,
        :per_page => 10
      })
    end
  end

  controller do
    def index
      params.require(:this_param_wont_be_found)
    end
  end

  describe 'handle_missing_param_error' do
    it 'should render a 400 error' do
      get :index
      expect(response.status).to eq(400)
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tb_commerce-0.0.4 spec/controllers/tb_commerce/api/base_controller_spec.rb
tb_commerce-0.0.3 spec/controllers/tb_commerce/api/base_controller_spec.rb
tb_commerce-0.0.2 spec/controllers/tb_commerce/api/base_controller_spec.rb