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.
- checksums.yaml +4 -4
- data/.git-blame-ignore-revs +3 -0
- data/.rubocop.yml +4 -55
- data/.standard.yml +2 -0
- data/Gemfile +11 -11
- data/README.md +1 -3
- data/bin/setup +5 -5
- data/bin/solidus +1 -1
- data/exe/solidus +1 -1
- data/lib/solidus_dev_support/extension.rb +38 -38
- data/lib/solidus_dev_support/rake_tasks.rb +18 -18
- data/lib/solidus_dev_support/rspec/capybara.rb +5 -5
- data/lib/solidus_dev_support/rspec/coverage.rb +6 -6
- data/lib/solidus_dev_support/rspec/feature_helper.rb +2 -2
- data/lib/solidus_dev_support/rspec/rails_helper.rb +14 -14
- data/lib/solidus_dev_support/rspec/spec_helper.rb +2 -2
- data/lib/solidus_dev_support/rubocop/config.yml +11 -80
- data/lib/solidus_dev_support/solidus_command.rb +10 -10
- data/lib/solidus_dev_support/templates/extension/Rakefile +2 -2
- data/lib/solidus_dev_support/templates/extension/bin/rails-sandbox +4 -4
- data/lib/solidus_dev_support/testing_support/factories.rb +5 -5
- data/lib/solidus_dev_support/version.rb +1 -1
- data/lib/solidus_dev_support.rb +1 -1
- data/solidus_dev_support.gemspec +28 -32
- metadata +20 -67
- data/.rubocop-https---relaxed-ruby-style-rubocop-yml +0 -153
- data/spec/features/create_extension_spec.rb +0 -193
- data/spec/lib/extension_spec.rb +0 -69
- data/spec/spec_helper.rb +0 -16
@@ -1,25 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
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
|
12
|
-
subcommand
|
11
|
+
desc "extension", "Manage solidus extensions"
|
12
|
+
subcommand "extension", Extension
|
13
13
|
|
14
|
-
desc
|
15
|
-
subcommand
|
14
|
+
desc "e", 'Manage solidus extensions (shortcut for "extension")'
|
15
|
+
subcommand "e", Extension
|
16
16
|
|
17
|
-
desc
|
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 [
|
22
|
+
map ["-v", "--version"] => :version
|
23
23
|
|
24
24
|
def self.exit_on_failure?
|
25
25
|
true
|
@@ -1,16 +1,16 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
app_root =
|
3
|
+
app_root = "sandbox"
|
4
4
|
|
5
5
|
unless File.exist? "#{app_root}/bin/rails"
|
6
|
-
warn
|
6
|
+
warn "Creating the sandbox app..."
|
7
7
|
Dir.chdir "#{__dir__}/.." do
|
8
8
|
system "#{__dir__}/sandbox" or begin
|
9
|
-
warn
|
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
|
16
|
+
exec "bin/rails", *ARGV
|
@@ -1,19 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
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(
|
12
|
-
end.map { |path| path.sub(/.rb\z/,
|
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
|
data/lib/solidus_dev_support.rb
CHANGED
@@ -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(
|
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
|
data/solidus_dev_support.gemspec
CHANGED
@@ -1,51 +1,47 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative
|
3
|
+
require_relative "lib/solidus_dev_support/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
|
-
spec.name =
|
6
|
+
spec.name = "solidus_dev_support"
|
7
7
|
spec.version = SolidusDevSupport::VERSION
|
8
|
-
spec.authors = [
|
9
|
-
spec.email = [
|
8
|
+
spec.authors = ["Alessandro Desantis"]
|
9
|
+
spec.email = ["alessandrodesantis@nebulab.it"]
|
10
10
|
|
11
|
-
spec.summary =
|
12
|
-
spec.homepage =
|
13
|
-
spec.license =
|
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[
|
16
|
-
spec.metadata[
|
17
|
-
spec.metadata[
|
18
|
-
spec.metadata[
|
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 =
|
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
|
33
|
-
spec.add_dependency
|
34
|
-
spec.add_dependency
|
35
|
-
spec.add_dependency
|
36
|
-
spec.add_dependency
|
37
|
-
spec.add_dependency
|
38
|
-
spec.add_dependency
|
39
|
-
spec.add_dependency
|
40
|
-
spec.add_dependency
|
41
|
-
spec.add_dependency
|
42
|
-
spec.add_dependency
|
43
|
-
spec.add_dependency
|
44
|
-
spec.add_dependency
|
45
|
-
spec.add_dependency
|
46
|
-
spec.add_dependency
|
47
|
-
spec.add_dependency
|
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.
|
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:
|
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.
|
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
|