solidus_dev_support 1.5.0 → 2.2.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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +10 -17
  3. data/.mergify.yml +2 -0
  4. data/.rubocop.yml +42 -0
  5. data/CHANGELOG.md +72 -0
  6. data/Gemfile +1 -1
  7. data/README.md +13 -4
  8. data/Rakefile +13 -1
  9. data/lib/solidus_dev_support/extension.rb +32 -23
  10. data/lib/solidus_dev_support/rake_tasks.rb +14 -0
  11. data/lib/solidus_dev_support/rspec/capybara.rb +20 -0
  12. data/lib/solidus_dev_support/rspec/feature_helper.rb +17 -18
  13. data/lib/solidus_dev_support/rspec/rails_helper.rb +8 -5
  14. data/lib/solidus_dev_support/rubocop/config.yml +82 -203
  15. data/lib/solidus_dev_support/solidus_command.rb +8 -1
  16. data/lib/solidus_dev_support/templates/extension/.circleci/config.yml +6 -0
  17. data/lib/solidus_dev_support/templates/extension/.github/stale.yml +4 -4
  18. data/lib/solidus_dev_support/templates/extension/CHANGELOG.md +1 -0
  19. data/lib/solidus_dev_support/templates/extension/README.md +18 -10
  20. data/lib/solidus_dev_support/templates/extension/bin/rails-sandbox +1 -1
  21. data/lib/solidus_dev_support/templates/extension/bin/sandbox.tt +2 -0
  22. data/lib/solidus_dev_support/templates/extension/extension.gemspec.tt +4 -4
  23. data/lib/solidus_dev_support/templates/extension/github_changelog_generator +2 -0
  24. data/lib/solidus_dev_support/templates/extension/lib/%file_name%.rb.tt +1 -0
  25. data/lib/solidus_dev_support/templates/extension/lib/%file_name%/configuration.rb.tt +21 -0
  26. data/lib/solidus_dev_support/templates/extension/lib/%file_name%/{factories.rb.tt → testing_support/factories.rb.tt} +0 -0
  27. data/lib/solidus_dev_support/templates/extension/lib/generators/%file_name%/install/install_generator.rb.tt +10 -5
  28. data/lib/solidus_dev_support/templates/extension/lib/generators/%file_name%/install/templates/initializer.rb.tt +6 -0
  29. data/lib/solidus_dev_support/templates/extension/rubocop.yml +3 -0
  30. data/lib/solidus_dev_support/templates/extension/spec/spec_helper.rb.tt +11 -7
  31. data/lib/solidus_dev_support/version.rb +5 -1
  32. data/solidus_dev_support.gemspec +16 -14
  33. data/spec/features/create_extension_spec.rb +187 -0
  34. data/spec/lib/extension_spec.rb +69 -0
  35. data/spec/spec_helper.rb +16 -0
  36. metadata +47 -35
@@ -72,9 +72,11 @@ unbundled bundle exec rails generate spree:install \
72
72
  --user_class=Spree::User \
73
73
  --enforce_available_locales=true \
74
74
  --with-authentication=false \
75
+ --payment-method=none \
75
76
  $@
76
77
 
77
78
  unbundled bundle exec rails generate solidus:auth:install
79
+ unbundled bundle exec rails generate ${extension_name}:install
78
80
 
79
81
  echo
80
82
  echo "🚀 Sandbox app successfully created for $extension_name!"
@@ -9,12 +9,12 @@ Gem::Specification.new do |spec|
9
9
  spec.email = '<%= gemspec.email %>'
10
10
 
11
11
  spec.summary = '<%= gemspec.summary %>'
12
- spec.description = '<%= gemspec.description %>'
13
- spec.homepage = '<%= gemspec.homepage %>'
12
+ <% if gemspec.description %>spec.description = '<%= gemspec.description %>'
13
+ <% end %>spec.homepage = '<%= gemspec.homepage %>'
14
14
  spec.license = '<%= gemspec.license %>'
15
15
 
16
16
  spec.metadata['homepage_uri'] = spec.homepage
