solidus_backend 2.9.6 → 2.10.3
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree/backend.js +1 -0
- data/app/assets/javascripts/spree/backend/components/admin_nav.js +24 -0
- data/app/assets/javascripts/spree/backend/components/tabs.js +1 -1
- data/app/assets/javascripts/spree/backend/models/order.js +9 -0
- data/app/assets/javascripts/spree/backend/orders/cart.js +6 -0
- data/app/assets/javascripts/spree/backend/shipments.js +0 -62
- data/app/assets/javascripts/spree/backend/templates/index.js +0 -1
- data/app/assets/javascripts/spree/backend/views/cart/empty_cart_button.js +29 -0
- data/app/assets/javascripts/spree/backend/views/cart/line_item_table.js +5 -0
- data/app/assets/javascripts/spree/backend/views/index.js +1 -0
- data/app/assets/javascripts/spree/backend/views/order/address.js +7 -5
- data/app/assets/stylesheets/spree/backend/_bootstrap_custom.scss +2 -0
- data/app/assets/stylesheets/spree/backend/components/_breadcrumb.scss +3 -3
- data/app/assets/stylesheets/spree/backend/components/_messages.scss +4 -0
- data/app/assets/stylesheets/spree/backend/components/_navigation.scss +182 -49
- data/app/assets/stylesheets/spree/backend/globals/{_mixins.css → _mixins.scss} +0 -0
- data/app/assets/stylesheets/spree/backend/globals/_variables.scss +2 -0
- data/app/assets/stylesheets/spree/backend/shared/_header.scss +5 -1
- data/app/assets/stylesheets/spree/backend/shared/_layout.scss +0 -9
- data/app/controllers/spree/admin/adjustments_controller.rb +1 -1
- data/app/controllers/spree/admin/base_controller.rb +1 -1
- data/app/controllers/spree/admin/orders_controller.rb +2 -2
- data/app/controllers/spree/admin/payment_methods_controller.rb +4 -4
- data/app/controllers/spree/admin/payments_controller.rb +2 -2
- data/app/controllers/spree/admin/product_properties_controller.rb +1 -1
- data/app/controllers/spree/admin/products_controller.rb +2 -2
- data/app/controllers/spree/admin/resource_controller.rb +13 -4
- data/app/controllers/spree/admin/style_guide_controller.rb +1 -1
- data/app/controllers/spree/admin/taxons/attachment_controller.rb +20 -0
- data/app/controllers/spree/admin/users_controller.rb +6 -2
- data/app/helpers/spree/admin/navigation_helper.rb +3 -2
- data/app/helpers/spree/promotion_rules_helper.rb +1 -1
- data/app/views/spree/admin/customer_returns/new.html.erb +1 -1
- data/app/views/spree/admin/option_types/edit.html.erb +1 -1
- data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +1 -0
- data/app/views/spree/admin/orders/edit.html.erb +3 -4
- data/app/views/spree/admin/payment_methods/new.html.erb +1 -1
- data/app/views/spree/admin/prices/_master_variant_table.html.erb +41 -41
- data/app/views/spree/admin/promotion_code_batches/new.html.erb +1 -1
- data/app/views/spree/admin/promotion_codes/new.html.erb +1 -1
- data/app/views/spree/admin/promotions/_actions.html.erb +1 -0
- data/app/views/spree/admin/promotions/index.html.erb +1 -1
- data/app/views/spree/admin/return_authorizations/new.html.erb +1 -1
- data/app/views/spree/admin/shared/_calculator_fields.html.erb +5 -0
- data/app/views/spree/admin/shared/_navigation.html.erb +3 -0
- data/app/views/spree/admin/shared/_new_resource_links.html.erb +1 -1
- data/app/views/spree/admin/shared/_order_submenu.html.erb +2 -2
- data/app/views/spree/admin/shared/_settings_sub_menu.html.erb +1 -1
- data/app/views/spree/admin/shipping_methods/_form.html.erb +1 -1
- data/app/views/spree/admin/stock_locations/index.html.erb +1 -1
- data/app/views/spree/admin/store_credit_reasons/index.html.erb +1 -1
- data/app/views/spree/admin/store_credits/index.html.erb +1 -1
- data/app/views/spree/admin/tax_rates/_form.html.erb +1 -1
- data/app/views/spree/admin/taxonomies/new.html.erb +1 -1
- data/app/views/spree/admin/taxons/_form.html.erb +1 -5
- data/app/views/spree/admin/taxons/attachment_forms/_paperclip.html.erb +16 -0
- data/app/views/spree/admin/users/_form.html.erb +12 -10
- data/app/views/spree/admin/users/_tabs.html.erb +1 -1
- data/app/views/spree/admin/users/edit.html.erb +1 -2
- data/app/views/spree/layouts/admin.html.erb +1 -2
- data/config/routes.rb +4 -6
- data/lib/spree/backend.rb +1 -0
- data/lib/spree/backend/config.rb +9 -0
- data/lib/spree/backend/engine.rb +5 -3
- data/{app/models → lib}/spree/backend_configuration.rb +5 -2
- data/solidus_backend.gemspec +2 -1
- data/spec/controllers/spree/admin/customer_returns_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +2 -2
- data/spec/controllers/spree/admin/resource_controller_spec.rb +12 -1
- data/spec/controllers/spree/admin/store_credits_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/users_controller_spec.rb +23 -0
- data/spec/features/admin/configuration/payment_methods_spec.rb +11 -2
- data/spec/features/admin/configuration/shipping_methods_spec.rb +13 -1
- data/spec/features/admin/configuration/taxonomies_spec.rb +7 -0
- data/spec/features/admin/orders/customer_details_spec.rb +1 -2
- data/spec/features/admin/orders/customer_returns_spec.rb +20 -7
- data/spec/features/admin/orders/new_order_spec.rb +53 -5
- data/spec/features/admin/orders/new_refund_spec.rb +1 -1
- data/spec/features/admin/orders/order_details_spec.rb +14 -4
- data/spec/features/admin/orders/return_authorizations_spec.rb +38 -9
- data/spec/features/admin/products/edit/images_spec.rb +1 -1
- data/spec/features/admin/products/edit/taxons_spec.rb +8 -2
- data/spec/features/admin/products/products_spec.rb +12 -0
- data/spec/features/admin/promotion_adjustments_spec.rb +9 -0
- data/spec/features/admin/promotions/promotion_code_batches_spec.rb +37 -0
- data/spec/features/admin/promotions/promotion_code_spec.rb +31 -0
- data/spec/features/admin/taxons_spec.rb +12 -0
- data/spec/features/admin/users_spec.rb +18 -8
- data/spec/{support → fixtures/files}/ror_ringer.jpeg +0 -0
- data/spec/{models → lib}/spree/backend_configuration/menu_item_spec.rb +0 -0
- data/spec/{models → lib}/spree/backend_configuration_spec.rb +0 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/support/feature/base_feature_helper.rb +6 -1
- data/vendor/assets/stylesheets/solidus_admin/bootstrap/_variables.scss +1 -1
- metadata +37 -18
- data/app/assets/javascripts/spree/backend/templates/variants/autocomplete_stock.hbs +0 -56
- data/app/views/spree/admin/orders/_add_product.html.erb +0 -12
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
<div id="preference-settings">
|
|
5
5
|
<div class="field">
|
|
6
6
|
<%= f.label(:calculator_type, Spree::Calculator.model_name.human) %>
|
|
7
|
+
|
|
8
|
+
<% if local_assigns.has_key? :hint %>
|
|
9
|
+
<%= admin_hint t("spree.#{hint}"), t(hint, scope: [:spree, :hints, "spree/calculator"]) %>
|
|
10
|
+
<% end %>
|
|
11
|
+
|
|
7
12
|
<%= f.select(:calculator_type, @calculators.map { |c| [c.description, c.name] }, {}, {class: 'custom-select fullwidth js-calculator-type'}) %>
|
|
8
13
|
</div>
|
|
9
14
|
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
<div class="admin-nav-sticky">
|
|
4
4
|
<%= render partial: 'spree/admin/shared/menu' %>
|
|
5
5
|
<div class="admin-nav-footer">
|
|
6
|
+
<%= button_tag class: 'btn fa fa-chevron-circle-left', id: 'admin-nav-toggle', type: :button do %>
|
|
7
|
+
<span class="text"><%= t('spree.minimize_menu') %></span>
|
|
8
|
+
<% end %>
|
|
6
9
|
<%= render partial: 'spree/admin/shared/locale_selection' %>
|
|
7
10
|
<%= render partial: 'spree/admin/shared/navigation_footer' %>
|
|
8
11
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<div class="form-buttons filter-actions actions" data-hook="buttons">
|
|
2
|
-
<%=
|
|
2
|
+
<%= submit_tag t('spree.actions.create'), class: 'btn btn-primary' %>
|
|
3
3
|
<%= link_to t('spree.actions.cancel'), collection_url, class: 'button' %>
|
|
4
4
|
</div>
|
|
@@ -55,9 +55,9 @@
|
|
|
55
55
|
<% end %>
|
|
56
56
|
|
|
57
57
|
<% if can?(:manage, Spree::OrderCancellations) && @order.inventory_units.cancelable.present? %>
|
|
58
|
-
|
|
58
|
+
<li class="<%= "active" if current == "Cancel Inventory" %>" data-hook='admin_order_tabs_cancel_inventory'>
|
|
59
59
|
<%= link_to t('spree.cancel_inventory'), spree.admin_order_cancellations_path(@order) %>
|
|
60
|
-
|
|
60
|
+
</li>
|
|
61
61
|
<% end %>
|
|
62
62
|
</ul>
|
|
63
63
|
</nav>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
<% if can?(:display, Spree::RefundReason) || can?(:display, Spree::ReimbursementType) ||
|
|
15
15
|
can?(:display, Spree::ReturnReason) || can?(:display, Spree::AdjustmentReason) %>
|
|
16
|
-
<%= tab :checkout, url: spree.admin_refund_reasons_path, match_path: %r(refund_reasons|reimbursement_types|return_reasons|adjustment_reasons) %>
|
|
16
|
+
<%= tab :checkout, url: spree.admin_refund_reasons_path, match_path: %r(refund_reasons|reimbursement_types|return_reasons|adjustment_reasons|store_credit_reasons) %>
|
|
17
17
|
<% end %>
|
|
18
18
|
|
|
19
19
|
<% if can?(:display, Spree::ShippingMethod) || can?(:display, Spree::ShippingCategory) || can?(:display, Spree::StockLocation) %>
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
</div>
|
|
101
101
|
<div class="col-5">
|
|
102
102
|
<div data-hook="admin_shipping_method_form_calculator_fields">
|
|
103
|
-
<%= render partial: 'spree/admin/shared/calculator_fields', locals: { f: f } %>
|
|
103
|
+
<%= render partial: 'spree/admin/shared/calculator_fields', locals: { f: f, hint: :shipping_methods } %>
|
|
104
104
|
</div>
|
|
105
105
|
<div>
|
|
106
106
|
<fieldset class="tax_categories no-border-bottom">
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
<tr data-hook="stock_locations_header">
|
|
29
29
|
<th></th>
|
|
30
30
|
<th><%= Spree::StockLocation.human_attribute_name(:name) %></th>
|
|
31
|
-
<th><%= Spree::StockLocation.human_attribute_name(:
|
|
31
|
+
<th><%= Spree::StockLocation.human_attribute_name(:state) %></th>
|
|
32
32
|
<th><%= plural_resource_name(Spree::StockMovement) %></th>
|
|
33
33
|
<th class="actions"></th>
|
|
34
34
|
</tr>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<% content_for :page_actions do %>
|
|
8
8
|
<ul class='actions inline-menu'>
|
|
9
9
|
<li>
|
|
10
|
-
<%= link_to t('spree.
|
|
10
|
+
<%= link_to t('spree.new_store_credit_reason'), new_object_url, id: 'admin_new_named_type', class: 'btn btn-primary' %>
|
|
11
11
|
</li>
|
|
12
12
|
</ul>
|
|
13
13
|
<% end %>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<%= render 'spree/admin/users/sidebar' %>
|
|
7
7
|
<%= render 'spree/admin/users/tabs', current: :store_credits %>
|
|
8
8
|
<% content_for :page_actions do %>
|
|
9
|
-
<% if can?(:create,
|
|
9
|
+
<% if can?(:create, @user.store_credits.new) %>
|
|
10
10
|
<li><%= link_to t('spree.admin.store_credits.add'), new_admin_user_store_credit_path(@user), class: 'button btn btn-primary' %></li>
|
|
11
11
|
<% end %>
|
|
12
12
|
<% end %>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<fieldset class="no-border-top">
|
|
13
13
|
<br>
|
|
14
14
|
<div class="filter-actions actions" data-hook="buttons">
|
|
15
|
-
<%=
|
|
15
|
+
<%= f.submit t('spree.actions.create'), class: 'btn btn-primary' %>
|
|
16
16
|
</div>
|
|
17
17
|
</fieldset>
|
|
18
18
|
<% end %>
|
|
@@ -20,11 +20,7 @@
|
|
|
20
20
|
</div>
|
|
21
21
|
<% end %>
|
|
22
22
|
|
|
23
|
-
<%= f.
|
|
24
|
-
<%= f.label :icon %><br />
|
|
25
|
-
<%= f.file_field :icon %>
|
|
26
|
-
<%= image_tag f.object.icon(:mini) if f.object.icon_present? %>
|
|
27
|
-
<% end %>
|
|
23
|
+
<%= render "spree/admin/taxons/attachment_forms/#{f.object.attachment_partial_name}", f: f %>
|
|
28
24
|
</div>
|
|
29
25
|
|
|
30
26
|
<div class="col-5">
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<% f.object.class.attachment_definitions.each do |attachment, definition| %>
|
|
2
|
+
<%= f.field_container attachment do %>
|
|
3
|
+
<%= f.label attachment %><br>
|
|
4
|
+
<%= f.file_field attachment %>
|
|
5
|
+
<% if f.object.send(attachment).exists? %>
|
|
6
|
+
<%= image_tag f.object.send(attachment, definition[:default_style]) %>
|
|
7
|
+
<%= link_to t('spree.actions.remove'),
|
|
8
|
+
admin_taxonomy_taxon_attachment_path(@taxonomy,
|
|
9
|
+
@taxon.id,
|
|
10
|
+
attachment_definition: attachment,
|
|
11
|
+
authenticity_token: form_authenticity_token),
|
|
12
|
+
method: :delete,
|
|
13
|
+
class: 'btn btn-sm btn-danger' %>
|
|
14
|
+
<% end %>
|
|
15
|
+
<% end %>
|
|
16
|
+
<% end %>
|
|
@@ -60,18 +60,20 @@
|
|
|
60
60
|
</div>
|
|
61
61
|
|
|
62
62
|
<div data-hook="admin_user_form_password_fields" class="col-6">
|
|
63
|
-
|
|
64
|
-
<%= f.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
<% if can? :update_password, @user %>
|
|
64
|
+
<%= f.field_container :password do %>
|
|
65
|
+
<%= f.label :password %>
|
|
66
|
+
<%= f.password_field :password, class: 'fullwidth' %>
|
|
67
|
+
<%= f.error_message_on :password %>
|
|
68
|
+
<% end %>
|
|
68
69
|
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
<% if f.object.respond_to?(:password_confirmation) %>
|
|
72
|
+
<%= f.field_container :password do %>
|
|
73
|
+
<%= f.label :password_confirmation %>
|
|
74
|
+
<%= f.password_field :password_confirmation, class: 'fullwidth' %>
|
|
75
|
+
<%= f.error_message_on :password_confirmation %>
|
|
76
|
+
<% end %>
|
|
75
77
|
<% end %>
|
|
76
78
|
<% end %>
|
|
77
79
|
</div>
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<%= link_to t("spree.admin.user.items"), spree.items_admin_user_path(@user) %>
|
|
20
20
|
</li>
|
|
21
21
|
<% end %>
|
|
22
|
-
<% if can?(:display,
|
|
22
|
+
<% if can?(:display, @user.store_credits.new) %>
|
|
23
23
|
<li<%== ' class="active"' if current == :store_credits %>>
|
|
24
24
|
<%= link_to t("spree.admin.user.store_credit"), spree.admin_user_store_credits_path(@user) %>
|
|
25
25
|
</li>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<% admin_breadcrumb(link_to plural_resource_name(Spree::LegacyUser), spree.admin_users_path) %>
|
|
2
|
-
<% admin_breadcrumb(@user.email) %>
|
|
3
|
-
|
|
2
|
+
<% admin_breadcrumb(@user.valid? ? @user.email : @user.email_was) %>
|
|
4
3
|
|
|
5
4
|
<%= render 'spree/admin/users/sidebar' %>
|
|
6
5
|
<%= render 'spree/admin/users/tabs', current: :account %>
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
<head data-hook="admin_inside_head">
|
|
4
4
|
<%= render 'spree/admin/shared/head' %>
|
|
5
5
|
</head>
|
|
6
|
-
|
|
7
|
-
<body class="admin">
|
|
6
|
+
<body class="admin <%= "admin-nav-hidden" if cookies[:admin_nav_hidden] == "true" %>">
|
|
8
7
|
<%= render "spree/admin/shared/navigation" %>
|
|
9
8
|
<%= render "spree/admin/shared/header" %>
|
|
10
9
|
<%= render "spree/admin/shared/flash" %>
|
data/config/routes.rb
CHANGED
|
@@ -66,11 +66,7 @@ Spree::Core::Engine.routes.draw do
|
|
|
66
66
|
|
|
67
67
|
delete '/option_values/:id', to: "option_values#destroy", as: :option_value
|
|
68
68
|
|
|
69
|
-
resources :properties
|
|
70
|
-
collection do
|
|
71
|
-
get :filtered
|
|
72
|
-
end
|
|
73
|
-
end
|
|
69
|
+
resources :properties
|
|
74
70
|
|
|
75
71
|
delete '/product_properties/:id', to: "product_properties#destroy", as: :product_property
|
|
76
72
|
|
|
@@ -132,7 +128,9 @@ Spree::Core::Engine.routes.draw do
|
|
|
132
128
|
collection do
|
|
133
129
|
post :update_positions
|
|
134
130
|
end
|
|
135
|
-
resources :taxons
|
|
131
|
+
resources :taxons do
|
|
132
|
+
resource :attachment, controller: 'taxons/attachment', only: [:destroy]
|
|
133
|
+
end
|
|
136
134
|
end
|
|
137
135
|
|
|
138
136
|
resources :taxons, only: [:index, :show] do
|
data/lib/spree/backend.rb
CHANGED
data/lib/spree/backend/engine.rb
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'spree/backend/config'
|
|
4
|
+
|
|
3
5
|
module Spree
|
|
4
6
|
module Backend
|
|
5
7
|
class Engine < ::Rails::Engine
|
|
6
8
|
config.middleware.use "Spree::Backend::Middleware::SeoAssist"
|
|
7
9
|
|
|
8
|
-
initializer
|
|
9
|
-
|
|
10
|
-
end
|
|
10
|
+
# Leave initializer empty for backwards-compatability. Other apps
|
|
11
|
+
# might still rely on this event.
|
|
12
|
+
initializer "spree.backend.environment", before: :load_config_initializers do; end
|
|
11
13
|
end
|
|
12
14
|
end
|
|
13
15
|
end
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'spree/preferences/configuration'
|
|
4
|
+
|
|
3
5
|
module Spree
|
|
4
6
|
class BackendConfiguration < Preferences::Configuration
|
|
5
|
-
preference :locale, :string, default:
|
|
7
|
+
preference :locale, :string, default: I18n.default_locale
|
|
6
8
|
|
|
7
9
|
ORDER_TABS ||= [:orders, :payments, :creditcard_payments,
|
|
8
10
|
:shipments, :credit_cards, :return_authorizations,
|
|
@@ -15,7 +17,8 @@ module Spree
|
|
|
15
17
|
:payment_methods, :shipping_methods,
|
|
16
18
|
:shipping_categories, :stock_locations,
|
|
17
19
|
:refund_reasons, :reimbursement_types,
|
|
18
|
-
:return_reasons, :adjustment_reasons
|
|
20
|
+
:return_reasons, :adjustment_reasons,
|
|
21
|
+
:store_credit_reasons]
|
|
19
22
|
PROMOTION_TABS ||= [:promotions, :promotion_categories]
|
|
20
23
|
STOCK_TABS ||= [:stock_items]
|
|
21
24
|
USER_TABS ||= [:users, :store_credits]
|
data/solidus_backend.gemspec
CHANGED
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
|
18
18
|
s.require_path = 'lib'
|
|
19
19
|
s.requirements << 'none'
|
|
20
20
|
|
|
21
|
-
s.required_ruby_version = '>= 2.
|
|
21
|
+
s.required_ruby_version = '>= 2.4.0'
|
|
22
22
|
s.required_rubygems_version = '>= 1.8.23'
|
|
23
23
|
|
|
24
24
|
s.add_dependency 'solidus_api', s.version
|
|
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
|
|
|
29
29
|
s.add_dependency 'jbuilder', '~> 2.8'
|
|
30
30
|
s.add_dependency 'jquery-rails'
|
|
31
31
|
s.add_dependency 'kaminari', '~> 1.1'
|
|
32
|
+
s.add_dependency 'responders'
|
|
32
33
|
s.add_dependency 'sassc-rails'
|
|
33
34
|
|
|
34
35
|
s.add_dependency 'autoprefixer-rails'
|
|
@@ -173,7 +173,7 @@ module Spree
|
|
|
173
173
|
|
|
174
174
|
context "a return item has an inactive return authorization reason" do
|
|
175
175
|
before(:each) do
|
|
176
|
-
accepted_return_item.
|
|
176
|
+
accepted_return_item.update(return_reason_id: inactive_rma_reason.id)
|
|
177
177
|
end
|
|
178
178
|
|
|
179
179
|
it "includes the inactive return authorization reason" do
|
|
@@ -61,7 +61,7 @@ describe Spree::Admin::Orders::CustomerDetailsController, type: :controller do
|
|
|
61
61
|
before { allow(Spree::Order).to receive_message_chain(:includes, :find_by!) { order } }
|
|
62
62
|
|
|
63
63
|
it "updates + progresses the order" do
|
|
64
|
-
expect(order).to receive(:
|
|
64
|
+
expect(order).to receive(:update) { true }
|
|
65
65
|
expect(order).to receive(:next) { false }
|
|
66
66
|
attributes = { order_id: order.number, order: { email: "" } }
|
|
67
67
|
put :update, params: attributes
|
|
@@ -109,7 +109,7 @@ describe Spree::Admin::Orders::CustomerDetailsController, type: :controller do
|
|
|
109
109
|
|
|
110
110
|
context "not false guest checkout param" do
|
|
111
111
|
it "does not attempt to associate the user" do
|
|
112
|
-
allow(order).to receive_messages(
|
|
112
|
+
allow(order).to receive_messages(update: true,
|
|
113
113
|
next: false,
|
|
114
114
|
refresh_shipment_rates: true)
|
|
115
115
|
|
|
@@ -37,6 +37,7 @@ describe Spree::Admin::WidgetsController, type: :controller do
|
|
|
37
37
|
def check_destroy_constraints
|
|
38
38
|
return unless name == 'undestroyable'
|
|
39
39
|
errors.add :base, "You can't destroy undestroyable things!"
|
|
40
|
+
errors.add :base, "Terrible things might happen."
|
|
40
41
|
throw(:abort)
|
|
41
42
|
end
|
|
42
43
|
end
|
|
@@ -164,7 +165,17 @@ describe Spree::Admin::WidgetsController, type: :controller do
|
|
|
164
165
|
it 'responds with error message' do
|
|
165
166
|
subject
|
|
166
167
|
expect(response).to be_unprocessable
|
|
167
|
-
expect(response.body).to eq assigns(:widget).errors.full_messages.
|
|
168
|
+
expect(response.body).to eq assigns(:widget).errors.full_messages.to_sentence
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
context 'html format' do
|
|
173
|
+
subject { delete :destroy, params: params }
|
|
174
|
+
|
|
175
|
+
it 'responds with error message' do
|
|
176
|
+
subject
|
|
177
|
+
expect(response).to be_redirect
|
|
178
|
+
expect(flash[:error]).to eq assigns(:widget).errors.full_messages.to_sentence
|
|
168
179
|
end
|
|
169
180
|
end
|
|
170
181
|
end
|
|
@@ -193,7 +193,7 @@ describe Spree::Admin::StoreCreditsController do
|
|
|
193
193
|
let(:updated_amount) { 300.0 }
|
|
194
194
|
|
|
195
195
|
context "the store credit has been partially used" do
|
|
196
|
-
before { store_credit.
|
|
196
|
+
before { store_credit.update(amount_used: 10.0) }
|
|
197
197
|
|
|
198
198
|
context "the new amount is greater than the used amount" do
|
|
199
199
|
let(:updated_amount) { 11.0 }
|
|
@@ -202,6 +202,29 @@ describe Spree::Admin::UsersController, type: :controller do
|
|
|
202
202
|
end
|
|
203
203
|
end
|
|
204
204
|
|
|
205
|
+
context "allowed to update passwords" do
|
|
206
|
+
it "can change password of a user" do
|
|
207
|
+
expect {
|
|
208
|
+
put :update, params: { id: user.id, user: { password: "diff123", password_confirmation: "diff123" } }
|
|
209
|
+
}.to_not raise_error
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
context "not allowed to update passwords" do
|
|
214
|
+
stub_authorization! do |_user|
|
|
215
|
+
can [:admin, :update], Spree.user_class
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
it "cannot change password of a user" do
|
|
219
|
+
allow(ActionController::Parameters).
|
|
220
|
+
to receive(:action_on_unpermitted_parameters).and_return(:raise)
|
|
221
|
+
|
|
222
|
+
expect {
|
|
223
|
+
put :update, params: { id: user.id, user: { password: "diff123", password_confirmation: "diff123" } }
|
|
224
|
+
}.to raise_error(ActionController::UnpermittedParameters)
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
205
228
|
it "can update ship_address attributes" do
|
|
206
229
|
post :update, params: { id: user.id, user: { ship_address_attributes: valid_address_attributes } }
|
|
207
230
|
expect(user.reload.ship_address.city).to eq('New York')
|
|
@@ -32,8 +32,8 @@ describe "Payment Methods", type: :feature do
|
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
context "admin creating a new payment method" do
|
|
36
|
-
it "
|
|
35
|
+
context "admin creating a new payment method", :js do
|
|
36
|
+
it "creates a new payment method and disables the form" do
|
|
37
37
|
click_link "Payments"
|
|
38
38
|
expect(page).to have_link 'Payment Methods'
|
|
39
39
|
click_link "admin_new_payment_methods_link"
|
|
@@ -43,6 +43,15 @@ describe "Payment Methods", type: :feature do
|
|
|
43
43
|
select Spree::PaymentMethod::Check.model_name.human, from: "Type"
|
|
44
44
|
click_button "Create"
|
|
45
45
|
expect(page).to have_content("successfully created!")
|
|
46
|
+
|
|
47
|
+
visit spree.new_admin_payment_method_path
|
|
48
|
+
page.execute_script "$('form').submit(function(e) { e.preventDefault()})"
|
|
49
|
+
fill_in "payment_method_name", with: "check90"
|
|
50
|
+
fill_in "payment_method_description", with: "check90 desc"
|
|
51
|
+
select Spree::PaymentMethod::Check.model_name.human, from: "Type"
|
|
52
|
+
click_button "Create"
|
|
53
|
+
|
|
54
|
+
expect(page).to have_button("Create", disabled: true)
|
|
46
55
|
end
|
|
47
56
|
end
|
|
48
57
|
|
|
@@ -25,7 +25,7 @@ describe "Shipping Methods", type: :feature do
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
context "create", js: true do
|
|
28
|
-
it "
|
|
28
|
+
it "creates a new shipping method and disables the submit button", :js do
|
|
29
29
|
click_link "New Shipping Method"
|
|
30
30
|
|
|
31
31
|
fill_in "shipping_method_name", with: "bullock cart"
|
|
@@ -36,6 +36,18 @@ describe "Shipping Methods", type: :feature do
|
|
|
36
36
|
|
|
37
37
|
click_on "Create"
|
|
38
38
|
expect(current_path).to eql(spree.edit_admin_shipping_method_path(Spree::ShippingMethod.last))
|
|
39
|
+
|
|
40
|
+
visit spree.new_admin_shipping_method_path
|
|
41
|
+
page.execute_script "$('form').submit(function(e) { e.preventDefault()})"
|
|
42
|
+
fill_in "shipping_method_name", with: "bullock cart"
|
|
43
|
+
|
|
44
|
+
within("#shipping_method_categories_field") do
|
|
45
|
+
check first("input[type='checkbox']")["name"]
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
click_on "Create"
|
|
49
|
+
|
|
50
|
+
expect(page).to have_button("Create", disabled: true)
|
|
39
51
|
end
|
|
40
52
|
|
|
41
53
|
context 'with shipping method having a calculator with array or hash preference type' do
|