solidus_pagy 1.0.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 (84) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +39 -0
  3. data/.gem_release.yml +5 -0
  4. data/.github/stale.yml +17 -0
  5. data/.github_changelog_generator +2 -0
  6. data/.gitignore +20 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +37 -0
  9. data/CHANGELOG.md +1 -0
  10. data/Gemfile +52 -0
  11. data/LICENSE +26 -0
  12. data/README.md +142 -0
  13. data/Rakefile +6 -0
  14. data/app/assets/javascripts/spree/backend/solidus_pagy.js +1 -0
  15. data/app/assets/javascripts/spree/frontend/solidus_pagy.js +2 -0
  16. data/app/assets/stylesheets/spree/backend/solidus_pagy.css +7 -0
  17. data/app/assets/stylesheets/spree/frontend/solidus_pagy.css +4 -0
  18. data/app/decorators/controllers/solidus_pagy/admin/base_controller_decorator.rb +13 -0
  19. data/app/decorators/controllers/solidus_pagy/admin/orders_controller_decorator.rb +63 -0
  20. data/app/decorators/controllers/solidus_pagy/admin/prices_controller_decorator.rb +51 -0
  21. data/app/decorators/controllers/solidus_pagy/admin/products_controller_decorator.rb +32 -0
  22. data/app/decorators/controllers/solidus_pagy/admin/promotion_codes_controller_decorator.rb +37 -0
  23. data/app/decorators/controllers/solidus_pagy/admin/promotions_controller_decorator.rb +32 -0
  24. data/app/decorators/controllers/solidus_pagy/admin/properties_controller_decorator.rb +32 -0
  25. data/app/decorators/controllers/solidus_pagy/admin/stock_items_controller_decorator.rb +42 -0
  26. data/app/decorators/controllers/solidus_pagy/admin/stock_locations_controller_decorator.rb +25 -0
  27. data/app/decorators/controllers/solidus_pagy/admin/stock_movements_controller_decorator.rb +25 -0
  28. data/app/decorators/controllers/solidus_pagy/admin/tax_rates_controller_decorator.rb +27 -0
  29. data/app/decorators/controllers/solidus_pagy/admin/users_controller_decorator.rb +68 -0
  30. data/app/decorators/controllers/solidus_pagy/admin/variants_controller_decorator.rb +33 -0
  31. data/app/decorators/controllers/solidus_pagy/admin/zones_controller_decorator.rb +28 -0
  32. data/app/overrides/spree/admin/orders/index/insert_pagy_pagination.rb +9 -0
  33. data/app/overrides/spree/admin/prices/_master_variant_table/insert_pagy_pagination.rb +11 -0
  34. data/app/overrides/spree/admin/prices/_table/insert_pagy_pagination.rb +11 -0
  35. data/app/overrides/spree/admin/products/index/insert_pagy_pagination.rb +9 -0
  36. data/app/overrides/spree/admin/promotion_codes/index/insert_pagy_pagination.rb +19 -0
  37. data/app/overrides/spree/admin/promotions/index/insert_pagy_pagination.rb +9 -0
  38. data/app/overrides/spree/admin/properties/index/insert_pagy_pagination.rb +9 -0
  39. data/app/overrides/spree/admin/stock_items/_stock_management/insert_pagy_pagination.rb +11 -0
  40. data/app/overrides/spree/admin/stock_locations/index/insert_pagy_pagination.rb +11 -0
  41. data/app/overrides/spree/admin/stock_movements/index/insert_pagy_pagination.rb +11 -0
  42. data/app/overrides/spree/admin/tax_rates/index/insert_pagy_pagination.rb +9 -0
  43. data/app/overrides/spree/admin/users/index/insert_pagy_pagination.rb +9 -0
  44. data/app/overrides/spree/admin/users/items/insert_pagy_pagination.rb +9 -0
  45. data/app/overrides/spree/admin/users/orders/insert_pagy_pagination.rb +9 -0
  46. data/app/overrides/spree/admin/variants/_table/insert_pagy_pagination.rb +9 -0
  47. data/app/overrides/spree/admin/zones/index/insert_pagy_pagination.rb +9 -0
  48. data/bin/console +17 -0
  49. data/bin/rails +7 -0
  50. data/bin/rails-engine +13 -0
  51. data/bin/rails-sandbox +16 -0
  52. data/bin/rake +7 -0
  53. data/bin/sandbox +86 -0
  54. data/bin/setup +8 -0
  55. data/config/locales/en.yml +5 -0
  56. data/config/routes.rb +5 -0
  57. data/lib/generators/solidus_pagy/install/install_generator.rb +18 -0
  58. data/lib/generators/solidus_pagy/install/templates/initializer.rb +30 -0
  59. data/lib/generators/solidus_pagy/install/templates/pagy.rb +235 -0
  60. data/lib/solidus_pagy/configuration.rb +27 -0
  61. data/lib/solidus_pagy/engine.rb +16 -0
  62. data/lib/solidus_pagy/testing_support/factories.rb +4 -0
  63. data/lib/solidus_pagy/version.rb +5 -0
  64. data/lib/solidus_pagy.rb +11 -0
  65. data/solidus_pagy.gemspec +44 -0
  66. data/spec/controllers/spree/admin/orders_controller_spec.rb +100 -0
  67. data/spec/controllers/spree/admin/prices_controller_spec.rb +80 -0
  68. data/spec/controllers/spree/admin/products_controller_spec.rb +57 -0
  69. data/spec/controllers/spree/admin/promotion_codes_controller_spec.rb +38 -0
  70. data/spec/controllers/spree/admin/promotions_controller_spec.rb +90 -0
  71. data/spec/controllers/spree/admin/properties_controller_spec.rb +15 -0
  72. data/spec/controllers/spree/admin/stock_items_controller_spec.rb +35 -0
  73. data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +26 -0
  74. data/spec/controllers/spree/admin/stock_movements_controller_spec.rb +81 -0
  75. data/spec/controllers/spree/admin/tax_rates_controller_spec.rb +15 -0
  76. data/spec/controllers/spree/admin/users_controller_spec.rb +117 -0
  77. data/spec/controllers/spree/admin/variants_controller_spec.rb +76 -0
  78. data/spec/controllers/spree/admin/zones_controller_spec.rb +15 -0
  79. data/spec/solidus_pagy/configuration_spec.rb +55 -0
  80. data/spec/spec_helper.rb +31 -0
  81. data/spec/support/devise.rb +8 -0
  82. data/spec/support/pagy.rb.rb +8 -0
  83. data/spec/support/solidus.rb +16 -0
  84. metadata +248 -0
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Spree::Admin::PromotionsController, type: :controller do
6
+ stub_authorization!
7
+
8
+ let!(:promotion1) do
9
+ create(
10
+ :promotion,
11
+ :with_action,
12
+ name: 'name1',
13
+ code: 'code1',
14
+ path: 'path1'
15
+ )
16
+ end
17
+ let!(:promotion2) do
18
+ create(
19
+ :promotion,
20
+ :with_action,
21
+ name: 'name2',
22
+ code: 'code2',
23
+ path: 'path2'
24
+ )
25
+ end
26
+ let!(:promotion3) do
27
+ create(
28
+ :promotion,
29
+ :with_action,
30
+ name: 'name2',
31
+ code: 'code3',
32
+ path: 'path3',
33
+ expires_at: Date.yesterday
34
+ )
35
+ end
36
+ let!(:category) { create :promotion_category }
37
+
38
+ context 'pagination' do
39
+ it 'can page through the promotions' do
40
+ get :index, params: { page: 1, per_page: 10 }
41
+ expect(assigns[:pagy].page).to eq(1)
42
+ expect(assigns[:pagy].items).to eq(10)
43
+ end
44
+ end
45
+
46
+ describe '#index' do
47
+ it 'succeeds' do
48
+ get :index
49
+ expect(assigns[:promotions])
50
+ .to match_array [promotion3, promotion2, promotion1]
51
+ end
52
+
53
+ it 'assigns promotion categories' do
54
+ get :index
55
+ expect(assigns[:promotion_categories]).to match_array [category]
56
+ end
57
+
58
+ context 'search' do
59
+ it 'pages results' do
60
+ get :index, params: { per_page: '1' }
61
+ expect(assigns[:promotions]).to eq [promotion3]
62
+ end
63
+
64
+ it 'filters by name' do
65
+ get :index, params: { q: { name_cont: promotion1.name } }
66
+ expect(assigns[:promotions]).to eq [promotion1]
67
+ end
68
+
69
+ it 'filters by code' do
70
+ get :index,
71
+ params: {
72
+ q: {
73
+ codes_value_cont: promotion1.codes.first.value
74
+ }
75
+ }
76
+ expect(assigns[:promotions]).to eq [promotion1]
77
+ end
78
+
79
+ it 'filters by path' do
80
+ get :index, params: { q: { path_cont: promotion1.path } }
81
+ expect(assigns[:promotions]).to eq [promotion1]
82
+ end
83
+
84
+ it 'filters by active' do
85
+ get :index, params: { q: { active: true } }
86
+ expect(assigns[:promotions]).to match_array [promotion2, promotion1]
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Spree::Admin::PropertiesController, type: :controller do
6
+ stub_authorization!
7
+
8
+ context 'pagination' do
9
+ it 'can page through the promotions' do
10
+ get :index, params: { page: 1 }
11
+ expect(assigns[:pagy].page).to eq(1)
12
+ expect(assigns[:pagy].items).to eq(15)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Spree::Admin::StockItemsController, type: :controller do
6
+ stub_authorization!
7
+
8
+ let(:stock_location) { create(:stock_location) }
9
+
10
+ context 'pagination' do
11
+ it 'can page through the promotions' do
12
+ get :index, params: { page: 1 }
13
+ expect(assigns[:pagy].page).to eq(1)
14
+ expect(assigns[:pagy].items).to eq(15)
15
+ end
16
+ end
17
+
18
+ describe '#index' do
19
+ context 'without stock location' do
20
+ it 'returns 200' do
21
+ get :index
22
+
23
+ expect(response.status).to be(200)
24
+ end
25
+ end
26
+
27
+ context 'with stock location' do
28
+ it 'returns 200' do
29
+ get :index, params: { stock_location_id: stock_location.id }
30
+
31
+ expect(response.status).to be(200)
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Spree::Admin::StockLocationsController, type: :controller do
6
+ stub_authorization!
7
+
8
+ let!(:stock_location) { create(:stock_location) }
9
+
10
+ context 'with pagination' do
11
+ it 'can page through the promotions' do
12
+ get :index, params: { page: 1 }
13
+ expect(assigns[:pagy].page).to eq(1)
14
+ expect(assigns[:pagy].items).to eq(10)
15
+ end
16
+ end
17
+
18
+ describe '#index' do
19
+ it 'returns 200' do
20
+ get :index
21
+
22
+ expect(assigns[:collection]).not_to be_empty
23
+ expect(assigns[:collection]).to include(stock_location)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Spree::Admin::StockMovementsController, type: :controller do
6
+ stub_authorization!
7
+
8
+ let!(:stock_location) do
9
+ create(
10
+ :stock_location_with_items
11
+ )
12
+ end
13
+ let!(:stock_movement1) do
14
+ create(
15
+ :stock_movement,
16
+ stock_item: stock_location.stock_items.first
17
+ )
18
+ end
19
+ let!(:stock_movement2) do
20
+ create(
21
+ :stock_movement,
22
+ stock_item: stock_location.stock_items.last
23
+ )
24
+ end
25
+
26
+ context 'pagination' do
27
+ it 'can page through the promotions' do
28
+ get :index, params: { stock_location_id: stock_location.id, page: 1 }
29
+ expect(assigns[:pagy].page).to eq(1)
30
+ expect(assigns[:pagy].items).to eq(20)
31
+ end
32
+ end
33
+
34
+ describe '#index' do
35
+ subject { get :index, params: params }
36
+
37
+ context 'with no params' do
38
+ let(:params) { { stock_location_id: stock_location.id } }
39
+
40
+ it 'responds with a successful status code' do
41
+ subject
42
+
43
+ expect(response).to be_successful
44
+ end
45
+
46
+ it 'responds with all the stock locations stock movements' do
47
+ subject
48
+
49
+ expect(assigns[:stock_movements]).to contain_exactly(
50
+ stock_movement1,
51
+ stock_movement2
52
+ )
53
+ end
54
+ end
55
+
56
+ context 'with search parameters' do
57
+ let(:params) do
58
+ {
59
+ stock_location_id: stock_location.id,
60
+ q: {
61
+ variant_sku_eq: stock_movement1.stock_item.variant.sku
62
+ }
63
+ }
64
+ end
65
+
66
+ it 'responds with a successful status code' do
67
+ subject
68
+
69
+ expect(response).to be_successful
70
+ end
71
+
72
+ it 'responds with the stock movements that match the search criteria' do
73
+ subject
74
+
75
+ expect(assigns[:stock_movements]).to contain_exactly(
76
+ stock_movement1,
77
+ )
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Spree::Admin::TaxRatesController, type: :controller do
6
+ stub_authorization!
7
+
8
+ context 'with pagination' do
9
+ it 'can page through the promotions' do
10
+ get :index, params: { page: 1 }
11
+ expect(assigns[:pagy].page).to eq(1)
12
+ expect(assigns[:pagy].items).to eq(10)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,117 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Spree::Admin::UsersController, type: :controller do
6
+ stub_authorization!
7
+
8
+ let(:user) { create(:user) }
9
+ let(:state) { create(:state, state_code: 'NY') }
10
+ let(:valid_address_attributes) do
11
+ {
12
+ name: 'Foo Bar',
13
+ city: 'New York',
14
+ country_id: state.country.id,
15
+ state_id: state.id,
16
+ phone: '555-555-5555',
17
+ address1: '123 Fake St.',
18
+ zipcode: '10001',
19
+ }
20
+ end
21
+
22
+ context 'with pagination' do
23
+ it 'can page through the promotions' do
24
+ get :index, params: { id: user.id, page: 1 }
25
+ expect(assigns[:pagy].page).to eq(1)
26
+ expect(assigns[:pagy].items).to eq(20)
27
+ end
28
+ end
29
+
30
+ describe '#index' do
31
+ stub_authorization! do |_user|
32
+ can :manage, Spree.user_class
33
+ end
34
+
35
+ context 'when the user can manage all users' do
36
+ it 'assigns a list of all users as @collection' do
37
+ get :index, params: { id: user.id }
38
+ expect(assigns(:collection)).to eq [user]
39
+ end
40
+
41
+ it 'assigns a ransack search for Spree.user_class' do
42
+ get :index, params: { id: user.id }
43
+ expect(assigns[:search]).to be_a Ransack::Search
44
+ expect(assigns[:search].klass).to eq Spree.user_class
45
+ end
46
+ end
47
+
48
+ context 'when user cannot manage some users' do
49
+ stub_authorization! do |_user|
50
+ can :manage, Spree.user_class
51
+ cannot :manage, Spree.user_class, email: 'not_accessible_user@example.com'
52
+ end
53
+
54
+ it 'assigns a list of accessible users as @collection' do
55
+ create(:user, email: 'not_accessible_user@example.com')
56
+
57
+ get :index, params: { id: user.id }
58
+ expect(assigns(:collection)).to eq [user]
59
+ end
60
+ end
61
+
62
+ context 'when Spree.user_class does not respond to #accessible_by' do
63
+ it 'assigns a list of all users as @collection' do
64
+ allow(Spree.user_class).to receive(:respond_to?).and_call_original
65
+ allow(Spree.user_class).to receive(:respond_to?)
66
+ .with(:accessible_by).and_return(false)
67
+
68
+ get :index, params: { id: user.id }
69
+ expect(assigns(:collection)).to eq [user]
70
+ end
71
+ end
72
+ end
73
+
74
+ describe '#orders' do
75
+ stub_authorization! do |_user|
76
+ can :manage, Spree.user_class
77
+ end
78
+
79
+ let(:order) { create(:order) }
80
+
81
+ before { user.orders << order }
82
+
83
+ it 'assigns a list of the users orders' do
84
+ get :orders, params: { id: user.id }
85
+ expect(assigns[:orders].count).to eq(1)
86
+ expect(assigns[:orders].first).to eq(order)
87
+ end
88
+
89
+ it 'assigns a ransack search for Spree::Order' do
90
+ get :orders, params: { id: user.id }
91
+ expect(assigns[:search]).to be_a(Ransack::Search)
92
+ expect(assigns[:search].klass).to eq(Spree::Order)
93
+ end
94
+ end
95
+
96
+ describe '#items' do
97
+ stub_authorization! do |_user|
98
+ can :manage, Spree.user_class
99
+ end
100
+
101
+ let(:order) { create(:order) }
102
+
103
+ before { user.orders << order }
104
+
105
+ it 'assigns a list of the users orders' do
106
+ get :items, params: { id: user.id }
107
+ expect(assigns[:orders].count).to eq(1)
108
+ expect(assigns[:orders].first).to eq(order)
109
+ end
110
+
111
+ it 'assigns a ransack search for Spree::Order' do
112
+ get :items, params: { id: user.id }
113
+ expect(assigns[:search]).to be_a(Ransack::Search)
114
+ expect(assigns[:search].klass).to eq(Spree::Order)
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Spree::Admin::VariantsController, type: :controller do
6
+ stub_authorization!
7
+
8
+ let!(:product) { create(:product) }
9
+
10
+ context 'with pagination' do
11
+ it 'can page through the promotions' do
12
+ get :index, params: { product_id: product.slug, page: 1 }
13
+ expect(assigns[:pagy].page).to eq(1)
14
+ expect(assigns[:pagy].items).to eq(20)
15
+ end
16
+ end
17
+
18
+ describe '#index' do
19
+ let(:params) { { product_id: product.slug } }
20
+
21
+ subject { get :index, params: params }
22
+
23
+ context 'when the value of @parent' do
24
+ it 'is the product' do
25
+ subject
26
+ expect(assigns(:parent)).to eq product
27
+ end
28
+
29
+ context 'with a deleted product' do
30
+ before { product.discard }
31
+
32
+ it 'is the product' do
33
+ subject
34
+ expect(assigns(:parent)).to eq product
35
+ end
36
+ end
37
+ end
38
+
39
+ context 'when the value of @collection' do
40
+ let!(:variant) { create(:variant, product: product) }
41
+ let!(:deleted_variant) { create(:variant, product: product) }
42
+
43
+ context 'with soft-deleted variants' do
44
+ before { deleted_variant.discard }
45
+
46
+ context 'when deleted is not requested' do
47
+ it 'excludes deleted variants' do
48
+ subject
49
+ expect(assigns(:collection)).to include variant
50
+ expect(assigns(:collection)).not_to include deleted_variant
51
+ end
52
+ end
53
+
54
+ context 'when deleted is requested' do
55
+ let(:params) { { product_id: product.slug, deleted: 'on' } }
56
+
57
+ it 'includes deleted variants' do
58
+ subject
59
+ expect(assigns(:collection)).to include variant
60
+ expect(assigns(:collection)).to include deleted_variant
61
+ end
62
+ end
63
+
64
+ context 'when existent product id not given' do
65
+ let(:params) { { product_id: 'non-existent-product' } }
66
+
67
+ it 'cannot find non-existent product' do
68
+ subject
69
+ expect(response).to redirect_to(spree.admin_products_path)
70
+ expect(flash[:error]).to eql('Product is not found')
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Spree::Admin::ZonesController, type: :controller do
6
+ stub_authorization!
7
+
8
+ context 'with pagination' do
9
+ it 'can page through the promotions' do
10
+ get :index, params: { page: 1 }
11
+ expect(assigns[:pagy].page).to eq(1)
12
+ expect(assigns[:pagy].items).to eq(20)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe SolidusPagy::Configuration do
6
+ before do
7
+ SolidusPagy.configure do |config|
8
+ config.nav_helper = 'pagy_nav'
9
+ config.page = 1
10
+ config.items = 20
11
+ config.outset = 0
12
+ config.orders_per_page = 15
13
+ config.properties_per_page = 15
14
+ config.promotions_per_page = 15
15
+ config.admin_products_per_page = 10
16
+ config.admin_variants_per_page = 20
17
+ end
18
+ end
19
+
20
+ it 'read nav_helper value' do
21
+ expect(SolidusPagy.config.nav_helper).to be('pagy_nav')
22
+ end
23
+
24
+ it 'read page value' do
25
+ expect(SolidusPagy.config.page).to be(1)
26
+ end
27
+
28
+ it 'read items value' do
29
+ expect(SolidusPagy.config.items).to be(20)
30
+ end
31
+
32
+ it 'read outset value' do
33
+ expect(SolidusPagy.config.outset).to be(0)
34
+ end
35
+
36
+ it 'read orders_per_page value' do
37
+ expect(SolidusPagy.config.orders_per_page).to be(15)
38
+ end
39
+
40
+ it 'read properties_per_page value' do
41
+ expect(SolidusPagy.config.properties_per_page).to be(15)
42
+ end
43
+
44
+ it 'read promotions_per_page value' do
45
+ expect(SolidusPagy.config.promotions_per_page).to be(15)
46
+ end
47
+
48
+ it 'read admin_products_per_page value' do
49
+ expect(SolidusPagy.config.admin_products_per_page).to be(10)
50
+ end
51
+
52
+ it 'read admin_variants_per_page value' do
53
+ expect(SolidusPagy.config.admin_variants_per_page).to be(20)
54
+ end
55
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Configure Rails Environment
4
+ ENV['RAILS_ENV'] = 'test'
5
+
6
+ # Run Coverage report
7
+ require 'solidus_dev_support/rspec/coverage'
8
+
9
+ # Create the dummy app if it's still missing.
10
+ dummy_env = "#{__dir__}/dummy/config/environment.rb"
11
+ system 'bin/rake extension:test_app' unless File.exist? dummy_env
12
+ require dummy_env
13
+
14
+ # Requires factories and other useful helpers defined in spree_core.
15
+ require 'solidus_dev_support/rspec/feature_helper'
16
+
17
+ # Requires supporting ruby files with custom matchers and macros, etc,
18
+ # in spec/support/ and its subdirectories.
19
+ Dir["#{__dir__}/support/**/*.rb"].sort.each { |f| require f }
20
+
21
+ # Requires factories defined in lib/solidus_pagy/testing_support/factories.rb
22
+ SolidusDevSupport::TestingSupport::Factories.load_for(SolidusPagy::Engine)
23
+
24
+ RSpec.configure do |config|
25
+ config.infer_spec_type_from_file_location!
26
+ config.use_transactional_fixtures = false
27
+
28
+ if Spree.solidus_gem_version < Gem::Version.new('2.11')
29
+ config.extend Spree::TestingSupport::AuthorizationHelpers::Request, type: :system
30
+ end
31
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'devise'
4
+
5
+ RSpec.configure do |config|
6
+ config.include Devise::Test::ControllerHelpers, type: :controller
7
+ config.include Devise::Test::IntegrationHelpers, type: :request
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pagy'
4
+
5
+ RSpec.configure do |config|
6
+ config.include Pagy::Backend
7
+ config.include Pagy::Frontend
8
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spree/testing_support/flash'
4
+ require 'spree/testing_support/url_helpers'
5
+ require 'spree/testing_support/controller_requests'
6
+ require 'spree/testing_support/authorization_helpers'
7
+ require 'spree/testing_support/translations'
8
+ require 'spree/testing_support/order_walkthrough'
9
+
10
+ RSpec.configure do |config|
11
+ config.include Spree::TestingSupport::Flash
12
+ config.include Spree::TestingSupport::UrlHelpers
13
+ config.include Spree::TestingSupport::ControllerRequests, type: :controller
14
+ config.include Spree::TestingSupport::Translations
15
+ config.include Rails.application.routes.url_helpers
16
+ end