solidus_dev_support 2.11.0 → 2.12.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.
@@ -1,25 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'thor'
4
- require 'solidus_dev_support/extension'
5
- require 'spree/core/version'
3
+ require "thor"
4
+ require "solidus_dev_support/extension"
5
+ require "spree/core/version"
6
6
 
7
7
  module SolidusDevSupport
8
8
  class SolidusCommand < Thor
9
- namespace ''
9
+ namespace ""
10
10
 
11
- desc 'extension', 'Manage solidus extensions'
12
- subcommand 'extension', Extension
11
+ desc "extension", "Manage solidus extensions"
12
+ subcommand "extension", Extension
13
13
 
14
- desc 'e', 'Manage solidus extensions (shortcut for "extension")'
15
- subcommand 'e', Extension
14
+ desc "e", 'Manage solidus extensions (shortcut for "extension")'
15
+ subcommand "e", Extension
16
16
 
17
- desc 'version', 'Displays solidus_dev_support version'
17
+ desc "version", "Displays solidus_dev_support version"
18
18
  def version
19
19
  puts "Solidus version #{Spree.solidus_gem_version}"
20
20
  puts "Solidus Dev Support version #{SolidusDevSupport::VERSION}"
21
21
  end
22
- map ['-v', '--version'] => :version
22
+ map ["-v", "--version"] => :version
23
23
 
24
24
  def self.exit_on_failure?
25
25
  true
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "bundler/gem_tasks"
4
- require 'solidus_dev_support/rake_tasks'
4
+ require "solidus_dev_support/rake_tasks"
5
5
  SolidusDevSupport::RakeTasks.install
6
6
 
7
- task default: 'extension:specs'
7
+ task default: "extension:specs"
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- app_root = 'sandbox'
3
+ app_root = "sandbox"
4
4
 
5
5
  unless File.exist? "#{app_root}/bin/rails"
6
- warn 'Creating the sandbox app...'
6
+ warn "Creating the sandbox app..."
7
7
  Dir.chdir "#{__dir__}/.." do
8
8
  system "#{__dir__}/sandbox" or begin
9
- warn 'Automatic creation of the sandbox app failed'
9
+ warn "Automatic creation of the sandbox app failed"
10
10
  exit 1
11
11
  end
12
12
  end
13
13
  end
14
14
 
15
15
  Dir.chdir app_root
16
- exec 'bin/rails', *ARGV
16
+ exec "bin/rails", *ARGV
@@ -1,19 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'factory_bot'
4
- require 'spree/testing_support/factory_bot'
3
+ require "factory_bot"
4
+ require "spree/testing_support/factory_bot"
5
5
 
6
6
  module SolidusDevSupport
7
7
  module TestingSupport
8
8
  module Factories
9
9
  def self.load_for(*engines)
10
10
  paths = engines.flat_map do |engine|
11
- engine.root.glob('lib/**/testing_support/factories{,.rb}')
12
- end.map { |path| path.sub(/.rb\z/, '').to_s }
11
+ engine.root.glob("lib/**/testing_support/factories{,.rb}")
12
+ end.map { |path| path.sub(/.rb\z/, "").to_s }
13
13
 
14
14
  FactoryBot.definition_file_paths = [
15
15
  Spree::TestingSupport::FactoryBot.definition_file_paths,
16
- paths,
16
+ paths
17
17
  ].flatten
18
18
 
19
19
  FactoryBot.reload
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusDevSupport
4
- VERSION = "2.11.0"
4
+ VERSION = "2.12.0"
5
5
 
6
6
  def self.gem_version
7
7
  Gem::Version.new(VERSION)
@@ -7,7 +7,7 @@ module SolidusDevSupport
7
7
 
8
8
  class << self
9
9
  def reset_spree_preferences_deprecated?
10
- first_version_without_reset = Gem::Requirement.new('>= 2.9')
10
+ first_version_without_reset = Gem::Requirement.new(">= 2.9")
11
11
  first_version_without_reset.satisfied_by?(Spree.solidus_gem_version)
12
12
  end
13
13
  end
@@ -1,51 +1,47 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'lib/solidus_dev_support/version'
3
+ require_relative "lib/solidus_dev_support/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = 'solidus_dev_support'
6
+ spec.name = "solidus_dev_support"
7
7
  spec.version = SolidusDevSupport::VERSION
8
- spec.authors = ['Alessandro Desantis']
9
- spec.email = ['alessandrodesantis@nebulab.it']
8
+ spec.authors = ["Alessandro Desantis"]
9
+ spec.email = ["alessandrodesantis@nebulab.it"]
10
10
 
