solidus_backend 2.10.2 → 2.11.0

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 (233) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree/backend.js +4 -1
  3. data/app/assets/javascripts/spree/backend/adjustments.js +1 -1
  4. data/app/assets/javascripts/spree/backend/admin.js +18 -29
  5. data/app/assets/javascripts/spree/backend/collections/states.js +1 -1
  6. data/app/assets/javascripts/spree/backend/components/selectable_table.js +5 -0
  7. data/app/assets/javascripts/spree/backend/components/selectable_table/return_items.js +5 -0
  8. data/app/assets/javascripts/spree/backend/components/selectable_table/summary.js +7 -0
  9. data/app/assets/javascripts/spree/backend/components/sortable_table.js +31 -25
  10. data/app/assets/javascripts/spree/backend/models/order.js +3 -3
  11. data/app/assets/javascripts/spree/backend/models/payment.js +1 -1
  12. data/app/assets/javascripts/spree/backend/models/shipment.js +1 -1
  13. data/app/assets/javascripts/spree/backend/models/stock_item.js +1 -1
  14. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +2 -2
  15. data/app/assets/javascripts/spree/backend/option_value_picker.js +2 -2
  16. data/app/assets/javascripts/spree/backend/product_picker.js +2 -2
  17. data/app/assets/javascripts/spree/backend/routes.js +40 -21
  18. data/app/assets/javascripts/spree/backend/shipments.js +5 -5
  19. data/app/assets/javascripts/spree/backend/shipping_methods/stock_locations_picker.js +18 -0
  20. data/app/assets/javascripts/spree/backend/stock_management.js +4 -2
  21. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +2 -2
  22. data/app/assets/javascripts/spree/backend/taxons.js +3 -3
  23. data/app/assets/javascripts/spree/backend/templates/index.js +2 -0
  24. data/app/assets/javascripts/spree/backend/templates/orders/customer_details/autocomplete.hbs +2 -2
  25. data/app/assets/javascripts/spree/backend/templates/stock_items/stock_location_stock_item.hbs +5 -1
  26. data/app/assets/javascripts/spree/backend/templates/tables/return_item_sum_amount.hbs +7 -0
  27. data/app/assets/javascripts/spree/backend/templates/tables/selectable_label.hbs +6 -0
  28. data/app/assets/javascripts/spree/backend/user_picker.js +3 -4
  29. data/app/assets/javascripts/spree/backend/variant_autocomplete.js +2 -2
  30. data/app/assets/javascripts/spree/backend/views/cart/empty_cart_button.js +2 -2
  31. data/app/assets/javascripts/spree/backend/views/index.js +4 -0
  32. data/app/assets/javascripts/spree/backend/views/order/address.js +1 -1
  33. data/app/assets/javascripts/spree/backend/views/order/customer_select.js +2 -3
  34. data/app/assets/javascripts/spree/backend/views/order/details_adjustments.js +4 -1
  35. data/app/assets/javascripts/spree/backend/views/stock/edit_stock_item_row.js +4 -0
  36. data/app/assets/javascripts/spree/backend/views/tables/return_items.js +9 -0
  37. data/app/assets/javascripts/spree/backend/views/tables/selectable_table.js +70 -0
  38. data/app/assets/javascripts/spree/backend/views/tables/selectable_table/sum_return_item_amount.js +32 -0
  39. data/app/assets/javascripts/spree/backend/views/tables/selectable_table/summary.js +45 -0
  40. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +4 -5
  41. data/app/assets/stylesheets/spree/backend/sections/_orders.scss +5 -1
  42. data/app/assets/stylesheets/spree/backend/sections/_style_guide.scss +4 -0
  43. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +1 -0
  44. data/app/controllers/spree/admin/base_controller.rb +6 -0
  45. data/app/controllers/spree/admin/cancellations_controller.rb +2 -0
  46. data/app/controllers/spree/admin/customer_returns_controller.rb +4 -4
  47. data/app/controllers/spree/admin/images_controller.rb +2 -1
  48. data/app/controllers/spree/admin/orders/customer_details_controller.rb +2 -0
  49. data/app/controllers/spree/admin/orders_controller.rb +7 -2
  50. data/app/controllers/spree/admin/payments_controller.rb +3 -1
  51. data/app/controllers/spree/admin/product_properties_controller.rb +1 -1
  52. data/app/controllers/spree/admin/products_controller.rb +18 -24
  53. data/app/controllers/spree/admin/promotion_codes_controller.rb +9 -4
  54. data/app/controllers/spree/admin/refunds_controller.rb +19 -0
  55. data/app/controllers/spree/admin/resource_controller.rb +27 -7
  56. data/app/controllers/spree/admin/return_authorizations_controller.rb +1 -1
  57. data/app/controllers/spree/admin/root_controller.rb +1 -1
  58. data/app/controllers/spree/admin/search_controller.rb +1 -2
  59. data/app/controllers/spree/admin/stock_items_controller.rb +6 -5
  60. data/app/controllers/spree/admin/stock_locations_controller.rb +4 -0
  61. data/app/controllers/spree/admin/stock_movements_controller.rb +7 -0
  62. data/app/controllers/spree/admin/taxons_controller.rb +12 -1
  63. data/app/controllers/spree/admin/users/api_key_controller.rb +29 -0
  64. data/app/controllers/spree/admin/users_controller.rb +37 -20
  65. data/app/controllers/spree/admin/variants_controller.rb +4 -2
  66. data/app/controllers/spree/admin/zones_controller.rb +1 -1
  67. data/app/helpers/spree/admin/base_helper.rb +4 -0
  68. data/app/helpers/spree/admin/customer_returns_helper.rb +1 -1
  69. data/app/helpers/spree/admin/navigation_helper.rb +1 -1
  70. data/app/helpers/spree/admin/orders_helper.rb +8 -4
  71. data/app/helpers/spree/admin/stock_movements_helper.rb +8 -4
  72. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +2 -3
  73. data/app/views/spree/admin/images/index.html.erb +25 -21
  74. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +8 -1
  75. data/app/views/spree/admin/option_types/edit.html.erb +3 -1
  76. data/app/views/spree/admin/orders/customer_details/_form.html.erb +13 -13
  77. data/app/views/spree/admin/orders/index.html.erb +23 -13
  78. data/app/views/spree/admin/payment_methods/_form.html.erb +7 -2
  79. data/app/views/spree/admin/payments/index.html.erb +3 -1
  80. data/app/views/spree/admin/prices/_master_variant_table.html.erb +3 -3
  81. data/app/views/spree/admin/prices/_table.html.erb +3 -3
  82. data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +7 -2
  83. data/app/views/spree/admin/product_properties/index.html.erb +14 -2
  84. data/app/views/spree/admin/products/_form.html.erb +13 -2
  85. data/app/views/spree/admin/products/index.html.erb +1 -1
  86. data/app/views/spree/admin/promotion_codes/index.html.erb +1 -1
  87. data/app/views/spree/admin/promotions/_actions.html.erb +1 -1
  88. data/app/views/spree/admin/promotions/_activations_new.html.erb +1 -1
  89. data/app/views/spree/admin/promotions/_rules.html.erb +1 -1
  90. data/app/views/spree/admin/promotions/edit.html.erb +2 -2
  91. data/app/views/spree/admin/promotions/index.html.erb +12 -5
  92. data/app/views/spree/admin/return_authorizations/_form.html.erb +3 -10
  93. data/app/views/spree/admin/return_authorizations/index.html.erb +1 -1
  94. data/app/views/spree/admin/search/users.json.jbuilder +15 -1
  95. data/app/views/spree/admin/shared/_address.html.erb +6 -6
  96. data/app/views/spree/admin/shared/_address_form.html.erb +15 -8
  97. data/app/views/spree/admin/shared/_order_submenu.html.erb +4 -4
  98. data/app/views/spree/admin/shared/_payments_tabs.html.erb +1 -1
  99. data/app/views/spree/admin/shared/_settings_checkout_tabs.html.erb +5 -5
  100. data/app/views/spree/admin/shared/_settings_sub_menu.html.erb +6 -6
  101. data/app/views/spree/admin/shared/_shipping_tabs.html.erb +3 -3
  102. data/app/views/spree/admin/shared/_taxes_tabs.html.erb +2 -2
  103. data/app/views/spree/admin/shared/preference_fields/_encrypted_string.html.erb +12 -0
  104. data/app/views/spree/admin/shipping_methods/_form.html.erb +18 -0
  105. data/app/views/spree/admin/stock_items/_stock_management.html.erb +1 -1
  106. data/app/views/spree/admin/stock_locations/edit.html.erb +1 -1
  107. data/app/views/spree/admin/stock_locations/index.html.erb +3 -1
  108. data/app/views/spree/admin/stock_movements/index.html.erb +30 -1
  109. data/app/views/spree/admin/stores/_form.html.erb +6 -0
  110. data/app/views/spree/admin/style_guide/topics/tables/_building_tables.html.erb +27 -3
  111. data/app/views/spree/admin/tax_categories/_form.html.erb +1 -0
  112. data/app/views/spree/admin/users/_form.html.erb +2 -2
  113. data/app/views/spree/admin/users/_tabs.html.erb +1 -1
  114. data/app/views/spree/admin/users/edit.html.erb +4 -4
  115. data/app/views/spree/admin/users/items.html.erb +5 -3
  116. data/app/views/spree/admin/users/orders.html.erb +5 -3
  117. data/app/views/spree/admin/variants/_table_filter.html.erb +1 -1
  118. data/app/views/spree/admin/variants/index.html.erb +2 -2
  119. data/config/initializers/form_builder.rb +2 -2
  120. data/lib/spree/backend/engine.rb +0 -2
  121. data/lib/spree/backend_configuration.rb +14 -1
  122. data/solidus_backend.gemspec +4 -4
  123. metadata +23 -122
  124. data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +0 -35
  125. data/script/rails +0 -10
  126. data/spec/controllers/spree/admin/base_controller_spec.rb +0 -26
  127. data/spec/controllers/spree/admin/cancellations_controller_spec.rb +0 -83
  128. data/spec/controllers/spree/admin/customer_returns_controller_spec.rb +0 -235
  129. data/spec/controllers/spree/admin/locale_controller_spec.rb +0 -45
  130. data/spec/controllers/spree/admin/missing_products_controller_spec.rb +0 -18
  131. data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +0 -128
  132. data/spec/controllers/spree/admin/orders_controller_spec.rb +0 -408
  133. data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +0 -95
  134. data/spec/controllers/spree/admin/payments_controller_spec.rb +0 -194
  135. data/spec/controllers/spree/admin/prices_controller_spec.rb +0 -45
  136. data/spec/controllers/spree/admin/product_properties_controller_spec.rb +0 -71
  137. data/spec/controllers/spree/admin/products_controller_spec.rb +0 -270
  138. data/spec/controllers/spree/admin/promotion_actions_controller_spec.rb +0 -23
  139. data/spec/controllers/spree/admin/promotion_codes_controller_spec.rb +0 -32
  140. data/spec/controllers/spree/admin/promotion_rules_controller_spec.rb +0 -36
  141. data/spec/controllers/spree/admin/promotions_controller_spec.rb +0 -122
  142. data/spec/controllers/spree/admin/refunds_controller_spec.rb +0 -35
  143. data/spec/controllers/spree/admin/reimbursements_controller_spec.rb +0 -137
  144. data/spec/controllers/spree/admin/resource_controller_spec.rb +0 -201
  145. data/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +0 -291
  146. data/spec/controllers/spree/admin/return_items_controller_spec.rb +0 -29
  147. data/spec/controllers/spree/admin/root_controller_spec.rb +0 -43
  148. data/spec/controllers/spree/admin/search_controller_spec.rb +0 -106
  149. data/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +0 -16
  150. data/spec/controllers/spree/admin/stock_items_controller_spec.rb +0 -52
  151. data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +0 -44
  152. data/spec/controllers/spree/admin/store_credits_controller_spec.rb +0 -311
  153. data/spec/controllers/spree/admin/users_controller_spec.rb +0 -287
  154. data/spec/controllers/spree/admin/variants_controller_spec.rb +0 -71
  155. data/spec/features/admin/configuration/payment_methods_spec.rb +0 -176
  156. data/spec/features/admin/configuration/shipping_methods_spec.rb +0 -126
  157. data/spec/features/admin/configuration/stock_locations_spec.rb +0 -54
  158. data/spec/features/admin/configuration/store_spec.rb +0 -62
  159. data/spec/features/admin/configuration/tax_categories_spec.rb +0 -58
  160. data/spec/features/admin/configuration/tax_rates_spec.rb +0 -31
  161. data/spec/features/admin/configuration/taxonomies_spec.rb +0 -61
  162. data/spec/features/admin/configuration/zones_spec.rb +0 -41
  163. data/spec/features/admin/homepage_spec.rb +0 -86
  164. data/spec/features/admin/javascript_format_money_spec.rb +0 -22
  165. data/spec/features/admin/locale_spec.rb +0 -34
  166. data/spec/features/admin/orders/adjustments_promotions_spec.rb +0 -55
  167. data/spec/features/admin/orders/adjustments_spec.rb +0 -130
  168. data/spec/features/admin/orders/cancelling_and_resuming_spec.rb +0 -45
  169. data/spec/features/admin/orders/cancelling_inventory_spec.rb +0 -50
  170. data/spec/features/admin/orders/customer_details_spec.rb +0 -203
  171. data/spec/features/admin/orders/customer_returns_spec.rb +0 -41
  172. data/spec/features/admin/orders/line_items_spec.rb +0 -52
  173. data/spec/features/admin/orders/listing_spec.rb +0 -186
  174. data/spec/features/admin/orders/log_entries_spec.rb +0 -56
  175. data/spec/features/admin/orders/new_order_spec.rb +0 -379
  176. data/spec/features/admin/orders/new_refund_spec.rb +0 -35
  177. data/spec/features/admin/orders/order_details_spec.rb +0 -591
  178. data/spec/features/admin/orders/payments_spec.rb +0 -330
  179. data/spec/features/admin/orders/return_authorizations_spec.rb +0 -56
  180. data/spec/features/admin/orders/return_payment_state_spec.rb +0 -65
  181. data/spec/features/admin/orders/risk_analysis_spec.rb +0 -49
  182. data/spec/features/admin/orders/shipments_spec.rb +0 -145
  183. data/spec/features/admin/payments/store_credits_spec.rb +0 -23
  184. data/spec/features/admin/products/edit/images_spec.rb +0 -76
  185. data/spec/features/admin/products/edit/products_spec.rb +0 -92
  186. data/spec/features/admin/products/edit/taxons_spec.rb +0 -57
  187. data/spec/features/admin/products/edit/variants_spec.rb +0 -63
  188. data/spec/features/admin/products/option_types_spec.rb +0 -116
  189. data/spec/features/admin/products/pricing_spec.rb +0 -127
  190. data/spec/features/admin/products/products_spec.rb +0 -348
  191. data/spec/features/admin/products/properties_spec.rb +0 -141
  192. data/spec/features/admin/products/stock_management_spec.rb +0 -101
  193. data/spec/features/admin/products/variant_spec.rb +0 -89
  194. data/spec/features/admin/promotion_adjustments_spec.rb +0 -286
  195. data/spec/features/admin/promotions/option_value_rule_spec.rb +0 -90
  196. data/spec/features/admin/promotions/product_rule_spec.rb +0 -35
  197. data/spec/features/admin/promotions/promotion_categories_spec.rb +0 -83
  198. data/spec/features/admin/promotions/promotion_code_batches_spec.rb +0 -37
  199. data/spec/features/admin/promotions/promotion_code_spec.rb +0 -31
  200. data/spec/features/admin/promotions/promotion_spec.rb +0 -52
  201. data/spec/features/admin/promotions/tiered_calculator_spec.rb +0 -76
  202. data/spec/features/admin/promotions/user_rule_spec.rb +0 -42
  203. data/spec/features/admin/reimbursements_spec.rb +0 -18
  204. data/spec/features/admin/store_credits_spec.rb +0 -132
  205. data/spec/features/admin/stores_spec.rb +0 -37
  206. data/spec/features/admin/style_guide_spec.rb +0 -14
  207. data/spec/features/admin/taxons_spec.rb +0 -90
  208. data/spec/features/admin/users_spec.rb +0 -412
  209. data/spec/fixtures/files/ror_ringer.jpeg +0 -0
  210. data/spec/helpers/admin/base_helper_spec.rb +0 -49
  211. data/spec/helpers/admin/navigation_helper_spec.rb +0 -139
  212. data/spec/helpers/admin/stock_movements_helper_spec.rb +0 -29
  213. data/spec/helpers/admin/store_credit_events_helper_spec.rb +0 -97
  214. data/spec/helpers/promotion_rules_helper_spec.rb +0 -14
  215. data/spec/javascripts/fixtures/_boot.html.erb +0 -8
  216. data/spec/javascripts/fixtures/number_with_currency/with_currency_select.html.erb +0 -3
  217. data/spec/javascripts/fixtures/number_with_currency/without_select.html.erb +0 -3
  218. data/spec/javascripts/format_money_spec.js +0 -48
  219. data/spec/javascripts/spec_helper.js +0 -13
  220. data/spec/javascripts/support/show_errors.js +0 -8
  221. data/spec/javascripts/support/with_translations.js +0 -11
  222. data/spec/javascripts/translation_spec.js +0 -58
  223. data/spec/javascripts/views/number_with_currency_spec.js +0 -72
  224. data/spec/lib/spree/backend_configuration/menu_item_spec.rb +0 -17
  225. data/spec/lib/spree/backend_configuration_spec.rb +0 -22
  226. data/spec/spec_helper.rb +0 -123
  227. data/spec/support/appear_before_matcher.rb +0 -10
  228. data/spec/support/feature/base_feature_helper.rb +0 -17
  229. data/spec/support/feature/order_feature_helper.rb +0 -27
  230. data/spec/teaspoon_env.rb +0 -51
  231. data/spec/test_views/spree/admin/widgets/edit.html.erb +0 -1
  232. data/spec/test_views/spree/admin/widgets/new.html.erb +0 -1
  233. data/spec/views/spree/admin/shared/navigation_footer_spec.rb +0 -67
