make_it_so 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
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
- }