make_it_so 0.5.0 → 0.5.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2eb6df0b9f858c51c806d331ae101abb19f4b4ce12403073c78499a751673722
4
- data.tar.gz: 92d50506cb7e2dd187c1031b9851b1d32c2f79f72b61a77e0acbddf9c3bf30f5
3
+ metadata.gz: e2c34aca2be98715b41417216c183fc283c06ef203a42945927e6fa71c35e027
4
+ data.tar.gz: b0e6c29001e305ae6978fd52d6b753e599d85c77e41610e483f83e0485e694c8
5
5
  SHA512:
6
- metadata.gz: 7b67a140d54c639e3c2243179c73024e44931cfe45aa5b5e60b5b6c5b51a732c142e2ad73c05490db7dd8a00ddfb05f145f36b3a5be8f5b92b53f1382580b79f
7
- data.tar.gz: 7f3b6b7c5ee3792f331f90d6922c13867bb48b2a79259ba02b254d0fc594b89646f930a6b196cd3767b49aabe121829e5f3c1078847b7cfc5f9276f89862bdb0
6
+ metadata.gz: e395f33577107fe638da218ed7a3fe068fce927c73098233d79ba64551b13a346ba0706cd9ca1de122b30d3e885ead9148e7c60e537c0e11b1295bab926d37b1
7
+ data.tar.gz: 43ee817cc5d04d3ad32c937c14137c9752c98f4c9aa24d376328a393007fd8771bbda8473f947962ed20a43fac4e7bcc2affdd3b6cfc937b17405e886a361350
@@ -0,0 +1,32 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [Unreleased]
8
+
9
+ ## [0.5.1] - 2019-10-08
10
+
11
+ - skip bootsnap by default
12
+ - added prerequisite rails version check
13
+ - adjust webpacker routines to run `after_bundle`
14
+ - only stop spring if it is being installed
15
+
16
+ ## [0.5.0] - 2019-09-02
17
+
18
+ ### Added
19
+
20
+ - `react-router` is now installed by default
21
+
22
+ ### Changed
23
+
24
+ - `--karma` and `--jest` options have been removed in favor of a `--js-test-lib` param.
25
+ - The default behavior of `make_it_so` now generates `jest` as the default test lib instead of `karma`
26
+ - `foundation-rails` was updated to v6.5
27
+ - `modernizr` was removed
28
+ - Development runtime was upgraded to ruby v2.6.3
29
+
30
+ [Unreleased]:https://github.com/LaunchAcademy/make_it_so/compare/v0.5.0...HEAD
31
+ [0.5.1]:https://github.com/LaunchAcademy/make_it_so/compare/v0.5.0...v0.5.1
32
+ [0.5.0]:https://github.com/LaunchAcademy/make_it_so/compare/v0.4.5...v0.5.0
data/Gemfile CHANGED
@@ -1,5 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ require_relative 'lib/make_it_so/rails'
4
+
3
5
  ruby '2.6.3'
4
6
 
5
7
  # Specify your gem's dependencies in make_it_so.gemspec
@@ -8,4 +10,18 @@ gemspec
8
10
  group :development do
9
11
  gem 'pry'
10
12
  gem 'solargraph'
13
+
14
+ [
15
+ 'rails',
16
+ 'activejob',
17
+ 'actionmailer'
18
+ ].each do |gem_name|
19
+ gem gem_name, MakeItSo::Rails::VERSION
20
+ end
21
+
22
+ gem 'sprockets-rails', '3.0.4'
23
+ gem 'listen'
24
+ gem 'rspec-rails'
25
+ gem 'devise'
26
+ gem 'webpacker'
11
27
  end
@@ -57,6 +57,12 @@ module MakeItSo
57
57
  default: "jest",
58
58
  desc:
59
59
  "Generate Jest testing framework (default), Karma/Jasmine ('karma'), or no framework ('false')"
60
+
61
+ class_option :skip_bootsnap,
62
+ type: :boolean,
63
+ default: true,
64
+ desc:
65
+ "Skip bootsnap"
60
66
 
61
67
  def initialize(*args)
62
68
  super
@@ -11,6 +11,9 @@ end
11
11
  require "make_it_so/version"
12
12
 
13
13
  require "make_it_so/rails"
14
+ require 'make_it_so/rails/app_builder'
15
+
16
+ require "make_it_so/rails/prerequisite_check"
14
17
 
