Sha256: 7e4f5de02ba7f1d9d6935b9c9daa1c3e6e3314e755db535639b53d717e593abb

Contents?: true

Size: 1.59 KB

Versions: 22

Compression:

Stored size: 1.59 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

describe Spree::ProductsController, type: :controller do
  let!(:product) { create(:product, available_on: 1.year.from_now) }

  # Regression test for https://github.com/spree/spree/issues/1390
  it "allows admins to view non-active products" do
    allow(controller).to receive_messages try_spree_current_user: mock_model(Spree.user_class, has_spree_role?: true, last_incomplete_spree_order: nil, spree_api_key: 'fake')
    get :show, params: { id: product.to_param }
    expect(response.status).to eq(200)
  end

  it "cannot view non-active products" do
    expect {
      get :show, params: { id: product.to_param }
    }.to raise_error(ActiveRecord::RecordNotFound)
  end

  it "should provide the current user to the searcher class" do
    user = mock_model(Spree.user_class, last_incomplete_spree_order: nil, spree_api_key: 'fake')
    allow(controller).to receive_messages try_spree_current_user: user
    expect_any_instance_of(Spree::Config.searcher_class).to receive(:current_user=).with(user)
    get :index
    expect(response.status).to eq(200)
  end

  # Regression test for https://github.com/spree/spree/issues/2249
  it "doesn't error when given an invalid referer" do
    current_user = mock_model(Spree.user_class, has_spree_role?: true, last_incomplete_spree_order: nil, generate_spree_api_key!: nil)
    allow(controller).to receive_messages try_spree_current_user: current_user
    request.env['HTTP_REFERER'] = "not|a$url"

    # Previously a URI::InvalidURIError exception was being thrown
    get :show, params: { id: product.to_param }
  end
end

Version data entries

22 entries across 22 versions & 2 rubygems

Version Path
solidus_frontend-2.10.5 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.10.3 spec/controllers/spree/products_controller_spec.rb
solidus_starter_frontend-0.1.0 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.10.2 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.9.6 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.8.6 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.10.1 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.9.5 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.10.0 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.9.4 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.8.5 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.9.3 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.9.2 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.10.0.beta1 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.9.1 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.9.0 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.9.0.rc.1 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.8.4 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.8.3 spec/controllers/spree/products_controller_spec.rb
solidus_frontend-2.8.2 spec/controllers/spree/products_controller_spec.rb