@@ -1,72 +0,0 @@
1
- fixture.preload("number_with_currency/with_currency_select", "number_with_currency/without_select");
2
-
3
- describe("Spree.Views.NumberWithCurrency", function() {
4
- var view, $el;
5
- var $symbol, $input, $select, $addon;
6
-
7
- var loadFixture = function(path) {
8
- var fixtures = fixture.load(path, true);
9
- $el = $(fixtures[0]);
10
- }
11
-
12
- var loadView = function() {
13
- view = new Spree.Views.NumberWithCurrency({el: $el});
14
- view.render();
15
- $symbol = $el.find('.number-with-currency-symbol');
16
- $input = $el.find('input');
17
- $select = $el.find('select');
18
- $addon = $el.find('.number-with-currency-addon');
19
- }
20
-
21
- describe("with currency selector", function() {
22
- beforeEach(function() {
23
- loadFixture("number_with_currency/with_currency_select");
24
- loadView();
25
- });
26
-
27
- it("has a default currency selected", function() {
28
- expect($select).to.have.$val('USD');
29
- expect($symbol).to.have.$text('$');
30
- });
31
-
32
- it("can select CAD", function() {
33
- $select.val('CAD').trigger('change');
34
-
35
- expect($select).to.have.$val('CAD');
36
- expect($symbol).to.have.$text('$');
37
- });
38
-
39
- it("can select GBP", function() {
40
- $select.val('GBP').trigger('change');
41
-
42
- expect($select).to.have.$val('GBP');
43
- expect($symbol).to.have.$text('£');
44
- });
45
-
46
- it("can select JPY", function() {
47
- $select.val('JPY').trigger('change');
48
-
49
- expect($select).to.have.$val('JPY');
50
- expect($symbol).to.have.$text('¥');
51
- });
52
- });
53
-
54
- describe("without currency selector", function() {
55
- beforeEach(function() {
56
- loadFixture("number_with_currency/without_select");
57
- loadView();
58
- });
59
-
60
- it("uses USD format", function() {
61
- $el.find('[data-currency]').data('currency', 'USD');
62
- view.render();
63
- expect($symbol).to.have.$text('$');
64
- });
65
-
66
- it("uses JPY format", function() {
67
- $el.find('[data-currency]').data('currency', 'JPY');
68
- view.render();
69
- expect($symbol).to.have.$text('¥');
70
- });
71
- });
72
- });
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Spree::BackendConfiguration::MenuItem do
6
- describe '#match_path' do
7
- subject do
8
- described_class.new([], nil, {
9
- match_path: '/stock_items'
10
- }).match_path
11
- end
12
-
13
- it 'can be read' do
14
- is_expected.to eq('/stock_items')
15
- end
16
- end
17
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Spree::BackendConfiguration do
6
- describe '#menu_items' do
7
- subject do
8
- described_class.new.menu_items
9
- end
10
-
11
- describe 'menu tab for stock items' do
12
- let(:stock_menu_item) do
13
- subject.detect { |item| item.label == :stock }
14
- end
15
-
16
- # Regression for https://github.com/solidusio/solidus/issues/2950
17
- it 'has match_path set to /stock_items' do
18
- expect(stock_menu_item.match_path).to eq('/stock_items')
19
- end
20
- end
21
- end
22
- end
@@ -1,123 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- if ENV["COVERAGE"]
4
- require 'simplecov'
5
- SimpleCov.start('rails')
6
- end
7
-
8
- # This file is copied to ~/spec when you run 'ruby script/generate rspec'
9
- # from the project root directory.
10
- ENV["RAILS_ENV"] ||= 'test'
11
-
12
- require 'solidus_backend'
13
- require 'spree/testing_support/dummy_app'
14
- DummyApp.setup(
15
- gem_root: File.expand_path('..', __dir__),
16
- lib_name: 'solidus_backend'
17
- )
18
-
19
- require 'rails-controller-testing'
20
- require 'rspec-activemodel-mocks'
21
- require 'rspec/rails'
22
-
23
- # Requires supporting files with custom matchers and macros, etc,
24
- # in ./support/ and its subdirectories.
25
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
26
-
27
- require 'database_cleaner'
28
- require 'with_model'
29
-
30
- require 'spree/testing_support/partial_double_verification'
31
- require 'spree/testing_support/authorization_helpers'
32
- require 'spree/testing_support/factories'
33
- require 'spree/testing_support/preferences'
34
- require 'spree/testing_support/controller_requests'
35
- require 'spree/testing_support/flash'
36
- require 'spree/testing_support/url_helpers'
37
- require 'spree/testing_support/order_walkthrough'
38
- require 'spree/testing_support/capybara_ext'
39
-
40
- require 'capybara-screenshot/rspec'
41
- Capybara.save_path = ENV['CIRCLE_ARTIFACTS'] if ENV['CIRCLE_ARTIFACTS']
42
- Capybara.exact = true
43
-
44
- require "selenium/webdriver"
45
-
46
- Capybara.register_driver :selenium_chrome_headless do |app|
47
- browser_options = ::Selenium::WebDriver::Chrome::Options.new
48
- browser_options.args << '--headless'
49
- browser_options.args << '--disable-gpu'
50
- browser_options.args << '--window-size=1920,1080'
51
- Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
52
- end
53
-
54
- Capybara.javascript_driver = (ENV['CAPYBARA_DRIVER'] || :selenium_chrome_headless).to_sym
55
-
56
- ActionView::Base.raise_on_missing_translations = true
57
-
58
- Capybara.default_max_wait_time = ENV['DEFAULT_MAX_WAIT_TIME'].to_f if ENV['DEFAULT_MAX_WAIT_TIME'].present?
59
-
60
- ActiveJob::Base.queue_adapter = :test
61
-
62
- RSpec.configure do |config|
63
- config.color = true
64
- config.infer_spec_type_from_file_location!
65
- config.expect_with :rspec do |c|
66
- c.syntax = :expect
67
- end
68
- config.mock_with :rspec do |c|
69
- c.syntax = :expect
70
- end
71
-
72
- # If you're not using ActiveRecord, or you'd prefer not to run each of your
73
- # examples within a transaction, comment the following line or assign false
74
- # instead of true.
75
- config.use_transactional_fixtures = true
76
- config.fixture_path = "spec/fixtures"
77
-
78
- config.before :suite do
79
- DatabaseCleaner.clean_with :truncation
80
- end
81
-
82
- config.when_first_matching_example_defined(type: :feature) do
83
- config.before :suite do
84
- # Preload assets
85
- # This should avoid capybara timeouts, and avoid counting asset compilation
86
- # towards the timing of the first feature spec.
87
- Rails.application.precompiled_assets
88
- end
89
- end
90
-
91
- config.before do
92
- Rails.cache.clear
93
- if RSpec.current_example.metadata[:js] && page.driver.browser.respond_to?(:url_blacklist)
94
- page.driver.browser.url_blacklist = ['http://fonts.googleapis.com']
95
- end
96
- end
97
-
98
- config.include BaseFeatureHelper, type: :feature
99
-
100
- config.after(:each, type: :feature) do |example|
101
- missing_translations = page.body.scan(/translation missing: #{I18n.locale}\.(.*?)[\s<\"&]/)
102
- if missing_translations.any?
103
- puts "Found missing translations: #{missing_translations.inspect}"
104
- puts "In spec: #{example.location}"
105
- end
106
- end
107
-
108
- config.include FactoryBot::Syntax::Methods
109
- config.include ActiveJob::TestHelper
110
-
111
- config.include Spree::TestingSupport::Preferences
112
- config.include Spree::TestingSupport::UrlHelpers
113
- config.include Spree::TestingSupport::ControllerRequests, type: :controller
114
- config.include Spree::TestingSupport::Flash
115
-
116
- config.extend WithModel
117
-
118
- config.example_status_persistence_file_path = "./spec/examples.txt"
119
-
120
- config.order = :random
121
-
122
- Kernel.srand config.seed
123
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rspec/expectations'
4
-
5
- RSpec::Matchers.define :appear_before do |expected|
6
- match do |actual|
7
- raise "Page instance required to use the appear_before matcher" unless page
8
- has_text? /#{actual}.*#{expected}/
9
- end
10
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module BaseFeatureHelper
4
- def click_nav(nav_text, subnav_text = nil)
5
- primary_nav = find(".admin-nav-menu>ul>li>a", text: /#{nav_text}/i)
6
- if subnav_text
7
- unless Capybara.current_driver == :rack_test
8
- # we need to make the navigation visible with Selenium driver,
9
- # and RackTest implementation of `hover`raises NotImplementedError
10
- primary_nav.hover
11
- end
12
- primary_nav.sibling("ul").find("li > a", text: /#{subnav_text}/i).click
13
- else
14
- primary_nav.click
15
- end
16
- end
17
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module OrderFeatureHelper
4
- def add_line_item(product_name, quantity: 1)
5
- find(".js-add-line-item:not([disabled]), .line-item [name=quantity]").click
6
-
7
- targetted_select2_search product_name, from: ".select-variant"
8
- fill_in "quantity", with: quantity
9
- click_icon 'ok'
10
- end
11
-
12
- def complete_split_to(destination, quantity: nil)
13
- if destination.is_a?(Spree::Shipment)
14
- destination = destination.number
15
- elsif destination.is_a?(Spree::StockLocation)
16
- destination = destination.name
17
- end
18
-
19
- select2_no_label(destination, from: 'Choose Location')
20
-
21
- if quantity
22
- fill_in 'item_quantity', with: quantity
23
- end
24
-
25
- click_icon :ok
26
- end
27
- end
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ENV['RAILS_ENV'] = 'test'
4
-
5
- require 'teaspoon/driver/selenium'
6
-
7
- # Similar to setup described in
8
- # https://github.com/jejacks0n/teaspoon/wiki/Micro-Applications
9
-
10
- if defined?(DummyApp)
11
- DummyApp::Migrations.auto_migrate
12
-
13
- require 'teaspoon-mocha'
14
-
15
- Teaspoon.configure do |config|
16
- config.mount_at = "/teaspoon"
17
- config.root = Spree::Backend::Engine.root
18
- config.asset_paths = ["spec/javascripts", "spec/javascripts/stylesheets"]
19
- config.fixture_paths = ["spec/javascripts/fixtures"]
20
-
21
- config.driver = :selenium
22
- config.driver_options = {
23
- client_driver: :chrome,
24
- selenium_options: {
25
- options: Selenium::WebDriver::Chrome::Options.new(
26
- args: %w(headless disable-gpu window-size=1920,1440),
27
- ),
28
- },
29
- }
30
-
31
- config.suite do |suite|
32
- suite.use_framework :mocha, "2.3.3"
33
- suite.matcher = "{spec/javascripts,app/assets}/**/*_spec.{js,js.coffee,coffee}"
34
- suite.helper = "spec_helper"
35
- suite.boot_partial = "/boot"
36
- suite.expand_assets = true
37
- end
38
- end
39
- else
40
- require 'solidus_backend'
41
-
42
- require 'teaspoon'
43
-
44
- require 'spree/testing_support/dummy_app'
45
-
46
- DummyApp.setup(
47
- gem_root: File.expand_path('..', __dir__),
48
- lib_name: 'solidus_backend',
49
- auto_migrate: false
50
- )
51
- end
@@ -1,67 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe "spree/admin/shared/_navigation_footer", type: :view, partial_double_verification: false do
6
- let(:user) { FactoryBot.build_stubbed(:admin_user) }
7
- let(:ability) { Object.new.extend(CanCan::Ability) }
8
- before do
9
- allow(view).to receive(:try_spree_current_user).and_return(user)
10
- allow(controller).to receive(:current_ability).and_return(ability)
11
- end
12
-
13
- it "has a a login-nav section" do
14
- render
15
- expect(rendered).to have_selector("#login-nav")
16
- end
17
-
18
- context "authorized user" do
19
- before do
20
- ability.can :admin, user
21
- end
22
-
23
- it "has a user-account-link that links to edit_admin_user_path" do
24
- render
25
- expect(rendered).to have_link(user.email, href: Spree::Core::Engine.routes.url_helpers.edit_admin_user_path(user))
26
- end
27
-
28
- it "has not a user-account-link that links to admin_path" do
29
- render
30
- expect(rendered).to_not have_link(user.email, href: Spree::Core::Engine.routes.url_helpers.admin_path)
31
- end
32
- end
33
-
34
- context "unauthorized user" do
35
- it "has a user-account-link that links to admin_path" do
36
- render
37
- expect(rendered).to_not have_link(user.email, href: Spree::Core::Engine.routes.url_helpers.admin_path)
38
- end
39
-
40
- it "has not a user-account-link that links to edit_admin_user_path" do
41
- render
42
- expect(rendered).to_not have_link(user.email, href: Spree::Core::Engine.routes.url_helpers.edit_admin_user_path(user))
43
- end
44
- end
45
-
46
- context "with a required spree_logout_path helper" do
47
- before do
48
- allow(view).to receive(:spree_logout_path).and_return("/logout")
49
- end
50
-
51
- it "has user-logout-link" do
52
- render
53
- expect(rendered).to have_link(I18n.t('spree.logout'), href: "/logout")
54
- end
55
- end
56
-
57
- context "with a spree.root_path" do
58
- before do
59
- allow(view.spree).to receive("root_path").and_return("/")
60
- end
61
-
62
- it "has a back to store link" do
63
- render
64
- expect(rendered).to have_link(I18n.t('spree.back_to_store'), href: "/")
65
- end
66
- end
67
- end