15
18
  require "make_it_so/command_line_interface"
16
19
  require "generators/rails_app_generator"
@@ -6,7 +6,9 @@ module MakeItSo
6
6
  option :devise, type: :boolean
7
7
  option :js_test_lib, default: "jest"
8
8
  def rails(app_name)
9
- MakeItSo::RailsAppGenerator.start(ARGV[1..-1])
9
+ if MakeItSo::Rails::PrerequisiteCheck.new.check
10
+ MakeItSo::RailsAppGenerator.start(ARGV[1..-1])
11
+ end
10
12
  end
11
13
 
12
14
  desc "sinatra <app_name>",
@@ -1,6 +1,5 @@
1
- require 'make_it_so/rails/app_builder'
2
-
3
1
  module MakeItSo
4
2
  module Rails
3
+ VERSION="5.2.3"
5
4
  end
6
5
  end
@@ -50,43 +50,41 @@ module MakeItSo
50
50
  def react
51
51
  @generator.gem 'webpacker', '~> 3.3'
52
52
 
53
- rake 'webpacker:install'
54
- rake 'webpacker:install:react'
55
- remove_file 'app/javascript/packs/application.js'
56
- remove_file 'app/javascript/packs/hello_react.jsx'
57
-
58
- unparsed_json = snippet('react_dependencies.json')
59
- parsed_json = JSON.parse(unparsed_json)
60
-
61
- modify_json(package_json_file) do |json|
62
- ["dependencies", "devDependencies"].each do |key|
63
- json[key] ||= {}
64
- json[key].merge!(parsed_json[key])
65
- end
53
+ after_bundle do
54
+ rake 'webpacker:install'
55
+ rake 'webpacker:install:react'
56
+ remove_file 'app/javascript/packs/application.js'
57
+ remove_file 'app/javascript/packs/hello_react.jsx'
66
58
 
67
- json["scripts"] ||= {}
68
- json["scripts"]["start"] = "./bin/webpack-dev-server"
59
+ unparsed_json = snippet('react_dependencies.json')
60
+ parsed_json = JSON.parse(unparsed_json)
69
61
 
70
- json["dependencies"].delete("babel-preset-react")
71
- end
62
+ modify_json(package_json_file) do |json|
63
+ ["dependencies", "devDependencies"].each do |key|
64
+ json[key] ||= {}
65
+ json[key].merge!(parsed_json[key])
66
+ end
72
67
 
73
- inside 'app/javascript/packs' do
74
- copy_file 'new_application.js', 'application.js'
75
- remove_file 'new_application.js'
68
+ json["scripts"] ||= {}
69
+ json["scripts"]["start"] = "./bin/webpack-dev-server"
70
+
71
+ json["dependencies"].delete("babel-preset-react")
72
+ end
73
+
74
+ inside 'app/javascript/packs' do
75
+ copy_file 'new_application.js', 'application.js'
76
+ remove_file 'new_application.js'
77
+ end
76
78
  end
77
79
  end
78
80
 
79
81
  def karma
80
82
  after_bundle do
81
- unparsed_json = snippet('js_karma_jasmine_testing_deps.json')
82
- parsed_json = JSON.parse(unparsed_json)
83
+ add_test_dependency_snippets(
84
+ ["js_karma_jasmine_testing_deps.json", "js_enzyme_testing_deps.json"]
85
+ )
83
86
 
84
- modify_json(package_json_file) do |json|
85
- json["devDependencies"] ||= {}
86
- json["devDependencies"].merge!(parsed_json["devDependencies"])
87
- json["scripts"] ||= {}
88
- json["scripts"]["test"] = "node_modules/.bin/karma start karma.conf.js"
89
- end
87
+ create_enzyme_config
90
88
 
91
89
  template 'karma.conf.js'
92
90
  inside 'spec/javascript' do
@@ -99,45 +97,22 @@ module MakeItSo
99
97
  end
100
98
 
101
99
  remove_file '.babelrc'
102
- template '.babelrc'
100
+ remove_file 'babel.config.js'
101
+ template 'babel.config.js'
103
102
  end
104
103
  end
105
104
 
106
105
  def jest
107
106
  after_bundle do
108
- unparsed_json = snippet('js_jest_testing_deps.json')
109
- parsed_json = JSON.parse(unparsed_json)
107
+ add_test_dependency_snippets(
108
+ ["js_jest_testing_deps.json", "js_enzyme_testing_deps.json"]
109
+ )
110
110
 