11
- spec.summary = 'Development tools for Solidus extensions.'
12
- spec.homepage = 'https://github.com/solidusio/solidus_dev_support'
13
- spec.license = 'MIT'
11
+ spec.summary = "Development tools for Solidus extensions."
12
+ spec.homepage = "https://github.com/solidusio/solidus_dev_support"
13
+ spec.license = "MIT"
14
14
 
15
- spec.metadata['homepage_uri'] = spec.homepage
16
- spec.metadata['source_code_uri'] = 'https://github.com/solidusio/solidus_dev_support'
17
- spec.metadata['changelog_uri'] = 'https://github.com/solidusio/solidus_dev_support/releases'
18
- spec.metadata['rubygems_mfa_required'] = 'true'
15
+ spec.metadata["homepage_uri"] = spec.homepage
16
+ spec.metadata["source_code_uri"] = "https://github.com/solidusio/solidus_dev_support"
17
+ spec.metadata["changelog_uri"] = "https://github.com/solidusio/solidus_dev_support/releases"
18
+ spec.metadata["rubygems_mfa_required"] = "true"
19
19
 
20
- spec.required_ruby_version = '>= 3.0.0'
20
+ spec.required_ruby_version = ">= 3.0.0"
21
21
 
22
22
  # Specify which files should be added to the gem when it is released.
23
23
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
24
  files = Dir.chdir(__dir__) { `git ls-files -z`.split("\x0") }
25
25
 
26
26
  spec.files = files.grep_v(%r{^(test|spec|features)/})
27
- spec.test_files = files.grep(%r{^(test|spec|features)/})
28
27
  spec.bindir = "exe"
29
28
  spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) }
30
29
  spec.require_paths = ["lib"]
31
30
 
32
- spec.add_dependency 'capybara', '~> 3.29'
33
- spec.add_dependency 'capybara-screenshot', '~> 1.0'
34
- spec.add_dependency 'codecov', '~> 0.2'
35
- spec.add_dependency 'database_cleaner', ['>= 1.7', '< 3']
36
- spec.add_dependency 'factory_bot', '>= 4.8'
37
- spec.add_dependency 'factory_bot_rails'
38
- spec.add_dependency 'ffaker', '~> 2.13'
39
- spec.add_dependency 'gem-release', '~> 2.1'
40
- spec.add_dependency 'github_changelog_generator', '~> 1.15'
41
- spec.add_dependency 'puma', '>= 4.3', '< 7.0'
42
- spec.add_dependency 'rspec_junit_formatter'
43
- spec.add_dependency 'rspec-rails', '>= 5.0', '< 7.0'
44
- spec.add_dependency 'rubocop', '~> 1.0'
45
- spec.add_dependency 'rubocop-performance', '~> 1.5'
46
- spec.add_dependency 'rubocop-rails', '~> 2.3'
47
- spec.add_dependency 'rubocop-rspec', '~> 2.0'
48
- spec.add_dependency 'selenium-webdriver', '~> 4.11'
49
- spec.add_dependency 'simplecov-cobertura', '~> 2.1'
50
- spec.add_dependency 'solidus_core', ['>= 2.0', '< 5']
31
+ spec.add_dependency "capybara", "~> 3.29"
32
+ spec.add_dependency "capybara-screenshot", "~> 1.0"
33
+ spec.add_dependency "codecov", "~> 0.2"
34
+ spec.add_dependency "database_cleaner", [">= 1.7", "< 3"]
35
+ spec.add_dependency "factory_bot", ">= 4.8"
36
+ spec.add_dependency "factory_bot_rails"
37
+ spec.add_dependency "ffaker", "~> 2.13"
38
+ spec.add_dependency "gem-release", "~> 2.1"
39
+ spec.add_dependency "github_changelog_generator", "~> 1.15"
40
+ spec.add_dependency "puma", ">= 4.3", "< 7.0"
41
+ spec.add_dependency "rspec_junit_formatter"
42
+ spec.add_dependency "rspec-rails", ">= 5.0", "< 7.0"
43
+ spec.add_dependency "selenium-webdriver", "~> 4.11"
44
+ spec.add_dependency "simplecov-cobertura", "~> 2.1"
45
+ spec.add_dependency "solidus_core", [">= 2.0", "< 5"]
46
+ spec.add_dependency "standard", "~> 1.49"
51
47
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_dev_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.0
4
+ version: 2.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Desantis
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-02-26 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: capybara
@@ -195,62 +195,6 @@ dependencies:
195
195
  - - "<"