17
- spec.metadata['source_code_uri'] = '<%= gemspec.homepage %>'
17
+ spec.metadata['source_code_uri'] = '<%= gemspec.metadata["source_code_uri"] %>'
18
18
  spec.metadata['changelog_uri'] = '<%= gemspec.metadata["changelog_uri"] %>'
19
19
 
20
20
  spec.required_ruby_version = Gem::Requirement.new('~> 2.5')
@@ -32,5 +32,5 @@ Gem::Specification.new do |spec|
32
32
  spec.add_dependency 'solidus_core', ['>= 2.0.0', '< 3']
33
33
  spec.add_dependency 'solidus_support', '~> 0.5'
34
34
 
35
- spec.add_development_dependency 'solidus_dev_support'
35
+ spec.add_development_dependency 'solidus_dev_support', '<%= SolidusDevSupport.gem_version.approximate_recommendation %>'
36
36
  end
@@ -0,0 +1,2 @@
1
+ issues=false
2
+ exclude-labels=infrastructure
@@ -3,5 +3,6 @@
3
3
  require 'solidus_core'
4
4
  require 'solidus_support'
5
5
 
6
+ require '<%=file_name%>/configuration'
6
7
  require '<%=file_name%>/version'
7
8
  require '<%=file_name%>/engine'
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module <%= class_name %>
4
+ class Configuration
5
+ # Define here the settings for this extensions, e.g.:
6
+ #
7
+ # attr_accessor :my_setting
8
+ end
9
+
10
+ class << self
11
+ def configuration
12
+ @configuration ||= Configuration.new
13
+ end
14
+
15
+ alias config configuration
16
+
17
+ def configure
18
+ yield configuration
19
+ end
20
+ end
21
+ end
@@ -4,15 +4,20 @@ module <%= class_name %>
4
4
  module Generators
5
5
  class InstallGenerator < Rails::Generators::Base
6
6
  class_option :auto_run_migrations, type: :boolean, default: false
7
+ source_root File.expand_path('templates', __dir__)
8
+
9
+ def copy_initializer
10
+ template 'initializer.rb', 'config/initializers/<%= file_name %>.rb'
11
+ end
7
12
 
8
13
  def add_javascripts
9
- append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/<%= file_name %>\n" # rubocop:disable Metrics/LineLength
10
- append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/<%= file_name %>\n" # rubocop:disable Metrics/LineLength
14
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/<%= file_name %>\n"
15
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/<%= file_name %>\n"
11
16
  end
12
17
 
13
18
  def add_stylesheets
14
- inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/<%= file_name %>\n", before: %r{\*/}, verbose: true # rubocop:disable Metrics/LineLength
15
- inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/<%= file_name %>\n", before: %r{\*/}, verbose: true # rubocop:disable Metrics/LineLength
19
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/<%= file_name %>\n", before: %r{\*/}, verbose: true # rubocop:disable Layout/LineLength
20
+ inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/<%= file_name %>\n", before: %r{\*/}, verbose: true # rubocop:disable Layout/LineLength
16
21
  end
17
22
 
18
23
  def add_migrations
@@ -20,7 +25,7 @@ module <%= class_name %>
20
25
  end
21
26
 
22
27
  def run_migrations
23
- run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]')) # rubocop:disable Metrics/LineLength
28
+ run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]')) # rubocop:disable Layout/LineLength
24
29
  if run_migrations
25
30
  run 'bin/rails db:migrate'
26
31
  else
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ <%= class_name %>.configure do |config|
4
+ # TODO: Remember to change this with the actual preferences you have implemented!
5
+ # config.sample_preference = 'sample_value'
6
+ end
@@ -1,2 +1,5 @@
1
1
  require:
2
2
  - solidus_dev_support/rubocop
3
+
4
+ AllCops:
5
+ NewCops: disable
@@ -6,22 +6,26 @@ ENV['RAILS_ENV'] = 'test'
6
6
  # Run Coverage report
7
7
  require 'solidus_dev_support/rspec/coverage'
8
8
 
9
- require File.expand_path('dummy/config/environment.rb', __dir__).tap { |file|
10
- # Create the dummy app if it's still missing.
11
- system 'bin/rake extension:test_app' unless File.exist? file
12
- }
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
13
 
