spree_backend 3.1.5 → 3.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/spree/admin/orders_controller.rb +1 -3
- data/app/controllers/spree/admin/products_controller.rb +1 -1
- data/app/views/spree/admin/products/_form.html.erb +8 -8
- data/app/views/spree/admin/products/index.html.erb +1 -1
- data/app/views/spree/admin/shared/_product_tabs.html.erb +4 -4
- data/app/views/spree/admin/taxons/edit.html.erb +1 -1
- 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 -197
- data/spec/controllers/spree/admin/orders_controller_spec.rb +0 -254
- data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +0 -49
- data/spec/controllers/spree/admin/payments_controller_spec.rb +0 -97
- data/spec/controllers/spree/admin/products_controller_spec.rb +0 -99
- 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/root_controller_spec.rb +0 -35
- data/spec/controllers/spree/admin/search_controller_spec.rb +0 -56
- 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 -129
- 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 -222
- data/spec/features/admin/orders/log_entries_spec.rb +0 -55
- data/spec/features/admin/orders/new_order_spec.rb +0 -160
- data/spec/features/admin/orders/order_details_spec.rb +0 -662
- data/spec/features/admin/orders/payments_spec.rb +0 -230
- 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 -64
- 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 -259
- 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/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 -75
- data/spec/features/admin/store_credits_spec.rb +0 -93
- data/spec/features/admin/taxons_spec.rb +0 -47
- 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 -106
- data/spec/helpers/admin/stock_movements_helper_spec.rb +0 -30
- data/spec/helpers/promotion_rules_helper_spec.rb +0 -12
- data/spec/models/spree/resource_spec.rb +0 -48
- data/spec/routing/admin_path_spec.rb +0 -22
- data/spec/spec_helper.rb +0 -134
- 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,49 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Spree
|
4
|
-
class GatewayWithPassword < PaymentMethod
|
5
|
-
preference :password, :string, :default => "password"
|
6
|
-
end
|
7
|
-
|
8
|
-
describe Admin::PaymentMethodsController, :type => :controller do
|
9
|
-
stub_authorization!
|
10
|
-
|
11
|
-
let(:payment_method) { GatewayWithPassword.create!(:name => "Bogus", :preferred_password => "haxme") }
|
12
|
-
|
13
|
-
# regression test for #2094
|
14
|
-
it "does not clear password on update" do
|
15
|
-
expect(payment_method.preferred_password).to eq("haxme")
|
16
|
-
spree_put :update, :id => payment_method.id, :payment_method => { :type => payment_method.class.to_s, :preferred_password => "" }
|
17
|
-
expect(response).to redirect_to(spree.edit_admin_payment_method_path(payment_method))
|
18
|
-
|
19
|
-
payment_method.reload
|
20
|
-
expect(payment_method.preferred_password).to eq("haxme")
|
21
|
-
end
|
22
|
-
|
23
|
-
context "tries to save invalid payment" do
|
24
|
-
it "doesn't break, responds nicely" do
|
25
|
-
expect {
|
26
|
-
spree_post :create, :payment_method => { :name => "", :type => "Spree::Gateway::Bogus" }
|
27
|
-
}.not_to raise_error
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
it "can create a payment method of a valid type" do
|
32
|
-
expect {
|
33
|
-
spree_post :create, :payment_method => { :name => "Test Method", :type => "Spree::Gateway::Bogus" }
|
34
|
-
}.to change(Spree::PaymentMethod, :count).by(1)
|
35
|
-
|
36
|
-
expect(response).to be_redirect
|
37
|
-
expect(response).to redirect_to spree.edit_admin_payment_method_path(assigns(:payment_method))
|
38
|
-
end
|
39
|
-
|
40
|
-
it "can not create a payment method of an invalid type" do
|
41
|
-
expect {
|
42
|
-
spree_post :create, :payment_method => { :name => "Invalid Payment Method", :type => "Spree::InvalidType" }
|
43
|
-
}.to change(Spree::PaymentMethod, :count).by(0)
|
44
|
-
|
45
|
-
expect(response).to be_redirect
|
46
|
-
expect(response).to redirect_to spree.new_admin_payment_method_path
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,97 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Spree
|
4
|
-
module Admin
|
5
|
-
describe PaymentsController, :type => :controller do
|
6
|
-
stub_authorization!
|
7
|
-
|
8
|
-
let(:order) { create(:order) }
|
9
|
-
|
10
|
-
context "with a valid credit card" do
|
11
|
-
let(:order) { create(:order_with_line_items, :state => "payment") }
|
12
|
-
let(:payment_method) { create(:credit_card_payment_method, :display_on => "back_end") }
|
13
|
-
|
14
|
-
before do
|
15
|
-
attributes = {
|
16
|
-
order_id: order.number,
|
17
|
-
card: "new",
|
18
|
-
payment: {
|
19
|
-
amount: order.total,
|
20
|
-
payment_method_id: payment_method.id.to_s,
|
21
|
-
source_attributes: {
|
22
|
-
name: "Test User",
|
23
|
-
number: "4111 1111 1111 1111",
|
24
|
-
expiry: "09 / #{Time.current.year + 1}",
|
25
|
-
verification_value: "123"
|
26
|
-
}
|
27
|
-
}
|
28
|
-
}
|
29
|
-
spree_post :create, attributes
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should process payment correctly" do
|
33
|
-
expect(order.payments.count).to eq(1)
|
34
|
-
expect(response).to redirect_to(spree.admin_order_payments_path(order))
|
35
|
-
expect(order.reload.state).to eq('complete')
|
36
|
-
end
|
37
|
-
|
38
|
-
# Regression for #4768
|
39
|
-
it "doesnt process the same payment twice" do
|
40
|
-
expect(Spree::LogEntry.where(source: order.payments.first).count).to eq(1)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
# Regression test for #3233
|
45
|
-
context "with a backend payment method" do
|
46
|
-
before do
|
47
|
-
@payment_method = create(:check_payment_method, :display_on => "back_end")
|
48
|
-
end
|
49
|
-
|
50
|
-
it "loads backend payment methods" do
|
51
|
-
spree_get :new, :order_id => order.number
|
52
|
-
expect(response.status).to eq(200)
|
53
|
-
expect(assigns[:payment_methods]).to include(@payment_method)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
context "order has billing address" do
|
58
|
-
before do
|
59
|
-
order.bill_address = create(:address)
|
60
|
-
order.save!
|
61
|
-
end
|
62
|
-
|
63
|
-
context "order does not have payments" do
|
64
|
-
it "redirect to new payments page" do
|
65
|
-
spree_get :index, { amount: 100, order_id: order.number }
|
66
|
-
expect(response).to redirect_to(spree.new_admin_order_payment_path(order))
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
context "order has payments" do
|
71
|
-
before do
|
72
|
-
order.payments << create(:payment, amount: order.total, order: order, state: 'completed')
|
73
|
-
end
|
74
|
-
|
75
|
-
it "shows the payments page" do
|
76
|
-
spree_get :index, { amount: 100, order_id: order.number }
|
77
|
-
expect(response.code).to eq "200"
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
end
|
82
|
-
|
83
|
-
context "order does not have a billing address" do
|
84
|
-
before do
|
85
|
-
order.bill_address = nil
|
86
|
-
order.save
|
87
|
-
end
|
88
|
-
|
89
|
-
it "should redirect to the customer details page" do
|
90
|
-
spree_get :index, { amount: 100, order_id: order.number }
|
91
|
-
expect(response).to redirect_to(spree.edit_admin_order_customer_path(order))
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
@@ -1,99 +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
|
-
context "stock" do
|
93
|
-
let(:product) { create(:product) }
|
94
|
-
it "restricts stock location based on accessible attributes" do
|
95
|
-
expect(Spree::StockLocation).to receive(:accessible_by).and_return([])
|
96
|
-
spree_get :stock, :id => product
|
97
|
-
end
|
98
|
-
end
|
99
|
-
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
|