spree_backend 3.2.1 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/app/views/spree/admin/products/_form.html.erb +8 -8
  3. data/spree_backend.gemspec +2 -2
  4. metadata +9 -100
  5. data/spec/controllers/spree/admin/base_controller_spec.rb +0 -46
  6. data/spec/controllers/spree/admin/customer_returns_controller_spec.rb +0 -185
  7. data/spec/controllers/spree/admin/general_settings_controller_spec.rb +0 -41
  8. data/spec/controllers/spree/admin/missing_products_controller_spec.rb +0 -18
  9. data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +0 -197
  10. data/spec/controllers/spree/admin/orders_controller_spec.rb +0 -296
  11. data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +0 -64
  12. data/spec/controllers/spree/admin/payments_controller_spec.rb +0 -97
  13. data/spec/controllers/spree/admin/products_controller_spec.rb +0 -99
  14. data/spec/controllers/spree/admin/promotion_actions_controller_spec.rb +0 -21
  15. data/spec/controllers/spree/admin/promotion_rules_controller_spec.rb +0 -21
  16. data/spec/controllers/spree/admin/promotions_controller_spec.rb +0 -44
  17. data/spec/controllers/spree/admin/refunds_controller_spec.rb +0 -32
  18. data/spec/controllers/spree/admin/reimbursements_controller_spec.rb +0 -74
  19. data/spec/controllers/spree/admin/reports_controller_spec.rb +0 -42
  20. data/spec/controllers/spree/admin/resource_controller_spec.rb +0 -252
  21. data/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +0 -225
  22. data/spec/controllers/spree/admin/return_index_controller_spec.rb +0 -37
  23. data/spec/controllers/spree/admin/return_items_controller_spec.rb +0 -27
  24. data/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +0 -14
  25. data/spec/controllers/spree/admin/stock_items_controller_spec.rb +0 -19
  26. data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +0 -41
  27. data/spec/controllers/spree/admin/stock_transfers_controller_spec.rb +0 -41
  28. data/spec/controllers/spree/admin/tax_categories_controller_spec.rb +0 -34
  29. data/spec/controllers/spree/admin/users_controller_spec.rb +0 -161
  30. data/spec/controllers/spree/admin/variants_controller_spec.rb +0 -32
  31. data/spec/features/admin/configuration/analytics_tracker_spec.rb +0 -47
  32. data/spec/features/admin/configuration/countries_spec.rb +0 -24
  33. data/spec/features/admin/configuration/general_settings_spec.rb +0 -44
  34. data/spec/features/admin/configuration/payment_methods_spec.rb +0 -63
  35. data/spec/features/admin/configuration/roles_spec.rb +0 -47
  36. data/spec/features/admin/configuration/shipping_methods_spec.rb +0 -62
  37. data/spec/features/admin/configuration/states_spec.rb +0 -68
  38. data/spec/features/admin/configuration/stock_locations_spec.rb +0 -48
  39. data/spec/features/admin/configuration/store_credit_categories_spec.rb +0 -50
  40. data/spec/features/admin/configuration/tax_categories_spec.rb +0 -56
  41. data/spec/features/admin/configuration/tax_rates_spec.rb +0 -18
  42. data/spec/features/admin/configuration/zones_spec.rb +0 -39
  43. data/spec/features/admin/homepage_spec.rb +0 -89
  44. data/spec/features/admin/locale_spec.rb +0 -31
  45. data/spec/features/admin/orders/adjustments_promotions_spec.rb +0 -53
  46. data/spec/features/admin/orders/adjustments_spec.rb +0 -130
  47. data/spec/features/admin/orders/cancelling_and_resuming_spec.rb +0 -47
  48. data/spec/features/admin/orders/customer_details_spec.rb +0 -154
  49. data/spec/features/admin/orders/line_items_spec.rb +0 -51
  50. data/spec/features/admin/orders/listing_spec.rb +0 -224
  51. data/spec/features/admin/orders/log_entries_spec.rb +0 -55
  52. data/spec/features/admin/orders/new_order_spec.rb +0 -186
  53. data/spec/features/admin/orders/order_details_spec.rb +0 -662
  54. data/spec/features/admin/orders/payments_spec.rb +0 -231
  55. data/spec/features/admin/orders/risk_analysis_spec.rb +0 -48
  56. data/spec/features/admin/orders/shipments_spec.rb +0 -64
  57. data/spec/features/admin/orders/state_changes_spec.rb +0 -21
  58. data/spec/features/admin/products/edit/images_spec.rb +0 -86
  59. data/spec/features/admin/products/edit/products_spec.rb +0 -64
  60. data/spec/features/admin/products/edit/taxons_spec.rb +0 -41
  61. data/spec/features/admin/products/edit/variants_spec.rb +0 -56
  62. data/spec/features/admin/products/option_types_spec.rb +0 -114
  63. data/spec/features/admin/products/products_spec.rb +0 -445
  64. data/spec/features/admin/products/properties_spec.rb +0 -147
  65. data/spec/features/admin/products/prototypes_spec.rb +0 -112
  66. data/spec/features/admin/products/stock_management_spec.rb +0 -124
  67. data/spec/features/admin/products/taxonomies_spec.rb +0 -52
  68. data/spec/features/admin/products/variant_spec.rb +0 -50
  69. data/spec/features/admin/promotions/adjustments_spec.rb +0 -258
  70. data/spec/features/admin/promotions/option_value_rule_spec.rb +0 -70
  71. data/spec/features/admin/promotions/tiered_calculator_spec.rb +0 -70
  72. data/spec/features/admin/refund_reasons/refund_reasons_spec.rb +0 -57
  73. data/spec/features/admin/reimbursement_type/edit_reimbursement_type_spec.rb +0 -36
  74. data/spec/features/admin/reimbursement_type/new_reimbursement_type_spec.rb +0 -62
  75. data/spec/features/admin/reports_spec.rb +0 -61
  76. data/spec/features/admin/return_authorization_reasons/return_authorization_reasons_spec.rb +0 -63
  77. data/spec/features/admin/returns/customer_returns_spec.rb +0 -80
  78. data/spec/features/admin/returns/return_authorizations_spec.rb +0 -152
  79. data/spec/features/admin/stock_transfer_spec.rb +0 -75
  80. data/spec/features/admin/store_credits_spec.rb +0 -93
  81. data/spec/features/admin/taxons_spec.rb +0 -47
  82. data/spec/features/admin/users_spec.rb +0 -286
  83. data/spec/helpers/admin/base_helper_spec.rb +0 -30
  84. data/spec/helpers/admin/navigation_helper_spec.rb +0 -111
  85. data/spec/helpers/admin/promotion_rules_helper_spec.rb +0 -12
  86. data/spec/helpers/admin/stock_movements_helper_spec.rb +0 -30
  87. data/spec/models/spree/resource_spec.rb +0 -48
  88. data/spec/routing/admin_path_spec.rb +0 -22
  89. data/spec/spec_helper.rb +0 -144
  90. data/spec/support/appear_before_matcher.rb +0 -8
  91. data/spec/support/ror_ringer.jpeg +0 -0
  92. data/spec/test_views/spree/admin/submodule/posts/edit.html.erb +0 -1
  93. data/spec/test_views/spree/admin/submodule/posts/new.html.erb +0 -1
  94. data/spec/test_views/spree/admin/widgets/edit.html.erb +0 -1
  95. data/spec/test_views/spree/admin/widgets/new.html.erb +0 -1
@@ -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
@@ -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