Sha256: 7043262cb7f6e3c6debae6f7ec131f412d01d2915f5c54082e9136510c948fc2

Contents?: true

Size: 995 Bytes

Versions: 13

Compression:

Stored size: 995 Bytes

Contents

RSpec.describe Spree::ProductsController, type: :controller do
  let!(:product) { create(:product, available_on: 1.year.from_now) }
  let!(:user) { build_stubbed(:user, spree_api_key: 'fake') }

  subject(:request) { get :show, params: { id: product.to_param }}

  before do
    allow(controller).to receive(:before_save_new_order)
    allow(controller).to receive(:spree_current_user) { user }
  end

  it 'allows admins to view non-active products' do
    allow(user).to receive(:has_spree_role?) { true }

    request
    expect(response.status).to eq(200)
  end

  it 'cannot view non-active products' do
    allow(user).to receive(:has_spree_role?) { false }

    # this behaviour was introduced in rails 5.1 & Spree 3.5
    # https://github.com/spree/spree/commit/acf52960f5b9582cdfe01f0cb563766b44aabbd5
    if Spree.version.to_f > 3.4
      expect { request }.to raise_error(ActiveRecord::RecordNotFound)
    else
      request
      expect(response.status).to eq(404)
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
spree_auth_devise-4.4.2 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.1.1 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.2.1 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.4.1 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.4.0 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.3.4 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.3.3 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.3.2 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.3.1 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.3.0 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.2.0 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.1.0 spec/controllers/spree/products_controller_spec.rb
spree_auth_devise-4.1.0.rc1 spec/controllers/spree/products_controller_spec.rb