spree_backend 3.3.0.rc1 → 3.3.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree/backend/general_settings.js.coffee +12 -10
- data/app/controllers/spree/admin/orders_controller.rb +3 -4
- data/app/controllers/spree/admin/payments_controller.rb +2 -2
- data/app/controllers/spree/admin/products_controller.rb +3 -3
- data/app/controllers/spree/admin/return_authorizations_controller.rb +1 -1
- data/app/helpers/spree/admin/base_helper.rb +4 -1
- data/app/helpers/spree/admin/navigation_helper.rb +1 -1
- data/app/views/spree/admin/products/_form.html.erb +8 -8
- data/app/views/spree/admin/promotions/actions/_create_line_items.html.erb +4 -2
- data/app/views/spree/admin/shared/_translations.html.erb +1 -0
- data/spree_backend.gemspec +1 -1
- metadata +7 -98
- data/spec/controllers/spree/admin/base_controller_spec.rb +0 -46
- data/spec/controllers/spree/admin/customer_returns_controller_spec.rb +0 -185
- data/spec/controllers/spree/admin/general_settings_controller_spec.rb +0 -41
- data/spec/controllers/spree/admin/missing_products_controller_spec.rb +0 -18
- data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +0 -199
- data/spec/controllers/spree/admin/orders_controller_spec.rb +0 -296
- data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +0 -64
- data/spec/controllers/spree/admin/payments_controller_spec.rb +0 -97
- data/spec/controllers/spree/admin/products_controller_spec.rb +0 -137
- data/spec/controllers/spree/admin/promotion_actions_controller_spec.rb +0 -21
- data/spec/controllers/spree/admin/promotion_rules_controller_spec.rb +0 -21
- data/spec/controllers/spree/admin/promotions_controller_spec.rb +0 -44
- data/spec/controllers/spree/admin/refunds_controller_spec.rb +0 -32
- data/spec/controllers/spree/admin/reimbursements_controller_spec.rb +0 -74
- data/spec/controllers/spree/admin/reports_controller_spec.rb +0 -42
- data/spec/controllers/spree/admin/resource_controller_spec.rb +0 -252
- data/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +0 -225
- data/spec/controllers/spree/admin/return_index_controller_spec.rb +0 -37
- data/spec/controllers/spree/admin/return_items_controller_spec.rb +0 -27
- data/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +0 -14
- data/spec/controllers/spree/admin/stock_items_controller_spec.rb +0 -19
- data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +0 -41
- data/spec/controllers/spree/admin/stock_transfers_controller_spec.rb +0 -41
- data/spec/controllers/spree/admin/tax_categories_controller_spec.rb +0 -34
- data/spec/controllers/spree/admin/users_controller_spec.rb +0 -161
- data/spec/controllers/spree/admin/variants_controller_spec.rb +0 -32
- data/spec/features/admin/configuration/analytics_tracker_spec.rb +0 -47
- data/spec/features/admin/configuration/countries_spec.rb +0 -24
- data/spec/features/admin/configuration/general_settings_spec.rb +0 -44
- data/spec/features/admin/configuration/payment_methods_spec.rb +0 -63
- data/spec/features/admin/configuration/roles_spec.rb +0 -47
- data/spec/features/admin/configuration/shipping_methods_spec.rb +0 -62
- data/spec/features/admin/configuration/states_spec.rb +0 -68
- data/spec/features/admin/configuration/stock_locations_spec.rb +0 -48
- data/spec/features/admin/configuration/store_credit_categories_spec.rb +0 -50
- data/spec/features/admin/configuration/tax_categories_spec.rb +0 -56
- data/spec/features/admin/configuration/tax_rates_spec.rb +0 -18
- data/spec/features/admin/configuration/zones_spec.rb +0 -39
- data/spec/features/admin/homepage_spec.rb +0 -89
- data/spec/features/admin/locale_spec.rb +0 -31
- data/spec/features/admin/orders/adjustments_promotions_spec.rb +0 -53
- data/spec/features/admin/orders/adjustments_spec.rb +0 -124
- data/spec/features/admin/orders/cancelling_and_resuming_spec.rb +0 -47
- data/spec/features/admin/orders/customer_details_spec.rb +0 -154
- data/spec/features/admin/orders/line_items_spec.rb +0 -51
- data/spec/features/admin/orders/listing_spec.rb +0 -224
- data/spec/features/admin/orders/log_entries_spec.rb +0 -55
- data/spec/features/admin/orders/new_order_spec.rb +0 -186
- data/spec/features/admin/orders/order_details_spec.rb +0 -660
- data/spec/features/admin/orders/payments_spec.rb +0 -244
- data/spec/features/admin/orders/risk_analysis_spec.rb +0 -48
- data/spec/features/admin/orders/shipments_spec.rb +0 -64
- data/spec/features/admin/orders/state_changes_spec.rb +0 -21
- data/spec/features/admin/products/edit/images_spec.rb +0 -86
- data/spec/features/admin/products/edit/products_spec.rb +0 -56
- data/spec/features/admin/products/edit/taxons_spec.rb +0 -41
- data/spec/features/admin/products/edit/variants_spec.rb +0 -56
- data/spec/features/admin/products/option_types_spec.rb +0 -114
- data/spec/features/admin/products/products_spec.rb +0 -445
- data/spec/features/admin/products/properties_spec.rb +0 -147
- data/spec/features/admin/products/prototypes_spec.rb +0 -112
- data/spec/features/admin/products/stock_management_spec.rb +0 -124
- data/spec/features/admin/products/taxonomies_spec.rb +0 -52
- data/spec/features/admin/products/variant_spec.rb +0 -50
- data/spec/features/admin/promotions/adjustments_spec.rb +0 -258
- data/spec/features/admin/promotions/option_value_rule_spec.rb +0 -70
- data/spec/features/admin/promotions/tiered_calculator_spec.rb +0 -70
- data/spec/features/admin/refund_reasons/refund_reasons_spec.rb +0 -57
- data/spec/features/admin/reimbursement_type/edit_reimbursement_type_spec.rb +0 -36
- data/spec/features/admin/reimbursement_type/new_reimbursement_type_spec.rb +0 -62
- data/spec/features/admin/reports_spec.rb +0 -61
- data/spec/features/admin/return_authorization_reasons/return_authorization_reasons_spec.rb +0 -63
- data/spec/features/admin/returns/customer_returns_spec.rb +0 -80
- data/spec/features/admin/returns/return_authorizations_spec.rb +0 -152
- data/spec/features/admin/stock_transfer_spec.rb +0 -91
- data/spec/features/admin/store_credits_spec.rb +0 -93
- data/spec/features/admin/taxons_spec.rb +0 -53
- data/spec/features/admin/users_spec.rb +0 -286
- data/spec/helpers/admin/base_helper_spec.rb +0 -30
- data/spec/helpers/admin/navigation_helper_spec.rb +0 -111
- data/spec/helpers/admin/promotion_rules_helper_spec.rb +0 -12
- data/spec/helpers/admin/stock_movements_helper_spec.rb +0 -30
- data/spec/models/spree/resource_spec.rb +0 -48
- data/spec/routing/admin_path_spec.rb +0 -22
- data/spec/spec_helper.rb +0 -144
- data/spec/support/appear_before_matcher.rb +0 -8
- data/spec/support/ror_ringer.jpeg +0 -0
- data/spec/test_views/spree/admin/submodule/posts/edit.html.erb +0 -1
- data/spec/test_views/spree/admin/submodule/posts/new.html.erb +0 -1
- data/spec/test_views/spree/admin/widgets/edit.html.erb +0 -1
- data/spec/test_views/spree/admin/widgets/new.html.erb +0 -1
@@ -1,137 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Spree::Admin::ProductsController, type: :controller do
|
4
|
-
stub_authorization!
|
5
|
-
|
6
|
-
context "#index" do
|
7
|
-
let(:ability_user) { stub_model(Spree::LegacyUser, has_spree_role?: true) }
|
8
|
-
|
9
|
-
# Regression test for #1259
|
10
|
-
it "can find a product by SKU" do
|
11
|
-
product = create(:product, sku: "ABC123")
|
12
|
-
spree_get :index, q: { sku_start: "ABC123" }
|
13
|
-
expect(assigns[:collection]).not_to be_empty
|
14
|
-
expect(assigns[:collection]).to include(product)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# regression test for #1370
|
19
|
-
context "adding properties to a product" do
|
20
|
-
let!(:product) { create(:product) }
|
21
|
-
specify do
|
22
|
-
spree_put :update, id: product.to_param, product: { product_properties_attributes: { "1" => { property_name: "Foo", value: "bar" } } }
|
23
|
-
expect(flash[:success]).to eq("Product #{product.name.inspect} has been successfully updated!")
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
# regression test for #801
|
29
|
-
describe '#destroy' do
|
30
|
-
let(:product) { mock_model(Spree::Product) }
|
31
|
-
let(:products) { double(ActiveRecord::Relation) }
|
32
|
-
|
33
|
-
def send_request
|
34
|
-
spree_delete :destroy, id: product, format: :js
|
35
|
-
end
|
36
|
-
|
37
|
-
context 'will successfully destroy product' do
|
38
|
-
before do
|
39
|
-
allow(Spree::Product).to receive(:friendly).and_return(products)
|
40
|
-
allow(products).to receive(:find).with(product.id.to_s).and_return(product)
|
41
|
-
allow(product).to receive(:destroy).and_return(true)
|
42
|
-
end
|
43
|
-
|
44
|
-
describe 'expects to receive' do
|
45
|
-
it { expect(Spree::Product).to receive(:friendly).and_return(products) }
|
46
|
-
it { expect(products).to receive(:find).with(product.id.to_s).and_return(product) }
|
47
|
-
it { expect(product).to receive(:destroy).and_return(true) }
|
48
|
-
|
49
|
-
after { send_request }
|
50
|
-
end
|
51
|
-
|
52
|
-
describe 'assigns' do
|
53
|
-
before { send_request }
|
54
|
-
it { expect(assigns(:product)).to eq(product) }
|
55
|
-
end
|
56
|
-
|
57
|
-
describe 'response' do
|
58
|
-
before { send_request }
|
59
|
-
it { expect(response).to have_http_status(:ok) }
|
60
|
-
it { expect(flash[:success]).to eq(Spree.t('notice_messages.product_deleted')) }
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
context 'will not successfully destroy product' do
|
65
|
-
before do
|
66
|
-
allow(Spree::Product).to receive(:friendly).and_return(products)
|
67
|
-
allow(products).to receive(:find).with(product.id.to_s).and_return(product)
|
68
|
-
allow(product).to receive(:destroy).and_return(false)
|
69
|
-
end
|
70
|
-
|
71
|
-
describe 'expects to receive' do
|
72
|
-
it { expect(Spree::Product).to receive(:friendly).and_return(products) }
|
73
|
-
it { expect(products).to receive(:find).with(product.id.to_s).and_return(product) }
|
74
|
-
it { expect(product).to receive(:destroy).and_return(false) }
|
75
|
-
|
76
|
-
after { send_request }
|
77
|
-
end
|
78
|
-
|
79
|
-
describe 'assigns' do
|
80
|
-
before { send_request }
|
81
|
-
it { expect(assigns(:product)).to eq(product) }
|
82
|
-
end
|
83
|
-
|
84
|
-
describe 'response' do
|
85
|
-
before { send_request }
|
86
|
-
it { expect(response).to have_http_status(:ok) }
|
87
|
-
it { expect(flash[:error]).to eq(Spree.t('notice_messages.product_not_deleted')) }
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
describe '#clone' do
|
93
|
-
let(:product) { create(:custom_product, name: 'MyProduct', sku: 'MySku') }
|
94
|
-
let(:product2) { create(:custom_product, name: 'COPY OF MyProduct', sku: 'COPY OF MySku') }
|
95
|
-
let(:variant) do
|
96
|
-
create(:master_variant, name: 'COPY OF MyProduct', sku: 'COPY OF MySku', created_at: product.created_at - 1.day)
|
97
|
-
end
|
98
|
-
|
99
|
-
def send_request
|
100
|
-
spree_post :clone, id: product, format: :js
|
101
|
-
end
|
102
|
-
|
103
|
-
context 'will successfully clone product' do
|
104
|
-
before do
|
105
|
-
allow(product).to receive(:duplicate).and_return(product2)
|
106
|
-
end
|
107
|
-
|
108
|
-
describe 'response' do
|
109
|
-
before { send_request }
|
110
|
-
it { expect(response).to have_http_status(:found) }
|
111
|
-
it { expect(response).to be_redirect }
|
112
|
-
it { expect(flash[:success]).to eq(Spree.t('notice_messages.product_cloned')) }
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
context 'will not successfully clone product' do
|
117
|
-
before do
|
118
|
-
variant
|
119
|
-
end
|
120
|
-
|
121
|
-
describe 'response' do
|
122
|
-
before { send_request }
|
123
|
-
it { expect(response).to have_http_status(:found) }
|
124
|
-
it { expect(response).to be_redirect }
|
125
|
-
it { expect(flash[:error]).to eq(Spree.t('notice_messages.product_not_cloned')) }
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
context "stock" do
|
131
|
-
let(:product) { create(:product) }
|
132
|
-
it "restricts stock location based on accessible attributes" do
|
133
|
-
expect(Spree::StockLocation).to receive(:accessible_by).and_return([])
|
134
|
-
spree_get :stock, id: product
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Spree::Admin::PromotionActionsController, type: :controller do
|
4
|
-
stub_authorization!
|
5
|
-
|
6
|
-
let!(:promotion) { create(:promotion) }
|
7
|
-
|
8
|
-
it "can create a promotion action of a valid type" do
|
9
|
-
spree_post :create, promotion_id: promotion.id, action_type: "Spree::Promotion::Actions::CreateAdjustment"
|
10
|
-
expect(response).to be_redirect
|
11
|
-
expect(response).to redirect_to spree.edit_admin_promotion_path(promotion)
|
12
|
-
expect(promotion.actions.count).to eq(1)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "can not create a promotion action of an invalid type" do
|
16
|
-
spree_post :create, promotion_id: promotion.id, action_type: "Spree::InvalidType"
|
17
|
-
expect(response).to be_redirect
|
18
|
-
expect(response).to redirect_to spree.edit_admin_promotion_path(promotion)
|
19
|
-
expect(promotion.rules.count).to eq(0)
|
20
|
-
end
|
21
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Spree::Admin::PromotionRulesController, type: :controller do
|
4
|
-
stub_authorization!
|
5
|
-
|
6
|
-
let!(:promotion) { create(:promotion) }
|
7
|
-
|
8
|
-
it "can create a promotion rule of a valid type" do
|
9
|
-
spree_post :create, promotion_id: promotion.id, promotion_rule: { type: "Spree::Promotion::Rules::Product" }
|
10
|
-
expect(response).to be_redirect
|
11
|
-
expect(response).to redirect_to spree.edit_admin_promotion_path(promotion)
|
12
|
-
expect(promotion.rules.count).to eq(1)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "can not create a promotion rule of an invalid type" do
|
16
|
-
spree_post :create, promotion_id: promotion.id, promotion_rule: { type: "Spree::InvalidType" }
|
17
|
-
expect(response).to be_redirect
|
18
|
-
expect(response).to redirect_to spree.edit_admin_promotion_path(promotion)
|
19
|
-
expect(promotion.rules.count).to eq(0)
|
20
|
-
end
|
21
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Spree::Admin::PromotionsController, type: :controller do
|
4
|
-
stub_authorization!
|
5
|
-
|
6
|
-
let!(:promotion1) { create(:promotion, name: "name1", code: "code1", path: "path1") }
|
7
|
-
let!(:promotion2) { create(:promotion, name: "name2", code: "code2", path: "path2") }
|
8
|
-
let!(:category) { create :promotion_category }
|
9
|
-
|
10
|
-
context "#index" do
|
11
|
-
it "succeeds" do
|
12
|
-
spree_get :index
|
13
|
-
expect(assigns[:promotions]).to match_array [promotion2, promotion1]
|
14
|
-
end
|
15
|
-
|
16
|
-
it "assigns promotion categories" do
|
17
|
-
spree_get :index
|
18
|
-
expect(assigns[:promotion_categories]).to match_array [category]
|
19
|
-
end
|
20
|
-
|
21
|
-
context "search" do
|
22
|
-
it "pages results" do
|
23
|
-
spree_get :index, per_page: '1'
|
24
|
-
expect(assigns[:promotions]).to eq [promotion2]
|
25
|
-
end
|
26
|
-
|
27
|
-
it "filters by name" do
|
28
|
-
spree_get :index, q: {name_cont: promotion1.name}
|
29
|
-
expect(assigns[:promotions]).to eq [promotion1]
|
30
|
-
end
|
31
|
-
|
32
|
-
it "filters by code" do
|
33
|
-
spree_get :index, q: {code_cont: promotion1.code}
|
34
|
-
expect(assigns[:promotions]).to eq [promotion1]
|
35
|
-
end
|
36
|
-
|
37
|
-
it "filters by path" do
|
38
|
-
spree_get :index, q: {path_cont: promotion1.path}
|
39
|
-
expect(assigns[:promotions]).to eq [promotion1]
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Spree::Admin::RefundsController do
|
4
|
-
stub_authorization!
|
5
|
-
|
6
|
-
describe "POST create" do
|
7
|
-
context "a Spree::Core::GatewayError is raised" do
|
8
|
-
|
9
|
-
let(:payment) { create(:payment) }
|
10
|
-
|
11
|
-
subject do
|
12
|
-
spree_post :create,
|
13
|
-
refund: { amount: "50.0", refund_reason_id: "1" },
|
14
|
-
order_id: payment.order.to_param,
|
15
|
-
payment_id: payment.to_param
|
16
|
-
end
|
17
|
-
|
18
|
-
before(:each) do
|
19
|
-
def controller.create
|
20
|
-
raise Spree::Core::GatewayError.new('An error has occurred')
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
it "sets an error message with the correct text" do
|
25
|
-
subject
|
26
|
-
expect(flash[:error]).to eq 'An error has occurred'
|
27
|
-
end
|
28
|
-
|
29
|
-
it { should render_template(:new) }
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,74 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Spree::Admin::ReimbursementsController, type: :controller do
|
4
|
-
stub_authorization!
|
5
|
-
|
6
|
-
let!(:default_refund_reason) do
|
7
|
-
Spree::RefundReason.find_or_create_by!(name: Spree::RefundReason::RETURN_PROCESSING_REASON, mutable: false)
|
8
|
-
end
|
9
|
-
|
10
|
-
describe '#create' do
|
11
|
-
let(:customer_return) { create(:customer_return, line_items_count: 1) }
|
12
|
-
let(:order) { customer_return.order }
|
13
|
-
let(:return_item) { customer_return.return_items.first }
|
14
|
-
let(:payment) { order.payments.first }
|
15
|
-
|
16
|
-
subject do
|
17
|
-
spree_post :create, order_id: order.to_param, build_from_customer_return_id: customer_return.id
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'creates the reimbursement' do
|
21
|
-
expect { subject }.to change { order.reimbursements.count }.by(1)
|
22
|
-
expect(assigns(:reimbursement).return_items.to_a).to eq customer_return.return_items.to_a
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'redirects to the edit page' do
|
26
|
-
subject
|
27
|
-
expect(response).to redirect_to(spree.edit_admin_order_reimbursement_path(order, assigns(:reimbursement)))
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
describe "#perform" do
|
32
|
-
let(:reimbursement) { create(:reimbursement) }
|
33
|
-
let(:customer_return) { reimbursement.customer_return }
|
34
|
-
let(:order) { reimbursement.order }
|
35
|
-
let(:return_items) { reimbursement.return_items }
|
36
|
-
let(:payment) { order.payments.first }
|
37
|
-
|
38
|
-
subject do
|
39
|
-
spree_post :perform, order_id: order.to_param, id: reimbursement.to_param
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'redirects to customer return page' do
|
43
|
-
subject
|
44
|
-
expect(response).to redirect_to spree.admin_order_reimbursement_path(order, reimbursement)
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'performs the reimbursement' do
|
48
|
-
expect {
|
49
|
-
subject
|
50
|
-
}.to change { payment.refunds.count }.by(1)
|
51
|
-
expect(payment.refunds.last.amount).to be > 0
|
52
|
-
expect(payment.refunds.last.amount).to eq return_items.to_a.sum(&:total)
|
53
|
-
end
|
54
|
-
|
55
|
-
context "a Spree::Core::GatewayError is raised" do
|
56
|
-
before(:each) do
|
57
|
-
def controller.perform
|
58
|
-
raise Spree::Core::GatewayError.new('An error has occurred')
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
it "sets an error message with the correct text" do
|
63
|
-
subject
|
64
|
-
expect(flash[:error]).to eq 'An error has occurred'
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'redirects to the edit page' do
|
68
|
-
subject
|
69
|
-
redirect_path = spree.edit_admin_order_reimbursement_path(order, assigns(:reimbursement))
|
70
|
-
expect(response).to redirect_to(redirect_path)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Spree::Admin::ReportsController, type: :controller do
|
4
|
-
stub_authorization!
|
5
|
-
|
6
|
-
describe 'ReportsController.available_reports' do
|
7
|
-
it 'should contain sales_total' do
|
8
|
-
expect(Spree::Admin::ReportsController.available_reports.keys.include?(:sales_total)).to be true
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'should have the proper sales total report description' do
|
12
|
-
expect(Spree::Admin::ReportsController.available_reports[:sales_total][:description]).to eql('Sales Total For All Orders')
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
describe 'ReportsController.add_available_report!' do
|
18
|
-
context 'when adding the report name' do
|
19
|
-
it 'should contain the report' do
|
20
|
-
Spree::Admin::ReportsController.add_available_report!(:some_report)
|
21
|
-
expect(Spree::Admin::ReportsController.available_reports.keys.include?(:some_report)).to be true
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe 'GET index' do
|
27
|
-
it 'should be ok' do
|
28
|
-
spree_get :index
|
29
|
-
expect(response).to be_ok
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'should respond to model_class as Spree::AdminReportsController' do
|
34
|
-
expect(controller.send(:model_class)).to eql(Spree::Admin::ReportsController)
|
35
|
-
end
|
36
|
-
|
37
|
-
after(:each) do
|
38
|
-
Spree::Admin::ReportsController.available_reports.delete_if do |key, value|
|
39
|
-
key != :sales_total
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,252 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Spree
|
4
|
-
module Admin
|
5
|
-
class WidgetsController < Spree::Admin::ResourceController
|
6
|
-
prepend_view_path('spec/test_views')
|
7
|
-
|
8
|
-
def model_class
|
9
|
-
Widget
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe Spree::Admin::WidgetsController, type: :controller do
|
16
|
-
stub_authorization!
|
17
|
-
|
18
|
-
after(:all) do
|
19
|
-
# Spree::Core::Engine.routes.reload_routes!
|
20
|
-
Rails.application.reload_routes!
|
21
|
-
end
|
22
|
-
|
23
|
-
with_model 'Widget', scope: :all do
|
24
|
-
table do |t|
|
25
|
-
t.string :name
|
26
|
-
t.integer :position
|
27
|
-
t.timestamps null: false
|
28
|
-
end
|
29
|
-
|
30
|
-
model do
|
31
|
-
acts_as_list
|
32
|
-
validates :name, presence: true
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
before do
|
37
|
-
Spree::Core::Engine.routes.draw do
|
38
|
-
namespace :admin do
|
39
|
-
resources :widgets do
|
40
|
-
post :update_positions, on: :member
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
stub_const('Spree::Widget', Widget)
|
45
|
-
end
|
46
|
-
|
47
|
-
describe '#new' do
|
48
|
-
subject do
|
49
|
-
spree_get :new
|
50
|
-
end
|
51
|
-
|
52
|
-
it 'succeeds' do
|
53
|
-
subject
|
54
|
-
expect(response).to be_success
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
describe '#edit' do
|
59
|
-
let(:widget) { Widget.create!(name: 'a widget') }
|
60
|
-
|
61
|
-
subject do
|
62
|
-
spree_get :edit, id: widget.to_param
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'succeeds' do
|
66
|
-
subject
|
67
|
-
expect(response).to be_success
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
describe '#create' do
|
72
|
-
let(:params) do
|
73
|
-
{widget: {name: 'a widget'}}
|
74
|
-
end
|
75
|
-
|
76
|
-
subject { spree_post :create, params }
|
77
|
-
|
78
|
-
it 'creates the resource' do
|
79
|
-
expect { subject }.to change { Widget.count }.by(1)
|
80
|
-
end
|
81
|
-
|
82
|
-
context 'without any parameters' do
|
83
|
-
let(:params) { {} }
|
84
|
-
|
85
|
-
before do
|
86
|
-
allow_any_instance_of(Widget).to receive(:name).and_return('some name')
|
87
|
-
end
|
88
|
-
|
89
|
-
it 'creates the resource' do
|
90
|
-
expect { subject }.to change { Widget.count }.by(1)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
describe '#update' do
|
96
|
-
let(:widget) { Widget.create!(name: 'a widget') }
|
97
|
-
|
98
|
-
let(:params) do
|
99
|
-
{
|
100
|
-
id: widget.to_param,
|
101
|
-
widget: {name: 'widget renamed'},
|
102
|
-
}
|
103
|
-
end
|
104
|
-
|
105
|
-
subject { spree_put :update, params }
|
106
|
-
|
107
|
-
it 'updates the resource' do
|
108
|
-
expect { subject }.to change { widget.reload.name }.from('a widget').to('widget renamed')
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
describe '#destroy' do
|
113
|
-
let!(:widget) { Widget.create!(name: 'a widget') }
|
114
|
-
let(:params) { {id: widget.id} }
|
115
|
-
|
116
|
-
subject {
|
117
|
-
spree_delete :destroy, params
|
118
|
-
}
|
119
|
-
|
120
|
-
it 'destroys the resource' do
|
121
|
-
expect { subject }.to change { Widget.count }.from(1).to(0)
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
describe '#update_positions' do
|
126
|
-
let(:widget_1) { Widget.create!(name: 'widget 1', position: 1) }
|
127
|
-
let(:widget_2) { Widget.create!(name: 'widget 2', position: 2) }
|
128
|
-
|
129
|
-
subject do
|
130
|
-
spree_post :update_positions, id: widget_1.to_param,
|
131
|
-
positions: { widget_1.id => '2', widget_2.id => '1' }, format: 'js'
|
132
|
-
end
|
133
|
-
|
134
|
-
it 'updates the position of widget 1' do
|
135
|
-
expect { subject }.to change { widget_1.reload.position }.from(1).to(2)
|
136
|
-
end
|
137
|
-
|
138
|
-
it 'updates the position of widget 2' do
|
139
|
-
expect { subject }.to change { widget_2.reload.position }.from(2).to(1)
|
140
|
-
end
|
141
|
-
|
142
|
-
it 'touches updated_at' do
|
143
|
-
Timecop.scale(3600) do
|
144
|
-
expect { subject }.to change { widget_1.reload.updated_at }
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
module Spree
|
151
|
-
module Submodule
|
152
|
-
class Post < Spree::Base
|
153
|
-
end
|
154
|
-
end
|
155
|
-
module Admin
|
156
|
-
module Submodule
|
157
|
-
class PostsController < Spree::Admin::ResourceController
|
158
|
-
prepend_view_path('spec/test_views')
|
159
|
-
|
160
|
-
def model_class
|
161
|
-
Spree::Submodule::Post
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
167
|
-
|
168
|
-
describe Spree::Admin::Submodule::PostsController, type: :controller do
|
169
|
-
stub_authorization!
|
170
|
-
|
171
|
-
after(:all) do
|
172
|
-
# Spree::Core::Engine.routes.reload_routes!
|
173
|
-
Rails.application.reload_routes!
|
174
|
-
end
|
175
|
-
|
176
|
-
with_table 'spree_posts', scope: :all do |t|
|
177
|
-
t.string :name
|
178
|
-
t.integer :position
|
179
|
-
t.timestamps null: false
|
180
|
-
end
|
181
|
-
|
182
|
-
before do
|
183
|
-
Spree::Core::Engine.routes.draw do
|
184
|
-
namespace :admin do
|
185
|
-
namespace :submodule do
|
186
|
-
resources :posts
|
187
|
-
end
|
188
|
-
end
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|
192
|
-
describe '#new' do
|
193
|
-
subject do
|
194
|
-
spree_get :new
|
195
|
-
end
|
196
|
-
|
197
|
-
it 'succeeds' do
|
198
|
-
subject
|
199
|
-
expect(response).to be_success
|
200
|
-
end
|
201
|
-
end
|
202
|
-
|
203
|
-
describe '#edit' do
|
204
|
-
let(:submodule_post) { Spree::Submodule::Post.create!(name: 'a post') }
|
205
|
-
|
206
|
-
subject do
|
207
|
-
spree_get :edit, id: submodule_post.to_param
|
208
|
-
end
|
209
|
-
|
210
|
-
it 'succeeds' do
|
211
|
-
subject
|
212
|
-
expect(response).to be_success
|
213
|
-
end
|
214
|
-
end
|
215
|
-
|
216
|
-
describe '#create' do
|
217
|
-
let(:params) do
|
218
|
-
{ submodule_post: { name: 'a post' } }
|
219
|
-
end
|
220
|
-
|
221
|
-
subject { spree_post :create, params }
|
222
|
-
|
223
|
-
it 'creates the resource' do
|
224
|
-
expect { subject }.to change { Spree::Submodule::Post.count }.by(1)
|
225
|
-
end
|
226
|
-
end
|
227
|
-
|
228
|
-
describe '#update' do
|
229
|
-
let(:post) { Spree::Submodule::Post.create!(name: 'a post') }
|
230
|
-
|
231
|
-
let(:params) do
|
232
|
-
{ id: post.to_param, submodule_post: { name: 'post renamed' } }
|
233
|
-
end
|
234
|
-
|
235
|
-
subject { spree_put :update, params }
|
236
|
-
|
237
|
-
it 'updates the resource' do
|
238
|
-
expect { subject }.to change { post.reload.name }.from('a post').to('post renamed')
|
239
|
-
end
|
240
|
-
end
|
241
|
-
|
242
|
-
describe '#destroy' do
|
243
|
-
let!(:post) { Spree::Submodule::Post.create!(name: 'a post') }
|
244
|
-
let(:params) { { id: post.id } }
|
245
|
-
|
246
|
-
subject { spree_delete :destroy, params }
|
247
|
-
|
248
|
-
it 'destroys the resource' do
|
249
|
-
expect { subject }.to change { Spree::Submodule::Post.count }.from(1).to(0)
|
250
|
-
end
|
251
|
-
end
|
252
|
-
end
|