196
196
  - !ruby/object:Gem::Version
197
197
  version: '7.0'
198
- - !ruby/object:Gem::Dependency
199
- name: rubocop
200
- requirement: !ruby/object:Gem::Requirement
201
- requirements:
202
- - - "~>"
203
- - !ruby/object:Gem::Version
204
- version: '1.0'
205
- type: :runtime
206
- prerelease: false
207
- version_requirements: !ruby/object:Gem::Requirement
208
- requirements:
209
- - - "~>"
210
- - !ruby/object:Gem::Version
211
- version: '1.0'
212
- - !ruby/object:Gem::Dependency
213
- name: rubocop-performance
214
- requirement: !ruby/object:Gem::Requirement
215
- requirements:
216
- - - "~>"
217
- - !ruby/object:Gem::Version
218
- version: '1.5'
219
- type: :runtime
220
- prerelease: false
221
- version_requirements: !ruby/object:Gem::Requirement
222
- requirements:
223
- - - "~>"
224
- - !ruby/object:Gem::Version
225
- version: '1.5'
226
- - !ruby/object:Gem::Dependency
227
- name: rubocop-rails
228
- requirement: !ruby/object:Gem::Requirement
229
- requirements:
230
- - - "~>"
231
- - !ruby/object:Gem::Version
232
- version: '2.3'
233
- type: :runtime
234
- prerelease: false
235
- version_requirements: !ruby/object:Gem::Requirement
236
- requirements:
237
- - - "~>"
238
- - !ruby/object:Gem::Version
239
- version: '2.3'
240
- - !ruby/object:Gem::Dependency
241
- name: rubocop-rspec
242
- requirement: !ruby/object:Gem::Requirement
243
- requirements:
244
- - - "~>"
245
- - !ruby/object:Gem::Version
246
- version: '2.0'
247
- type: :runtime
248
- prerelease: false
249
- version_requirements: !ruby/object:Gem::Requirement
250
- requirements:
251
- - - "~>"
252
- - !ruby/object:Gem::Version
253
- version: '2.0'
254
198
  - !ruby/object:Gem::Dependency
255
199
  name: selenium-webdriver
256
200
  requirement: !ruby/object:Gem::Requirement
@@ -299,6 +243,20 @@ dependencies:
299
243
  - - "<"
300
244
  - !ruby/object:Gem::Version
301
245
  version: '5'
246
+ - !ruby/object:Gem::Dependency
247
+ name: standard
248
+ requirement: !ruby/object:Gem::Requirement
249
+ requirements:
250
+ - - "~>"
251
+ - !ruby/object:Gem::Version
252
+ version: '1.49'
253
+ type: :runtime
254
+ prerelease: false
255
+ version_requirements: !ruby/object:Gem::Requirement
256
+ requirements:
257
+ - - "~>"
258
+ - !ruby/object:Gem::Version
259
+ version: '1.49'
302
260
  email:
303
261
  - alessandrodesantis@nebulab.it
304
262
  executables:
@@ -307,6 +265,7 @@ extensions: []
307
265
  extra_rdoc_files: []
308
266
  files:
309
267
  - ".gem_release.yml"
268
+ - ".git-blame-ignore-revs"
310
269
  - ".github/stale.yml"
311
270
  - ".github/workflows/lint.yml"
312
271
  - ".github/workflows/test.yml"
@@ -314,8 +273,8 @@ files:
314
273
  - ".gitignore"
315
274
  - ".mergify.yml"
316
275
  - ".rspec"
317
- - ".rubocop-https---relaxed-ruby-style-rubocop-yml"
318
276
  - ".rubocop.yml"
277
+ - ".standard.yml"
319
278
  - CHANGELOG.md
320
279
  - Gemfile
321
280
  - LICENSE.txt
@@ -379,9 +338,6 @@ files:
379
338
  - lib/solidus_dev_support/testing_support/preferences.rb
380
339
  - lib/solidus_dev_support/version.rb
381
340
  - solidus_dev_support.gemspec
382
- - spec/features/create_extension_spec.rb
383
- - spec/lib/extension_spec.rb
384
- - spec/spec_helper.rb
385
341
  homepage: https://github.com/solidusio/solidus_dev_support
386
342
  licenses:
387
343
  - MIT
@@ -404,10 +360,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
404
360
  - !ruby/object:Gem::Version
405
361
  version: '0'