14
14
  # Requires factories and other useful helpers defined in spree_core.
15
15
  require 'solidus_dev_support/rspec/feature_helper'
16
16
 
17
17
  # Requires supporting ruby files with custom matchers and macros, etc,
18
18
  # in spec/support/ and its subdirectories.
19
- Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
19
+ Dir["#{__dir__}/support/**/*.rb"].sort.each { |f| require f }
20
20
 
21
- # Requires factories defined in lib/<%= file_name %>/factories.rb
22
- require '<%= file_name %>/factories'
21
+ # Requires factories defined in lib/<%= file_name %>/testing_support/factories.rb
22
+ require '<%= file_name %>/testing_support/factories'
23
23
 
24
24
  RSpec.configure do |config|
25
25
  config.infer_spec_type_from_file_location!
26
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
27
31
  end
@@ -1,5 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusDevSupport
4
- VERSION = "1.5.0"
4
+ VERSION = "2.2.0"
5
+
6
+ def self.gem_version
7
+ Gem::Version.new(VERSION)
8
+ end
5
9
  end
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('lib', __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'solidus_dev_support/version'
3
+ require_relative 'lib/solidus_dev_support/version'
6
4
 
7
5
  Gem::Specification.new do |spec|
8
6
  spec.name = 'solidus_dev_support'
@@ -16,33 +14,37 @@ Gem::Specification.new do |spec|
16
14
 
17
15
  spec.metadata['homepage_uri'] = spec.homepage
18
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/blob/master/CHANGELOG.md'
18
+
19
+ spec.required_ruby_version = Gem::Requirement.new('~> 2.5')
19
20
 
20
21
  # Specify which files should be added to the gem when it is released.
21
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
22
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
23
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
- end
25
- spec.bindir = 'exe'
26
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
- spec.require_paths = ['lib']
28
-
29
- spec.add_dependency 'apparition', '~> 0.4'
23
+ files = Dir.chdir(__dir__) { `git ls-files -z`.split("\x0") }
24
+
25
+ spec.files = files.grep_v(%r{^(test|spec|features)/})
26
+ spec.test_files = files.grep(%r{^(test|spec|features)/})
27
+ spec.bindir = "exe"
28
+ spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ["lib"]
30
+
30
31
  spec.add_dependency 'capybara', '~> 3.29'
31
32
  spec.add_dependency 'capybara-screenshot', '~> 1.0'
32
- spec.add_dependency 'codecov', '~> 0.1.16'
33
+ spec.add_dependency 'codecov', '~> 0.2'
33
34
  spec.add_dependency 'database_cleaner', '~> 1.7'
34
35
  spec.add_dependency 'factory_bot_rails', '~> 5.1'
35
36
  spec.add_dependency 'ffaker', '~> 2.13'
36
37
  spec.add_dependency 'gem-release', '~> 2.1'
37
38
  spec.add_dependency 'github_changelog_generator', '~> 1.15'
38
39
  spec.add_dependency 'puma', '~> 4.3'
39
- spec.add_dependency 'rspec-rails', '~> 4.0.0.beta3'
40
40
  spec.add_dependency 'rspec_junit_formatter'
41
- spec.add_dependency 'rubocop', '~> 0.76.0'
41
+ spec.add_dependency 'rspec-rails', '~> 4.0.0.beta3'
42
+ spec.add_dependency 'rubocop', '~> 1.0'
42
43
  spec.add_dependency 'rubocop-performance', '~> 1.5'
43
44
  spec.add_dependency 'rubocop-rails', '~> 2.3'
44
45
  spec.add_dependency 'rubocop-rspec', '~> 1.36'
45
46
  spec.add_dependency 'solidus_core', ['>= 2.0', '< 3']
47
+ spec.add_dependency 'webdrivers', '~> 4.4'
46
48
 
47
49
  spec.add_development_dependency 'bundler'
48
50
  spec.add_development_dependency 'rake'
@@ -0,0 +1,187 @@
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
+ expect { bundle_install }.to raise_error(command_failed_error, /invalid gemspec/)
103
+
104
+ # Update gemspec with the required fields
105
+ gemspec_path = install_path.join(gemspec_name)
106
+ gemspec = gemspec_path.read.lines
107
+ gemspec.grep(/spec\.author/).first.replace(" spec.author = 'John Doe'\n")
108
+ gemspec.grep(/spec\.email/).first.replace(" spec.email = 'john@example.com'\n")
109
+ gemspec.grep(/spec\.summary/).first.replace(" spec.summary = 'A nice extension'\n")
110
+ gemspec.grep(/spec\.description/).first.replace(" spec.description = 'A super nice extension'\n")
111
+ gemspec_path.write(gemspec.join)
112
+
113
+ expect(bundle_install).to match(/Bundle complete/)
114
+ end
115
+
116
+ def check_default_task
117
+ cd(install_path) do
118
+ output = sh('bin/rake')
119
+ expect(output).to include('Generating dummy Rails application')
120
+ expect(output).to include('0 examples, 0 failures')
121
+ end
122
+ end
123
+
124
+ def check_run_specs
125
+ install_path.join('spec', 'some_spec.rb').write(
126
+ "require 'spec_helper'\nRSpec.describe 'Some test' do it { expect(true).to be_truthy } end\n"
127
+ )
128
+ cd(install_path) do
129
+ output = sh('bundle exec rspec')
130
+ expect(output).to include('1 example, 0 failures')
131
+ expect(output).to include(ENV['CODECOV_TOKEN'] ? 'Coverage reports upload successfully' : 'Provide a CODECOV_TOKEN environment variable to enable Codecov uploads')
132
+ end
133
+ end
134
+
135
+ def check_sandbox
136
+ cd(install_path) do
137
+ # rubocop:disable Lint/InterpolationCheck
138
+ command = 'bin/rails-sandbox runner "puts %{The version of SolidusTestExtension is #{SolidusTestExtension::VERSION}}"'
139
+ # rubocop:enable Lint/InterpolationCheck
140
+
141
+ first_run_output = sh(command)
142
+ expect(first_run_output).to include("Creating the sandbox app...")
143
+ expect(first_run_output).to include('The version of SolidusTestExtension is 0.0.1')
144
+
145
+ second_run_output = sh(command)
146
+ expect(second_run_output).not_to include("Creating the sandbox app...")
147
+ expect(second_run_output).to include('The version of SolidusTestExtension is 0.0.1')
148
+ end
149
+ end
150
+
151
+ def sh(*args)
152
+ command = args.size == 1 ? args.first : args.shelljoin
153
+ output, status = with_unbundled_env { Open3.capture2e(command) }
154
+
155
+ if status.success?
156
+ output.to_s
157
+ else
158
+ if $DEBUG
159
+ warn '~' * 80
160
+ warn "$ #{command}"
161
+ warn output.to_s
162
+ end
163
+ raise(command_failed_error, "command failed: #{command}\n#{output}")
164
+ end
165
+ end
166
+
167
+ def with_unbundled_env(&block)
168
+ if Bundler.respond_to?(:with_unbundled_env)
169
+ Bundler.with_unbundled_env(&block)
170
+ else
171
+ Bundler.with_clean_env(&block)
172
+ end
173
+ end
174
+
175
+ def bundle_install
176
+ # Optimize the bundle path within the CI, in this context using bundler env
177
+ # variables doesn't help because commands are run with a clean env.
178
+ bundle_path = "#{gem_root}/vendor/bundle"
179
+
180
+ command = 'bundle install'
181
+ command += " --path=#{bundle_path.shellescape}" if File.exist?(bundle_path)
182
+
183
+ output = nil
184
+ cd(install_path) { output = sh command }
185
+ output
186
+ end
187
+ end
@@ -0,0 +1,69 @@
1
+ require 'solidus_dev_support/extension'
2
+
3
+ RSpec.describe SolidusDevSupport::Extension do
4
+ describe '#path=' do
5
+ specify 'with an existing extension' do
6
+ allow(subject).to receive(:git).with('remote get-url origin', any_args).and_return('git@github.com:some_user/solidus_my_ext.git')
7
+ allow(subject).to receive(:git).with('config user.name', any_args).and_return('John Doe')
8
+ allow(subject).to receive(:git).with('config user.email', any_args).and_return('john.doe@example.com')
9
+
10
+ allow(File).to receive(:exist?).with('/foo/bar/solidus_my_ext/solidus_my_ext.gemspec').and_return(true)
11
+ allow(Gem::Specification).to receive(:load).with('/foo/bar/solidus_my_ext/solidus_my_ext.gemspec').and_return(
12
+ Gem::Specification.new('solidus_my_ext', '0.1.1') do |gem|
13
+ gem.author = "Jane Doe"
14
+ gem.email = "jane.doe@example.com"
15
+
16
+ gem.summary = 'This extension is awesome!'
17
+ gem.license = 'MIT'
18
+
19
+ gem.homepage = "some_user.github.io/solidus_my_ext"
20
+ gem.metadata['changelog_uri'] = "https://github.com/some_user/solidus_my_ext/releases"
21
+ gem.metadata['source_code_uri'] = "https://github.com/some_user/solidus_my_ext"
22
+ end
23
+ )
24
+
25
+ subject.path = '/foo/bar/solidus_my_ext'
26
+
27
+ aggregate_failures do
28
+ expect(subject.file_name).to eq("solidus_my_ext")
29
+ expect(subject.class_name).to eq("SolidusMyExt")
30
+ expect(subject.root).to eq("/foo/bar")
31
+ expect(subject.path).to eq("/foo/bar/solidus_my_ext")
32
+ expect(subject.repo).to eq("some_user/solidus_my_ext")
33
+ expect(subject.gemspec.author).to eq('Jane Doe')
34
+ expect(subject.gemspec.email).to eq('jane.doe@example.com')
35
+ expect(subject.gemspec.summary).to eq('This extension is awesome!')
36
+ expect(subject.gemspec.license).to eq('MIT')
37
+ expect(subject.gemspec.homepage).to eq("some_user.github.io/solidus_my_ext")
38
+ expect(subject.gemspec.metadata['changelog_uri']).to eq("https://github.com/some_user/solidus_my_ext/releases")
39
+ expect(subject.gemspec.metadata['source_code_uri']).to eq("https://github.com/some_user/solidus_my_ext")
40
+ end
41
+ end
42
+
43
+ specify 'when creating a new extension' do
44
+ allow(subject).to receive(:git).with('remote get-url origin', any_args) { |_, default| default }
45
+ allow(subject).to receive(:git).with('config user.name', any_args).and_return('John Doe')
46
+ allow(subject).to receive(:git).with('config user.email', any_args).and_return('john.doe@example.com')
47
+
48
+ allow(Dir).to receive(:pwd).and_return('/foo/bar')
49
+
50
+ subject.path = '/foo/bar/solidus_my_ext'
51
+
52
+ aggregate_failures do
53
+ expect(subject.file_name).to eq("solidus_my_ext")
54
+ expect(subject.class_name).to eq("SolidusMyExt")
55
+ expect(subject.root).to eq("/foo/bar")
56
+ expect(subject.path).to eq("/foo/bar/solidus_my_ext")
57
+ expect(subject.repo).to eq("solidusio-contrib/solidus_my_ext")
58
+ expect(subject.gemspec.author).to eq('John Doe')
59
+ expect(subject.gemspec.email).to eq('john.doe@example.com')
60
+ expect(subject.gemspec.summary).to eq('TODO: Write a short summary, because RubyGems requires one.')
61
+ expect(subject.gemspec.description).to eq('TODO: Write a longer description or delete this line.')
62
+ expect(subject.gemspec.license).to eq('BSD-3-Clause')
63
+ expect(subject.gemspec.homepage).to eq("https://github.com/solidusio-contrib/solidus_my_ext#readme")
64
+ expect(subject.gemspec.metadata['changelog_uri']).to eq("https://github.com/solidusio-contrib/solidus_my_ext/blob/master/CHANGELOG.md")
65
+ expect(subject.gemspec.metadata['source_code_uri']).to eq("https://github.com/solidusio-contrib/solidus_my_ext")
66
+ end
67
+ end
68
+ end
69
+ end