111
- run 'mkdir -p spec/javascript/support'
112
- inside 'spec/javascript/support' do
113
- template 'enzyme.js'
114
- end
115
-
116
- modify_json(package_json_file) do |json|
117
- json["devDependencies"] ||= {}
118
- json["devDependencies"].merge!(parsed_json["devDependencies"])
119
- json["scripts"] ||= {}
120
- json["scripts"]["test"] = "node_modules/.bin/jest"
121
- json["scripts"]["test:dev"] = "node_modules/.bin/jest --notify --watch"
122
- json["jest"] ||= {}
123
- json["jest"].merge!({
124
- "automock": false,
125
- "roots": [
126
- "spec/javascript"
127
- ],
128
- "moduleDirectories": [
129
- "node_modules",
130
- "app/javascript"
131
- ],
132
- "setupFiles": [
133
- "./spec/javascript/support/enzyme.js"
134
- ],
135
- "testURL": "http://localhost/"
136
- })
137
- end
111
+ create_enzyme_config
138
112
 
139
113
  remove_file '.babelrc'
140
- template '.babelrc'
114
+ remove_file 'babel.config.js'
115
+ template 'babel.config.js'
141
116
  end
142
117
  end
143
118
 
@@ -156,14 +131,16 @@ module MakeItSo
156
131
  end
157
132
 
158
133
  def rspec_dependency
159
- @generator.gem 'rspec-rails', group: [:development, :test]
134
+ @generator.gem 'rspec-rails', '3.8.2', group: [:development, :test]
160
135
  @generator.gem 'capybara', group: [:development, :test]
161
136
  @generator.gem 'launchy', group: [:development, :test]
162
137
 
163
138
  after_bundle do
164
- #stop spring in case it is running - it will hang
165
- #https://github.com/rails/rails/issues/13381
166
- run 'spring stop'
139
+ if !options[:skip_spring]
140
+ #stop spring in case it is running - it will hang
141
+ #https://github.com/rails/rails/issues/13381
142
+ run 'spring stop'
143
+ end
167
144
  generate 'rspec:install'
168
145
  inside 'spec' do
169
146
  empty_directory 'support'
@@ -229,8 +206,16 @@ module MakeItSo
229
206
  group: [:development, :test],
230
207
  require: false
231
208
  after_bundle do
232
- inside 'spec/support' do
233
- template 'shoulda.rb'
209
+ inside 'spec' do
210
+ insert_into_file 'rails_helper.rb',
211
+ after: rails_helper_insertion_hook do
212
+
213
+ "require File.join(File.dirname(__FILE__), 'support/shoulda')\n"
214
+ end
215
+
216
+ inside 'support' do
217
+ template 'shoulda.rb'
218
+ end
234
219
  end
235
220
  end
236
221
  end
@@ -294,6 +279,32 @@ module MakeItSo
294
279
  PACKAGE_PATH = "package.json"
295
280
  WEBCONFIG_PATH = "webpack.config.js"
296
281
 
282
+ def add_test_dependency_snippets(snippet_paths)
283
+ snippet_paths.each do |snippet_path|
284
+ snippet = snippet(snippet_path)
285
+ parsed_snippet = JSON.parse(snippet)
286
+ keys = parsed_snippet.keys
287
+
288
+ modify_json(package_json_file) do |json|
289
+ keys.each do |key|
290
+ json[key] ||= {}
291
+ json[key].merge!(parsed_snippet[key])
292
+ end
293
+ end
294
+ end
295
+ end
296
+
297
+ def create_enzyme_config
298
+ run 'mkdir -p spec/javascript/support'
299
+ devDependencies = parsed_package_json["devDependencies"].keys
300
+ enzymeAdapter = devDependencies.select{ |d| d =~ /^enzyme-adapter-react-[0-9]*/ }[0]
301
+
302
+ inside 'spec/javascript/support' do
303
+ template 'enzyme.js'
304
+ gsub_file 'enzyme.js', 'ADAPTER NAME GOES HERE', enzymeAdapter
305
+ end
306
+ end
307
+
297
308
  def parsed_package_json
298
309
  @package_json ||= parse_json_file(package_json_file)
299
310
  end
@@ -0,0 +1,29 @@
1
+ require 'rubygems'
2
+
3
+ module MakeItSo
4
+ module Rails
5
+ class PrerequisiteCheck
6
+ include Thor::Base
7
+ include Thor::Actions
8
+
9
+ def check
10
+ say "Checking Rails version...", :yellow
11
+ begin
12
+ require "rails"
13
+ puts ::Rails.version
14
+ if ::Rails.version != MakeItSo::Rails::VERSION
15
+ say "Rails versions check FAILED - execute the following", :red
16
+ say "gem uninstall rails railties activejob actionmailer -a && gem install rails -v #{MakeItSo::Rails::VERSION}"
17
+ return false
18
+ else
19
+ say "Rails version MATCH", :green
20
+ return true
21
+ end
22
+ rescue LoadError => e
23
+ say "Rails not installed", :red
24
+ return false
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module MakeItSo
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.1"
3
3
  end
@@ -0,0 +1,6 @@
1
+ {
2
+ "devDependencies": {
3
+ "enzyme": "~3.10.0",
4
+ "enzyme-adapter-react-16": "~1.14.0"
5
+ }
6
+ }
@@ -1,9 +1,27 @@
1
1
  {
2
2
  "devDependencies": {
3
- "babel-jest": "~23.4.0",
4
- "enzyme": "~3.10.0",
5
- "enzyme-adapter-react-16": "~1.14.0",
3
+ "babel-jest": "^24.9.0",
6
4
  "fetch-mock": "~5.13.1",
7
- "jest": "~23.4.1"
5
+ "jest": "^24.9.0"
6
+ },
7
+ "scripts": {
8
+ "start": "./bin/webpack-dev-server",
9
+ "test": "node_modules/.bin/jest",
10
+ "test:dev": "node_modules/.bin/jest --notify --watch"
11
+ },
12
+ "jest": {
13
+ "automock": false,
14
+ "roots": [
15
+ "spec/javascript",
16
+ "app/javascript"
17
+ ],
18
+ "moduleDirectories": [
19
+ "node_modules",
20
+ "app/javascript"
21
+ ],
22
+ "setupFiles": [
23
+ "./spec/javascript/support/enzyme.js"
24
+ ],
25
+ "testURL": "http://localhost/"
8
26
  }
9
27
  }
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "devDependencies": {
3
- "enzyme": "~3.10.0",
4
- "enzyme-adapter-react-16": "^1.14.0",
5
3
  "fetch-mock": "5",
6
4
  "fetch-ponyfill": "^6.0.2",
7
5
  "jasmine-core": "~2.4.1",
8
6
  "jasmine-enzyme": "~7.0.0",
9
7
  "karma": "~0.13.22",
8
+ "karma-chrome-launcher": "^3.1.0",
10
9
  "karma-coverage": "0.5.5",
11
10
  "karma-jasmine": "~0.3.8",
12
11
  "karma-phantomjs-launcher": "~1.0.4",
13
12
  "karma-sourcemap-loader": "0.3.7",
14
13
  "karma-spec-reporter": "0.0.26",
15
- "karma-webpack": "2.0.1",
16
- "phantomjs-prebuilt": "~2.1.14"
14
+ "karma-webpack": "2.0.1"
15
+ },
16
+ "scripts": {
17
+ "test": "node_modules/.bin/karma start karma.conf.js"
17
18
  }
18
19
  }
