mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
91 lines
2.8 KiB
Ruby
91 lines
2.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe Spree::Admin::OverviewController do
|
|
describe "#index" do
|
|
before do
|
|
allow(controller).to receive(:spree_current_user).and_return(user)
|
|
end
|
|
|
|
context "when user owns only one enterprise" do
|
|
let(:user) { create(:user) }
|
|
let!(:enterprise) { create(:distributor_enterprise, owner: user) }
|
|
|
|
context "when the referer is not an admin page" do
|
|
before do
|
|
@request.env['HTTP_REFERER'] = 'http://test.com/not_admin_path'
|
|
end
|
|
|
|
context "and the enterprise has sells='unspecified'" do
|
|
before do
|
|
enterprise.update_attribute(:sells, "unspecified")
|
|
end
|
|
|
|
it "redirects to the welcome page for the enterprise" do
|
|
spree_get :index
|
|
expect(response)
|
|
.to redirect_to welcome_admin_enterprise_path(enterprise)
|
|
end
|
|
end
|
|
|
|
context "and the enterprise does not have sells='unspecified'" do
|
|
it "renders the single enterprise dashboard" do
|
|
spree_get :index
|
|
expect(response).to render_template :single_enterprise_dashboard
|
|
end
|
|
end
|
|
end
|
|
|
|
context "when the refer is an admin page" do
|
|
before { @request.env['HTTP_REFERER'] = 'http://test.com/admin' }
|
|
|
|
it "renders the single enterprise dashboard" do
|
|
spree_get :index
|
|
expect(response).to render_template :single_enterprise_dashboard
|
|
end
|
|
end
|
|
end
|
|
|
|
context "when user owns multiple enterprises" do
|
|
let(:user) { create(:user) }
|
|
|
|
let!(:enterprise1) { create(:distributor_enterprise, owner: user) }
|
|
before { create(:distributor_enterprise, owner: user) }
|
|
|
|
context "when the referer is not an admin page" do
|
|
before do
|
|
@request.env['HTTP_REFERER'] = 'http://test.com/not_admin_path'
|
|
end
|
|
|
|
context "and at least one owned enterprise has sells='unspecified'" do
|
|
before do
|
|
enterprise1.update_attribute(:sells, "unspecified")
|
|
end
|
|
|
|
it "redirects to the enterprises index" do
|
|
spree_get :index
|
|
expect(response).to redirect_to admin_enterprises_path
|
|
end
|
|
end
|
|
|
|
context "and no owned enterprises have sells='unspecified'" do
|
|
it "renders the multiple enterprise dashboard" do
|
|
spree_get :index
|
|
expect(response).to render_template :multi_enterprise_dashboard
|
|
end
|
|
end
|
|
end
|
|
|
|
context "when the refer is an admin page" do
|
|
before { @request.env['HTTP_REFERER'] = 'http://test.com/admin' }
|
|
|
|
it "renders the multiple enterprise dashboard" do
|
|
spree_get :index
|
|
expect(response).to render_template :multi_enterprise_dashboard
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|