Sha256: 9e4104815324f0c186fb9b06cc06b6dd5770d70531e6c5f85e39fd22acf002fe
Contents?: true
Size: 1.42 KB
Versions: 6
Compression:
Stored size: 1.42 KB
Contents
require 'spec_helper' module Spree describe Api::V1::PromotionsController, type: :controller do render_views shared_examples "a JSON response" do it 'should be ok' do expect(subject).to be_ok end it 'should return JSON' do payload = HashWithIndifferentAccess.new(JSON.parse(subject.body)) expect(payload).to_not be_nil Spree::Api::ApiHelpers.promotion_attributes.each do |attribute| expect(payload.has_key?(attribute)).to be true end end end before do stub_authentication! end let(:promotion) { create :promotion, :with_order_adjustment, code: '10off' } describe 'GET #show' do subject { api_get :show, id: id } context 'when admin' do sign_in_as_admin! context 'when finding by id' do let(:id) { promotion.id } it_behaves_like "a JSON response" end context 'when finding by code' do let(:id) { promotion.code } it_behaves_like "a JSON response" end context 'when id does not exist' do let(:id) { 'argh' } it 'should be 404' do expect(subject.status).to eq(404) end end end context 'when non admin' do let(:id) { promotion.id } it 'should be unauthorized' do subject assert_unauthorized! end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems