make_it_so 0.4.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +34 -0
  3. data/Gemfile +18 -1
  4. data/README.md +5 -4
  5. data/lib/generators/rails_app_generator.rb +17 -10
  6. data/lib/make_it_so.rb +3 -0
  7. data/lib/make_it_so/command_line_interface.rb +4 -2
  8. data/lib/make_it_so/rails.rb +1 -2
  9. data/lib/make_it_so/rails/app_builder.rb +102 -86
  10. data/lib/make_it_so/rails/prerequisite_check.rb +29 -0
  11. data/lib/make_it_so/version.rb +1 -1
  12. data/make_it_so.gemspec +1 -3
  13. data/snippets/rails/js_enzyme_testing_deps.json +6 -0
  14. data/snippets/rails/js_jest_testing_deps.json +15 -5
  15. data/snippets/rails/{js_testing_deps.json → js_karma_jasmine_testing_deps.json} +8 -7
  16. data/snippets/rails/react_dependencies.json +14 -3
  17. data/snippets/rails/user_factory.rb +2 -2
  18. data/spec/features/rails/user_generates_rails_spec.rb +410 -0
  19. data/spec/features/rails/user_generates_rails_with_karma_spec.rb +68 -0
  20. data/spec/features/rails/user_generates_rails_without_js_test_lib_spec.rb +51 -0
  21. data/spec/support/make_it_so_spec_helpers.rb +23 -0
  22. data/templates/rails/app/assets/javascripts/application.foundation.js +18 -0
  23. data/templates/rails/app/assets/javascripts/application.js +16 -0
  24. data/templates/rails/app/javascript/packs/new_application.js +1 -1
  25. data/templates/rails/app/javascript/react/components/{app.js → App.js} +1 -1
  26. data/templates/rails/app/javascript/react/components/example.test.js +5 -0
  27. data/templates/rails/app/views/layouts/application.html.erb.tt +1 -8
  28. data/templates/rails/babel.config.js +77 -0
  29. data/templates/rails/karma.conf.js +2 -5
  30. data/templates/rails/spec/javascript/example.test.js +5 -0
  31. data/templates/rails/spec/javascript/support/enzyme.js +1 -3
  32. data/templates/rails/spec/javascript/testHelper.js +6 -1
  33. metadata +24 -48
  34. data/Appraisals +0 -4
  35. data/gemfiles/rails_4_0.gemfile +0 -11
  36. data/gemfiles/rails_4_0.gemfile.lock +0 -88
  37. data/gemfiles/rails_4_1.gemfile +0 -11
  38. data/gemfiles/rails_4_1.gemfile.lock +0 -92
  39. data/gemfiles/rails_4_2.gemfile +0 -11
  40. data/gemfiles/rails_4_2.gemfile.lock +0 -106
  41. data/spec/features/user_generates_rails_spec.rb +0 -352
@@ -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.4.2"
2
+ VERSION = "0.6.0"
3
3
  end
data/make_it_so.gemspec CHANGED
@@ -23,9 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency "activerecord", "~> 5.2"
24
24
  spec.add_dependency "json"
25
25
 
26
- spec.add_development_dependency "bundler", "~> 1.7"
27
- spec.add_development_dependency "appraisal"
28
- spec.add_development_dependency "rake", "~> 12.0"
26
+ spec.add_development_dependency "bundler", "~> 2.1"
29
27
  spec.add_development_dependency "rspec"
30
28
  spec.add_development_dependency "capybara"
31
29
  end
@@ -0,0 +1,6 @@
1
+ {
2
+ "devDependencies": {
3
+ "enzyme": "~3.10.0",
4
+ "enzyme-adapter-react-16": "~1.14.0"
5
+ }
6
+ }
@@ -1,10 +1,20 @@
1
1
  {
2
2
  "devDependencies": {
3
- "babel-jest": "~23.4.0",
4
- "enzyme": "~3.3.0",
5
- "enzyme-adapter-react-15.4": "~1.0.6",
3
+ "babel-jest": "^24.9.0",
6
4
  "fetch-mock": "~5.13.1",
7
- "jest": "~23.4.1",
8
- "react-addons-test-utils": "~15.6.2"
5
+ "jest": "^24.9.0",
6
+ "@types/jest": "^24.9.0"
7
+ },
8
+ "scripts": {
9
+ "start": "./bin/webpack-dev-server",
10
+ "test": "node_modules/.bin/jest",
11
+ "test:dev": "node_modules/.bin/jest --notify --watch"
12
+ },
13
+ "jest": {
14
+ "automock": false,
15
+ "roots": ["spec/javascript", "app/javascript"],
16
+ "moduleDirectories": ["node_modules", "app/javascript"],
17
+ "setupFiles": ["./spec/javascript/support/enzyme.js"],
18
+ "testURL": "http://localhost/"
9
19
  }
10
20
  }
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "devDependencies": {
3
- "enzyme": "~2.9.1",
4
- "jasmine-ajax": "3.2.0",
3
+ "fetch-mock": "5",
4
+ "fetch-ponyfill": "^6.0.2",
5
5
  "jasmine-core": "~2.4.1",
6
- "jasmine-enzyme": "~3.4.0",
6
+ "jasmine-enzyme": "~7.0.0",
7
7
  "karma": "~0.13.22",
8
+ "karma-chrome-launcher": "^3.1.0",
8
9
  "karma-coverage": "0.5.5",
9
10
  "karma-jasmine": "~0.3.8",
10
11
  "karma-phantomjs-launcher": "~1.0.4",
11
12
  "karma-sourcemap-loader": "0.3.7",
12
13
  "karma-spec-reporter": "0.0.26",
13
- "karma-webpack": "2.0.1",
14
- "phantomjs-prebuilt": "~2.1.14",
15
- "react-addons-test-utils": "~15.6.2"
14
+ "karma-webpack": "2.0.1"
15
+ },
16
+ "scripts": {
17
+ "test": "node_modules/.bin/karma start karma.conf.js"
16
18
  }
17
19
  }
18
-
@@ -1,9 +1,20 @@
1
1
  {
2
2
  "dependencies": {
3
- "babel-preset-react": "~6.24.1",
3
+ "@babel/core": "^7.5.5",
4
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
5
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
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",
9
+ "@babel/plugin-transform-runtime": "^7.13.10",
10
+ "@babel/preset-env": "^7.5.5",
11
+ "@babel/preset-react": "^7.0.0",
12
+ "@babel/runtime": "^7.13.10",
13
+ "babel-loader": "^8.0.6",
4
14
  "prop-types": "~15.6.0",
5
- "react": "~15.4.2",
6
- "react-dom": "~15.4.2",
15
+ "react": "~16.8.0",
16
+ "react-dom": "~16.8.0",
17
+ "react-router-dom": "5.0.0",
7
18
  "redbox-react": "1.6.0"
8
19
  },
9
20
  "devDependencies": {
@@ -1,5 +1,5 @@
1
1
  factory :user do
2
2
  sequence(:email) {|n| "user#{n}@example.com" }
3
- password 'password'
4
- password_confirmation 'password'
3
+ password { 'password' }
4
+ password_confirmation { 'password' }
5
5
  end
@@ -0,0 +1,410 @@
1
+ require 'spec_helper'
2
+
3
+ feature 'user generates rails app with default settings' do
4
+ def app_name
5
+ 'dummy_rails'
6
+ end
7
+
8
+ def app_path
9
+ join_paths(tmp_path, app_name)
10
+ end
11
+
12
+ let(:css_manifest_path) {
13
+ join_paths(app_path, 'app/assets/stylesheets/application.css')
14
+ }
15
+
16
+ let(:gemfile_path) { join_paths(app_path, 'Gemfile')}
17
+ let(:package_json_path) { join_paths(app_path, 'package.json')}
18
+ let(:rails_spec_helper) { join_paths(app_path, 'spec/rails_helper.rb')}
19
+
20
+ before(:all) do
21
+ make_it_so!("rails #{app_name}")
22
+ end
23
+
24
+ scenario 'generates a rails app' do
25
+ expect(FileTest.exists?(join_paths(app_path, 'app/models'))).to eq(true)
26
+ end
27
+
28
+ scenario 'creates an application.js manifest' do
29
+ js_file = join_paths(app_path, 'app/assets/javascripts/application.js')
30
+ expect(FileTest.exists?(js_file)).to eq(true)
31
+ end
32
+
33
+ scenario 'creates an application.css manifest' do
34
+ expect(FileTest.exists?(css_manifest_path)).to eq(true)
35
+ end
36
+
37
+ scenario 'includes the flash in the layout' do
38
+ app_layout = File.join(app_path, 'app/views/layouts/application.html.erb')
39
+ expect(File.read(app_layout)).to include('flash')
40
+ end
41
+
42
+ scenario 'includes viewport meta tag in layout for mobile' do
43
+ app_layout = File.join(app_path, 'app/views/layouts/application.html.erb')
44
+ expect(File.read(app_layout)).to include('initial-scale=1.0')
45
+ expect(File.read(app_layout)).to include('viewport')
46
+ end
47
+
48
+ scenario 'skips active_storage' do
49
+ expect(FileTest.exists?(join_paths(app_path, 'config/storage.yml'))).to eq(false)
50
+ end
51
+
52
+ context 'pry-rails' do
53
+ it 'is added as a dependency' do
54
+ expect(File.read(gemfile_path)).to match(/gem(.*)pry-rails/)
55
+ end
56
+ end
57
+
58
+ context 'rspec' do
59
+ it 'eliminates test/unit' do
60
+ expect(FileTest.exists?(join_paths(app_path, 'test'))).to_not eq(true)
61
+ end
62
+
63
+ it 'inserts a spec_helper' do
64
+ spec_helper = join_paths(app_path, 'spec/spec_helper.rb')
65
+ expect(FileTest.exists?(spec_helper)).to eq(true)
66
+ end
67
+
68
+ context 'byebug' do
69
+ it 'removes the byebug dependency' do
70
+ expect(File.read(gemfile_path)).to_not match(/gem(.*)byebug/)
71
+ end
72
+ end
73
+
74
+ context 'capybara' do
75
+ it 'includes capybara as a Gemfile dependency' do
76
+ expect(File.read(gemfile_path)).to include('capybara')
77
+ end
78
+
79
+ it 'includes launchy as a Gemfile dependency' do
80
+ expect(File.read(gemfile_path)).to include('launchy')
81
+ end
82
+
83
+ it 'includes capybara in the rails_helper' do
84
+ expect(File.read(rails_spec_helper)).to match(/require \'capybara\/rspec\'/)
85
+ end
86
+ end
87
+
88
+ context 'factory_bot' do
89
+ it 'includes a factory_bot support file' do
90
+ fb_support_path = join_paths(app_path, 'spec/support/factory_bot.rb')
91
+ expect(FileTest.exists?(fb_support_path)).to eq(true)
92
+ end
93
+
94
+ it 'includes the factory_bot gem' do
95
+ expect(File.read(gemfile_path)).to include('factory_bot')
96
+ end
97
+
98
+ it 'requires the factory_bot support file' do
99
+ expect(File.read(rails_spec_helper)).
100
+ to include("\nrequire File.join(File.dirname(__FILE__), 'support/factory_bot')\n")
101
+ end
102
+ end
103
+
104
+ context 'valid_attribute' do
105
+ it 'includes the valid_attribute gem' do
106
+ expect(File.read(gemfile_path)).to include('valid_attribute')
107
+ end
108
+
109
+ it 'creates the valid_attribute support file' do
110
+ support_path = join_paths(app_path, 'spec/support/valid_attribute.rb')
111
+ expect(FileTest.exists?(support_path)).to eq(true)
112
+ end
113
+
114
+ it 'requires the valid_attribute support file' do
115
+ expect(File.read(rails_spec_helper)).
116
+ to match(/require(.*)support\/valid_attribute/)
117
+ end
118
+ end
119
+
120
+ context 'shoulda' do
121
+ it 'includes shoulda-matchers in the gemfile' do
122
+ expect(File.read(gemfile_path)).to include('shoulda-matchers')
123
+ end
124
+
125
+ it 'includes a shoulda file in the support directory' do
126
+ expect(FileTest.exists?(join_paths(app_path, 'spec/support/shoulda.rb')))
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
133
+ end
134
+
135
+ context 'database_cleaner' do
136
+ it 'includes database_cleaner in the gemfile' do
137
+ expect(File.read(gemfile_path)).to include('database_cleaner')
138
+ end
139
+
140
+ it 'creates the database_cleaner support file' do
141
+ support_path = join_paths(app_path, 'spec/support/database_cleaner.rb')
142
+ expect(FileTest.exists?(support_path)).to eq(true)
143
+ end
144
+ end
145
+ end
146
+
147
+ context 'devise' do
148
+ it 'adds devise as a dependency' do
149
+ expect(File.read(gemfile_path)).to include('devise')
150
+ end
151
+
152
+ it 'generates devise' do
153
+ devise_initializer = File.join(app_path, 'config/initializers/devise.rb')
154
+ expect(FileTest.exists?(devise_initializer)).to eq(true)
155
+ end
156
+
157
+ it 'generates devise views' do
158
+ devise_views = File.join(app_path, 'app/views/devise')
159
+ expect(FileTest.exists?(devise_views)).to eq(true)
160
+ end
161
+
162
+ it 'creates a user model' do
163
+ user_model = File.join(app_path, 'app/models/user.rb')
164
+ expect(FileTest.exists?(user_model)).to eq(true)
165
+ end
166
+
167
+ it 'creates a user_signs_up feature spec' do
168
+ feature_spec = File.join(app_path, 'spec/features/user_signs_up_spec.rb')
169
+ expect(FileTest.exists?(feature_spec)).to eq(true)
170
+ end
171
+
172
+ it 'creates a user_signs_in feature spec' do
173
+ feature_spec = File.join(app_path, 'spec/features/user_signs_in_spec.rb')
174
+ expect(FileTest.exists?(feature_spec)).to eq(true)
175
+ end
176
+
177
+ it 'creates a user_signs_out feature spec' do
178
+ feature_spec = File.join(app_path, 'spec/features/user_signs_out_spec.rb')
179
+ expect(FileTest.exists?(feature_spec)).to eq(true)
180
+ end
181
+ end
182
+
183
+ context 'foundation' do
184
+ it 'generates foundation' do
185
+ expect(File.read(css_manifest_path)).to include('foundation_and_overrides')
186
+ end
187
+
188
+ it 'does not include foundation.html.erb' do
189
+ foundation_html = File.join(app_path, 'app/views/layouts/foundation.html.erb')
190
+ expect(FileTest.exists?(foundation_html)).to eq(false)
191
+ end
192
+
193
+ it 'does not include modernizr in the layout' do
194
+ expect(read_file('app/views/layouts/application.html.erb')).to_not include('modernizr')
195
+ end
196
+
197
+ it 'adds the custom application.js manifest to the assets folder' do
198
+ file_subpath = "app/assets/javascripts/application.js"
199
+ generated_js_manifest = File.join(app_path, file_subpath)
200
+ expect(FileTest.exists?(generated_js_manifest)).to eq(true)
201
+ end
202
+ end
203
+
204
+ context 'react' do
205
+ it 'generates a packs file' do
206
+ expect(FileTest.exists?(join_paths(app_path, 'app/javascript/packs/application.js'))).to eq(true)
207
+ end
208
+
209
+ it 'includes react in package.json' do
210
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
211
+ react = json["dependencies"]["react"]
212
+ expect(major_version(react)).to be 16
213
+ expect(minor_version(react)).to be 8
214
+ end
215
+ end
216
+
217
+ it 'includes redbox-react in package.json' do
218
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
219
+ expect(json["dependencies"]["redbox-react"]).to_not be_nil
220
+ end
221
+ end
222
+
223
+ it 'includes react-dom in package.json' do
224
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
225
+ react_dom = json["dependencies"]["react-dom"]
226
+ expect(major_version(react_dom)).to be 16
227
+ expect(minor_version(react_dom)).to be 8
228
+ end
229
+ end
230
+
231
+ it 'includes react-router-dom in package.json' do
232
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
233
+ expect(json["dependencies"]["react-router-dom"]).to_not be_nil
234
+ end
235
+ end
236
+ end
237
+
238
+ context 'dotenv' do
239
+ it 'adds dotenv-rails to Gemfile' do
240
+ expect(File.read(gemfile_path)).to match(/gem(.*)dotenv-rails/)
241
+ end
242
+
243
+ it 'adds .env to gitignore' do
244
+ expect(read_file('.gitignore')).to include(".env\n")
245
+ end
246
+
247
+ it 'creates a .env file' do
248
+ expect(FileTest.exists?(File.join(app_path, '.env'))).to eq(true)
249
+ end
250
+
251
+ it 'creates a .env.example file' do
252
+ expect(FileTest.exists?(File.join(app_path, '.env.example'))).to eq(true)
253
+ end
254
+ end
255
+
256
+ context 'babel' do
257
+ it 'includes necessary babel packages in package.json as dev dependencies' do
258
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
259
+ expect(json["dependencies"]["@babel/core"]).to_not be_nil
260
+ expect(json["dependencies"]["@babel/preset-env"]).to_not be_nil
261
+ expect(json["dependencies"]["@babel/preset-react"]).to_not be_nil
262
+ expect(json["dependencies"]["babel-loader"]).to_not be_nil
263
+ end
264
+ end
265
+
266
+ it 'does not create .babelrc' do
267
+ babelrc = File.join(app_path, '.babelrc')
268
+ expect(FileTest.exists?(babelrc)).to eq(false)
269
+ end
270
+
271
+ it 'sets necessary presets in babel.config.js' do
272
+ babel_config = read_file('babel.config.js')
273
+ expect(babel_config).to include("@babel/preset-env")
274
+ expect(babel_config).to include("@babel/preset-react")
275
+ end
276
+ end
277
+
278
+ context 'enzyme' do
279
+ it 'includes enzyme in package.json' do
280
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
281
+ enzyme = json["devDependencies"]["enzyme"]
282
+ expect(major_version(enzyme)).to be 3
283
+ expect(minor_version(enzyme)).to be 10
284
+ end
285
+ end
286
+
287
+ it 'includes enzyme-adapter-react-16 in package.json' do
288
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
289
+ adapter = json["devDependencies"]["enzyme-adapter-react-16"]
290
+ expect(major_version(adapter)).to be 1
291
+ expect(minor_version(adapter)).to be 14
292
+ end
293
+ end
294
+
295
+ it 'includes enzyme.js with correct Enzyme config' do
296
+ file_subpath = "spec/javascript/support/enzyme.js"
297
+ support_file = File.join(app_path, file_subpath)
298
+ expect(FileTest.exists?(support_file)).to eq(true)
299
+
300
+ enzyme = read_file(file_subpath)
301
+ expect(enzyme).to include('require("enzyme-adapter-react-16")')
302
+ expect(enzyme).to include("Enzyme.configure")
303
+ expect(enzyme).to include("enzyme-adapter-react-16")
304
+ end
305
+
306
+ it 'adds spec/javascript/support/enzyme.js to setup' do
307
+ in_package_json?(package_json_path) do |json|
308
+ expect(json["jest"]).to_not be_nil
309
+ expect(json["jest"]["setupFiles"]).to include('./spec/javascript/support/enzyme.js')
310
+ end
311
+ end
312
+
313
+ it 'adds example.test.js to react components folder' do
314
+ file_subpath = "app/javascript/react/components/example.test.js"
315
+ example_test_file = File.join(app_path, file_subpath)
316
+ expect(FileTest.exists?(example_test_file)).to eq(true)
317
+ end
318
+ end
319
+
320
+ context 'jest' do
321
+ it 'includes fetch-mock' do
322
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
323
+ expect(json["devDependencies"]["fetch-mock"]).to_not be_nil
324
+ end
325
+ end
326
+
327
+ scenario 'adds jest as a dependency' do
328
+ in_package_json?(package_json_path) do |json|
329
+ expect(json["devDependencies"]["jest"]).to_not be_nil
330
+ end
331
+ end
332
+
333
+ scenario 'adds @types/jest as a dependency' do
334
+ in_package_json?(package_json_path) do |json|
335
+ expect(json["devDependencies"]["@types/jest"]).to_not be_nil
336
+ end
337
+ end
338
+
339
+ scenario 'adds enzyme as a dependency' do
340
+ in_package_json?(package_json_path) do |json|
341
+ expect(json["devDependencies"]["enzyme"]).to_not be_nil
342
+ end
343
+ end
344
+
345
+ scenario 'adds fetch-mock as a dependency' do
346
+ in_package_json?(package_json_path) do |json|
347
+ expect(json["devDependencies"]["fetch-mock"]).to_not be_nil
348
+ end
349
+ end
350
+
351
+ scenario 'adds jest as the test script in package.json' do
352
+ in_package_json?(package_json_path) do |json|
353
+ expect(json["scripts"]["test"]).to include("jest")
354
+ end
355
+ end
356
+
357
+ scenario 'adds spec/javascripts to roots' do
358
+ in_package_json?(package_json_path) do |json|
359
+ expect(json["jest"]).to_not be_nil
360
+ expect(json["jest"]["roots"]).to include("spec/javascript")
361
+ end
362
+ end
363
+
364
+ scenario 'adds node_modules to modules directory' do
365
+ in_package_json?(package_json_path) do |json|
366
+ expect(json["jest"]).to_not be_nil
367
+ expect(json["jest"]["moduleDirectories"]).to_not be_nil
368
+ expect(json["jest"]["moduleDirectories"]).to include("node_modules")
369
+ end
370
+ end
371
+
372
+ scenario 'adds app/javascript to modules directory' do
373
+ in_package_json?(package_json_path) do |json|
374
+ expect(json["jest"]).to_not be_nil
375
+ expect(json["jest"]["moduleDirectories"]).to_not be_nil
376
+ expect(json["jest"]["moduleDirectories"]).to include("app/javascript")
377
+ end
378
+ end
379
+
380
+ scenario 'adds testURL to jest configuration' do
381
+ in_package_json?(package_json_path) do |json|
382
+ expect(json["jest"]).to_not be_nil
383
+ expect(json["jest"]["testURL"]).to_not be_nil
384
+ expect(json["jest"]["testURL"]).to eq("http://localhost/")
385
+ end
386
+ end
387
+ end
388
+
389
+ it 'does not create a karma.config' do
390
+ karma_config = File.join(app_path, 'karma.conf.js')
391
+ expect(FileTest.exists?(karma_config)).to eq(false)
392
+ end
393
+
394
+ it 'does not create a testHelper.js' do
395
+ test_helper = File.join(app_path, 'spec/javascript/testHelper.js')
396
+ expect(FileTest.exists?(test_helper)).to eq(false)
397
+ end
398
+
399
+ it 'does not include karma in package.json' do
400
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
401
+ expect(json["devDependencies"]["karma"]).to be_nil
402
+ end
403
+ end
404
+
405
+ it 'does not include jasmine in package.json' do
406
+ in_package_json?(File.join(app_path, 'package.json')) do |json|
407
+ expect(json["devDependencies"]["jasmine-core"]).to be_nil
408
+ end
409
+ end
410
+ end