@@ -1,20 +1,23 @@
1
1
  {
2
2
  "dependencies": {
3
- "prop-types": "~15.6.0",
4
- "react": "~16.8.0",
5
- "react-dom": "~16.8.0",
6
- "react-router-dom": "5.0.0",
7
- "redbox-react": "1.6.0"
8
- },
9
- "devDependencies": {
10
3
  "@babel/core": "^7.5.5",
11
4
  "@babel/plugin-proposal-class-properties": "^7.0.0",
12
5
  "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
13
6
  "@babel/plugin-syntax-dynamic-import": "^7.0.0",
7
+ "@babel/plugin-transform-destructuring": "^7.6.0",
8
+ "@babel/plugin-transform-regenerator": "^7.4.5",
14
9
  "@babel/plugin-transform-runtime": "^7.5.5",
15
10
  "@babel/preset-env": "^7.5.5",
16
11
  "@babel/preset-react": "^7.0.0",
12
+ "@babel/runtime": "^7.6.2",
17
13
  "babel-loader": "^8.0.6",
14
+ "prop-types": "~15.6.0",
15
+ "react": "~16.8.0",
16
+ "react-dom": "~16.8.0",
17
+ "react-router-dom": "5.0.0",
18
+ "redbox-react": "1.6.0"
19
+ },
20
+ "devDependencies": {
18
21
  "webpack-cli": "^2.0.10",
19
22
  "webpack-dev-server": "^2.11.1"
20
23
  }
@@ -49,16 +49,6 @@ feature 'user generates rails app with default settings' do
49
49
  expect(FileTest.exists?(join_paths(app_path, 'config/storage.yml'))).to eq(false)
50
50
  end
51
51
 
52
- scenario 'creates a valid gemfile' do
53
- words = ['source', '#', 'gem', 'group', 'end', 'ruby']
54
-
55
- File.readlines('Gemfile').each do |line|
56
- unless line.strip.empty?
57
- expect(line.strip.start_with?(*words)).to eq(true)
58
- end
59
- end
60
- end
61
-
62
52
  context 'pry-rails' do
63
53
  it 'is added as a dependency' do
64
54
  expect(File.read(gemfile_path)).to match(/gem(.*)pry-rails/)
@@ -135,6 +125,11 @@ feature 'user generates rails app with default settings' do
135
125
  it 'includes a shoulda file in the support directory' do
136
126
  expect(FileTest.exists?(join_paths(app_path, 'spec/support/shoulda.rb')))
137
127
  end
128
+
129
+ it 'requires the shoulda support file' do
130
+ expect(File.read(rails_spec_helper)).
131
+ to include("\nrequire File.join(File.dirname(__FILE__), 'support/shoulda')\n")
132
+ end
138
133
  end
139
134
 
140
135
  context 'database_cleaner' do
@@ -255,17 +250,22 @@ feature 'user generates rails app with default settings' do
255
250
  context 'babel' do
256
251
  it 'includes necessary babel packages in package.json as dev dependencies' do
257
252
  in_package_json?(File.join(app_path, 'package.json')) do |json|
258
- expect(json["devDependencies"]["@babel/core"]).to_not be_nil
259
- expect(json["devDependencies"]["@babel/preset-env"]).to_not be_nil
260
- expect(json["devDependencies"]["@babel/preset-react"]).to_not be_nil
261
- expect(json["devDependencies"]["babel-loader"]).to_not be_nil
253
+ expect(json["dependencies"]["@babel/core"]).to_not be_nil
254
+ expect(json["dependencies"]["@babel/preset-env"]).to_not be_nil
255
+ expect(json["dependencies"]["@babel/preset-react"]).to_not be_nil
256
+ expect(json["dependencies"]["babel-loader"]).to_not be_nil
262
257
  end
263
258
  end
264
259
 
265
- it 'sets necessary presets in .babelrc' do
266
- babelrc = read_file('.babelrc')
267
- expect(babelrc).to include("@babel/env")
268
- expect(babelrc).to include("@babel/react")
260
+ it 'does not create .babelrc' do
261
+ babelrc = File.join(app_path, '.babelrc')
262
+ expect(FileTest.exists?(babelrc)).to eq(false)
263
+ end
264
+
265
+ it 'sets necessary presets in babel.config.js' do
266
+ babel_config = read_file('babel.config.js')
267
+ expect(babel_config).to include("@babel/env")
268
+ expect(babel_config).to include("@babel/react")
269
269
  end
270
270
  end
271
271
 
@@ -286,9 +286,15 @@ feature 'user generates rails app with default settings' do
286
286
  end
287
287
  end
288
288
 
289
- it 'adds a spec/javascript/support/enzyme.js file' do
290
- support_file = File.join(app_path, 'spec/javascript/support/enzyme.js')
289
+ it 'includes enzyme.js with correct Enzyme config' do
290
+ file_subpath = "spec/javascript/support/enzyme.js"
291
+ support_file = File.join(app_path, file_subpath)
291
292
  expect(FileTest.exists?(support_file)).to eq(true)
293
+
294
+ enzyme = read_file(file_subpath)
295
+ expect(enzyme).to include('require("enzyme-adapter-react-16")')
296
+ expect(enzyme).to include("Enzyme.configure")
297
+ expect(enzyme).to include("enzyme-adapter-react-16")
292
298
  end
293
299
 
294
300
  it 'adds spec/javascript/support/enzyme.js to setup' do
@@ -41,13 +41,23 @@ feature "user generates rails app with karma/jasmine" do
41
41
  expect(read_file('.gitignore')).to include("coverage/*\n")
42
42
  end
43
43
 
44
- it 'configures enzyme with adapter in testHelper' do
44
+ it 'does not configure enzyme adapter in testHelper' do
45
45
  testHelper = read_file('spec/javascript/testHelper.js')
46
- expect(testHelper).to include("Enzyme.configure({ adapter: new EnzymeAdapter() })")
46
+ expect(testHelper).to_not include("Enzyme.configure({ adapter: new EnzymeAdapter() })")
47
47
  end
48
48
 
49
- it 'karma.conf.js uses @babel/polyfill' do
50
- expect(read_file('karma.conf.js')).to include("node_modules/@babel/polyfill/dist/polyfill.js")
49
+ it 'includes enzyme.js with correct Enzyme config' do
50
+ file_subpath = "spec/javascript/support/enzyme.js"
51
+ support_file = File.join(app_path, file_subpath)
52
+ expect(FileTest.exists?(support_file)).to eq(true)
53
+
54
+ enzyme = read_file(file_subpath)
55
+ expect(enzyme).to include("Enzyme.configure")
56
+ expect(enzyme).to include("enzyme-adapter-react-16")
57
+ end
58
+
59
+ it 'karma.conf.js does not use @babel/polyfill' do
60
+ expect(read_file('karma.conf.js')).to_not include("node_modules/@babel/polyfill/dist/polyfill.js")
51
61
  end
52
62
 
53
63
  it 'does not add jest as the test script in package.json' do
@@ -0,0 +1,77 @@
1
+ module.exports = function(api) {
2
+ var validEnv = ['development', 'test', 'production']
3
+ var currentEnv = api.env()
4
+ var isDevelopmentEnv = api.env('development')
5
+ var isProductionEnv = api.env('production')
6
+ var isTestEnv = api.env('test')
7
+
8
+ if (!validEnv.includes(currentEnv)) {
9
+ throw new Error(
10
+ 'Please specify a valid `NODE_ENV` or ' +
11
+ '`BABEL_ENV` environment variables. Valid values are "development", ' +
12
+ '"test", and "production". Instead, received: ' +
13
+ JSON.stringify(currentEnv) +
14
+ '.'
15
+ )
16
+ }
17
+
18
+ return {
19
+ presets: [
20
+ isTestEnv && [
21
+ require('@babel/preset-env').default,
22
+ {
23
+ targets: {
24
+ node: 'current'
25
+ }
26
+ }
27
+ ],
28
+ (isProductionEnv || isDevelopmentEnv) && [
29
+ require('@babel/preset-env').default,
30
+ {
31
+ forceAllTransforms: true,
32
+ useBuiltIns: 'entry',
33
+ corejs: 3,
34
+ modules: false,
35
+ exclude: ['transform-typeof-symbol']
36
+ }
37
+ ],
38
+ [
39
+ require('@babel/preset-react').default,
40
+ {
41
+ development: isDevelopmentEnv || isTestEnv,
42
+ useBuiltIns: true
43
+ }
44
+ ]
45
+ ].filter(Boolean),
46
+ plugins: [
47
+ require('@babel/plugin-syntax-dynamic-import').default,
48
+ require('@babel/plugin-transform-destructuring').default,
49
+ [
50
+ require('@babel/plugin-proposal-class-properties').default,
51
+ {
52
+ loose: true
53
+ }
54
+ ],
55
+ [
56
+ require('@babel/plugin-proposal-object-rest-spread').default,
57
+ {
58
+ useBuiltIns: true
59
+ }
60
+ ],
61
+ [
62
+ require('@babel/plugin-transform-runtime').default,
63
+ {
64
+ helpers: false,
65
+ regenerator: true,
66
+ corejs: false
67
+ }
68
+ ],
69
+ [
70
+ require('@babel/plugin-transform-regenerator').default,
71
+ {
72
+ async: false
73
+ }
74
+ ]
75
+ ].filter(Boolean)
76
+ }
77
+ }
@@ -3,16 +3,14 @@ var path = require('path');
3
3
  module.exports = function(config) {
4
4
  config.set({
5
5
  basePath: "",
6
- // use the PhantomJS browser
7
- browsers: ['PhantomJS'],
6
+ // use the Chrome Headless browser
7
+ browsers: ['ChromeHeadless'],
8
8
 
9
9
  // use the Jasmine testing framework
10
10
  frameworks: ['jasmine'],
11
11
 
12
12
  // files that Karma will server to the browser
13
13
  files: [
14
- // use Babel polyfill to emulate a full ES6 environment in PhantomJS
15
- 'node_modules/@babel/polyfill/dist/polyfill.js',
16
14
  // entry file for Webpack
17
15
  'spec/javascript/testHelper.js'
18
16
  ],
@@ -0,0 +1,5 @@
1
+ describe('example test', () => {
2
+ it('should pass', () => {
3
+ expect(true).toBe(true);
4
+ });
5
+ });
@@ -1,4 +1,4 @@
1
1
  const Enzyme = require('enzyme');
2
- const EnzymeAdapter = require('enzyme-adapter-react-15.4');
2
+ const EnzymeAdapter = require("ADAPTER NAME GOES HERE");
3
3
 
4
4
  Enzyme.configure({ adapter: new EnzymeAdapter() });
@@ -1,7 +1,3 @@
1
- const Enzyme = require('enzyme');
2
- const EnzymeAdapter = require('enzyme-adapter-react-16');
3
- Enzyme.configure({ adapter: new EnzymeAdapter() });
4
-
5
1
  import { shallow, mount } from 'enzyme';
6
2
  import jasmineEnzyme from 'jasmine-enzyme';
7
3
  import React from 'react';
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: make_it_so
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Pickett
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-02 00:00:00.000000000 Z
11
+ date: 2019-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -118,6 +118,7 @@ extra_rdoc_files: []
118
118
  files:
119
119
  - ".gitignore"
120
120
  - ".rspec"
121
+ - CHANGELOG.md
121
122
  - Gemfile
122
123
  - LICENSE.txt
123
124
  - README.md
@@ -130,9 +131,11 @@ files:
130
131
  - lib/make_it_so/command_line_interface.rb
131
132
  - lib/make_it_so/rails.rb
132
133
  - lib/make_it_so/rails/app_builder.rb
134
+ - lib/make_it_so/rails/prerequisite_check.rb
133
135
  - lib/make_it_so/version.rb
134
136
  - make_it_so.gemspec
135
137
  - snippets/rails/application_generator.rb
138
+ - snippets/rails/js_enzyme_testing_deps.json
136
139
  - snippets/rails/js_jest_testing_deps.json
137
140
  - snippets/rails/js_karma_jasmine_testing_deps.json
138
141
  - snippets/rails/react_dependencies.json
@@ -152,7 +155,6 @@ files:
152
155
  - templates/gosu/lib/bounding_box.rb
153
156
  - templates/gosu/lib/keys.rb
154
157
  - templates/gosu/spec/spec_helper.rb
155
- - templates/rails/.babelrc
156
158
  - templates/rails/.env
157
159
  - templates/rails/.env.example
158
160
  - templates/rails/.gitkeep
@@ -163,10 +165,12 @@ files:
163
165
  - templates/rails/app/models/application_record.rb
164
166
  - templates/rails/app/views/homes/index.html.erb
165
167
  - templates/rails/app/views/layouts/application.html.erb.tt
168
+ - templates/rails/babel.config.js
166
169
  - templates/rails/karma.conf.js
167
170
  - templates/rails/spec/features/user_signs_in_spec.rb
168
171
  - templates/rails/spec/features/user_signs_out_spec.rb
169
172
  - templates/rails/spec/features/user_signs_up_spec.rb
173
+ - templates/rails/spec/javascript/example.test.js
170
174
  - templates/rails/spec/javascript/exampleTest.js
171
175
  - templates/rails/spec/javascript/support/enzyme.js
172
176
  - templates/rails/spec/javascript/support/jest-fetch-mock.js
@@ -1,33 +0,0 @@
1
- {
2
- "presets": [
3
- [
4
- "@babel/env",
5
- {
6
- "modules": false,
7
- "targets": {
8
- "browsers": "> 1%"
9
- },
10
- "forceAllTransforms": true
11
- }
12
- ],
13
- "@babel/react"
14
- ],
15
- "plugins": [
16
- "@babel/syntax-dynamic-import",
17
- "@babel/proposal-object-rest-spread",
18
- [
19
- "@babel/proposal-class-properties",
20
- {
21
- "spec": true
22
- }
23
- ]
24
- ],
25
- "env": {
26
- "test": {
27
- "presets": [
28
- "@babel/env",
29
- "@babel/react"
30
- ]
31
- }
32
- }
33
- }