406
362
  requirements: []
407
- rubygems_version: 3.6.5
363
+ rubygems_version: 3.6.7
408
364
  specification_version: 4
409
365
  summary: Development tools for Solidus extensions.
410
- test_files:
411
- - spec/features/create_extension_spec.rb
412
- - spec/lib/extension_spec.rb
413
- - spec/spec_helper.rb
366
+ test_files: []
@@ -1,153 +0,0 @@
1
- # Relaxed.Ruby.Style
2
- ## Version 2.5
3
-
4
- Style/Alias:
5
- Enabled: false
6
- StyleGuide: https://relaxed.ruby.style/#stylealias
7
-
8
- Style/AsciiComments:
9
- Enabled: false
10
- StyleGuide: https://relaxed.ruby.style/#styleasciicomments
11
-
12
- Style/BeginBlock:
13
- Enabled: false
14
- StyleGuide: https://relaxed.ruby.style/#stylebeginblock
15
-
16
- Style/BlockDelimiters:
17
- Enabled: false
18
- StyleGuide: https://relaxed.ruby.style/#styleblockdelimiters
19
-
20
- Style/CommentAnnotation:
21
- Enabled: false
22
- StyleGuide: https://relaxed.ruby.style/#stylecommentannotation
23
-
24
- Style/Documentation:
25
- Enabled: false
26
- StyleGuide: https://relaxed.ruby.style/#styledocumentation
27
-
28
- Layout/DotPosition:
29
- Enabled: false
30
- StyleGuide: https://relaxed.ruby.style/#layoutdotposition
31
-
32
- Style/DoubleNegation:
33
- Enabled: false
34
- StyleGuide: https://relaxed.ruby.style/#styledoublenegation
35
-
36
- Style/EndBlock:
37
- Enabled: false
38
- StyleGuide: https://relaxed.ruby.style/#styleendblock
39
-
40
- Style/FormatString:
41
- Enabled: false
42
- StyleGuide: https://relaxed.ruby.style/#styleformatstring
43
-
44
- Style/IfUnlessModifier:
45
- Enabled: false
46
- StyleGuide: https://relaxed.ruby.style/#styleifunlessmodifier
47
-
48
- Style/Lambda:
49
- Enabled: false
50
- StyleGuide: https://relaxed.ruby.style/#stylelambda
51
-
52
- Style/ModuleFunction:
53
- Enabled: false
54
- StyleGuide: https://relaxed.ruby.style/#stylemodulefunction
55
-
56
- Style/MultilineBlockChain:
57
- Enabled: false
58
- StyleGuide: https://relaxed.ruby.style/#stylemultilineblockchain
59
-
60
- Style/NegatedIf:
61
- Enabled: false
62
- StyleGuide: https://relaxed.ruby.style/#stylenegatedif
63
-
64
- Style/NegatedWhile:
65
- Enabled: false
66
- StyleGuide: https://relaxed.ruby.style/#stylenegatedwhile
67
-
68
- Style/NumericPredicate:
69
- Enabled: false
70
- StyleGuide: https://relaxed.ruby.style/#stylenumericpredicate
71
-
72
- Style/ParallelAssignment:
73
- Enabled: false
74
- StyleGuide: https://relaxed.ruby.style/#styleparallelassignment
75
-
76
- Style/PercentLiteralDelimiters:
77
- Enabled: false
78
- StyleGuide: https://relaxed.ruby.style/#stylepercentliteraldelimiters
79
-
80
- Style/PerlBackrefs:
81
- Enabled: false
82
- StyleGuide: https://relaxed.ruby.style/#styleperlbackrefs
83
-
84
- Style/Semicolon:
85
- Enabled: false
86
- StyleGuide: https://relaxed.ruby.style/#stylesemicolon
87
-
88
- Style/SignalException:
89
- Enabled: false
90
- StyleGuide: https://relaxed.ruby.style/#stylesignalexception
91
-
92
- Style/SingleLineBlockParams:
93
- Enabled: false
94
- StyleGuide: https://relaxed.ruby.style/#stylesinglelineblockparams
95
-
96
- Style/SingleLineMethods:
97
- Enabled: false
98
- StyleGuide: https://relaxed.ruby.style/#stylesinglelinemethods
99
-
100
- Layout/SpaceBeforeBlockBraces:
101
- Enabled: false
102
- StyleGuide: https://relaxed.ruby.style/#layoutspacebeforeblockbraces
103
-
104
- Layout/SpaceInsideParens:
105
- Enabled: false
106
- StyleGuide: https://relaxed.ruby.style/#layoutspaceinsideparens
107
-
108
- Style/SpecialGlobalVars:
109
- Enabled: false
110
- StyleGuide: https://relaxed.ruby.style/#stylespecialglobalvars
111
-
112
- Style/StringLiterals:
113
- Enabled: false
114
- StyleGuide: https://relaxed.ruby.style/#stylestringliterals
115
-
116
- Style/TrailingCommaInArguments:
117
- Enabled: false
118
- StyleGuide: https://relaxed.ruby.style/#styletrailingcommainarguments
119
-
120
- Style/TrailingCommaInArrayLiteral:
121
- Enabled: false
122
- StyleGuide: https://relaxed.ruby.style/#styletrailingcommainarrayliteral
123
-
124
- Style/TrailingCommaInHashLiteral:
125
- Enabled: false
126
- StyleGuide: https://relaxed.ruby.style/#styletrailingcommainhashliteral
127
-
128
- Style/SymbolArray:
129
- Enabled: false
130
- StyleGuide: http://relaxed.ruby.style/#stylesymbolarray
131
-
132
- Style/WhileUntilModifier:
133
- Enabled: false
134
- StyleGuide: https://relaxed.ruby.style/#stylewhileuntilmodifier
135
-
136
- Style/WordArray:
137
- Enabled: false
138
- StyleGuide: https://relaxed.ruby.style/#stylewordarray
139
-
140
- Lint/AmbiguousRegexpLiteral:
141
- Enabled: false
142
- StyleGuide: https://relaxed.ruby.style/#lintambiguousregexpliteral
143
-
144
- Lint/AssignmentInCondition:
145
- Enabled: false
146
- StyleGuide: https://relaxed.ruby.style/#lintassignmentincondition
147
-
148
- Layout/LineLength:
149
- Enabled: false
150
-
151
- Metrics:
152
- Enabled: false
153
-
@@ -1,193 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'fileutils'
4
- require 'open3'
5
- require 'spec_helper'
6
- require 'spree/core/version'
7
-
8
- RSpec.describe 'Create extension' do
9
- include FileUtils
10
-
11
- let(:gem_root) { File.expand_path('../..', __dir__) }
12
- let(:solidus_cmd) { "#{gem_root}/exe/solidus" }
13
- let(:extension_name) { 'test_extension' }
14
- let(:gemspec_name) { "solidus_#{extension_name}.gemspec" }
15
- let(:tmp_path) { Pathname.new(gem_root).join('tmp') }
16
- let(:install_path) { tmp_path.join("solidus_#{extension_name}") }
17
- let(:command_failed_error) { Class.new(StandardError) }
18
-
19
- before do
20
- rm_rf(install_path)
21
- mkdir_p(tmp_path)
22
- end
23
-
24
- def step(method_name)
25
- puts "Step #{method_name}"
26
- send method_name
27
- end
28
-
29
- it 'checks the create extension process' do
30
- step :check_solidus_cmd
31
- step :check_gem_version
32
- step :check_create_extension
33
- step :check_bundle_install
34
- step :check_default_task
35
- step :check_run_specs
36
- step :check_sandbox
37
- end
38
-
39
- private
40
-
41
- def check_solidus_cmd
42
- cd(tmp_path) do
43
- output = `#{solidus_cmd} -h`
44
- expect($?).to be_success
45
- expect(output).to include('Commands:')
46
- end
47
- end
48
-
49
- def check_gem_version
50
- gem_version_commands = ['version', '--version', '-v']
51
- gem_version = SolidusDevSupport::VERSION
52
- solidus_version = Spree.solidus_gem_version
53
-
54
- cd(tmp_path) do
55
- gem_version_commands.each do |gem_version_cmd|
56
- output = `#{solidus_cmd} #{gem_version_cmd}`
57
- expect($?).to be_success
58
- expect(output).to include("Solidus version #{solidus_version}")
59
- expect(output).to include("Solidus Dev Support version #{gem_version}")
60
- end
61
- end
62
- end
63
-
64
- def check_create_extension
65
- cd(tmp_path) do
66
- output = `#{solidus_cmd} extension #{extension_name}`
67
- expect($?).to be_success
68
- expect(output).to include(gemspec_name)
69
- expect(output).to include('.circleci')
70
- end
71
-
72
- cd(install_path) do
73
- aggregate_failures do
74
- %w[
75
- bin/console
76
- bin/rails
77
- bin/rails-engine
78
- bin/rails-sandbox
79
- bin/sandbox
80
- bin/setup
81
- ].each do |bin|
82
- bin = Pathname(bin)
83
- expect(
84
- name: bin,
85
- exist: bin.exist?,
86
- executable: bin.stat.executable?
87
- ).to eq(
88
- name: bin,
89
- exist: true,
90
- executable: true
91
- )
92
- end
93
- end
94
- end
95
- end
96
-
97
- def check_bundle_install
98
- cd(install_path) do
99
- open('Gemfile', 'a') { |f| f.puts "gem 'solidus_dev_support', path: '../..'" }
100
- end
101
-
102
- # Update gemspec with the required fields
103
- gemspec_path = install_path.join(gemspec_name)
104
- gemspec = gemspec_path.read.lines
105
- gemspec.grep(/spec\.author/).first.replace(" spec.author = 'John Doe'\n")
106
- gemspec.grep(/spec\.email/).first.replace(" spec.email = 'john@example.com'\n")
107
- gemspec.grep(/spec\.summary/).first.replace(" spec.summary = 'A nice extension'\n")
108
- gemspec.grep(/spec\.description/).first.replace(" spec.description = 'A super nice extension'\n")
109
- gemspec_path.write(gemspec.join)
110
-
111
- expect(bundle_install).to match(/Bundle complete/)
112
- end
113
-
114
- def check_default_task
115
- cd(install_path) do
116
- output = sh('bin/rake')
117
- expect(output).to include('Generating dummy Rails application')
118
- expect(output).to include('0 examples, 0 failures')
119
- end
120
- end
121
-
122
- def check_run_specs
123
- install_path.join('lib', 'solidus_test_extension', 'testing_support', 'factories.rb').open('a') do |factories_file|
124
- factories_file.write "\n puts 'loading test_extension factories'"
125
- end
126
-
127
- install_path.join('spec', 'some_spec.rb').write(
128
- "require 'spec_helper'\nRSpec.describe 'Some test' do it { expect(true).to be_truthy } end\n"
129
- )
130
- cd(install_path) do
131
- output = sh('bundle exec rspec')
132
- expect(output).to include('loading test_extension factories')
133
- expect(output).to include('1 example, 0 failures')
134
- expect(output).to include(ENV['CODECOV_TOKEN'] ? 'Coverage reports upload successfully' : 'Provide a CODECOV_COVERAGE_PATH environment variable to enable Codecov uploads')
135
- end
136
- end
137
-
138
- def check_sandbox
139
- cd(install_path) do
140
- command = 'bin/rails-sandbox runner "puts %{The version of SolidusTestExtension is #{SolidusTestExtension::VERSION}}"'
141
-
142
- first_run_output = sh(command)
143
- expect(first_run_output).to include("Creating the sandbox app...")
144
- expect(first_run_output).to include('The version of SolidusTestExtension is 0.0.1')
145
-
146
- second_run_output = sh(command)
147
- expect(second_run_output).not_to include("Creating the sandbox app...")
148
- expect(second_run_output).to include('The version of SolidusTestExtension is 0.0.1')
149
- end
150
- end
151
-
152
- def sh(*args)
153
- command = args.size == 1 ? args.first : args.shelljoin
154
- output, status = with_unbundled_env do
155
- Open3.capture2e({ 'CI' => nil }, command)
156
- end
157
-
158
- if $DEBUG || ENV['DEBUG']
159
- warn '~' * 80
160
- warn "$ #{command}"
161
- warn output
162
- warn "$ #{command} ~~~~> EXIT STATUS: #{status.exitstatus}"
163
- end
164
-
165
- unless status.success?
166
- raise(command_failed_error, "command failed: #{command}\n#{output}")
167
- end
168
-
169
- output.to_s
170
- end
171
-
172
- def with_unbundled_env(...)
173
- if Bundler.respond_to?(:with_unbundled_env)
174
- Bundler.with_unbundled_env(...)
175
- else
176
- Bundler.with_clean_env(...)
177
- end
178
- end
179
-
180
- def bundle_install
181
- # Optimize the bundle path within the CI, in this context using bundler env
182
- # variables doesn't help because commands are run with a clean env.
183
- bundle_path = "#{gem_root}/vendor/bundle"
184
-
185
- if File.exist?(bundle_path)
186
- sh "bundle config set --local path #{bundle_path.shellescape}"
187
- end
188
-
189
- output = nil
190
- cd(install_path) { output = sh 'bundle install' }
191
- output
192
- end
193
- end