effective_test_bot 0.6.0 → 0.6.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
  SHA1:
3
- metadata.gz: ab8b4bc5a742ef7831a9aaaf26577401d51f6af4
4
- data.tar.gz: c0aaca5d20bde05f4862fb0bda72007da9f343ff
3
+ metadata.gz: 07bf0cd7c284cd899943335e6eabe61280ff4fb1
4
+ data.tar.gz: 5846e0ae040d8c3d44607e1550cdcc261a472e71
5
5
  SHA512:
6
- metadata.gz: f17f8acc4b6cb252ca7a616c8cc2aeb0360a5458de2b7232cb0989ab15a81ffae7aa43d28e3c3cc35ff7b3d02f30a53affaaf8e926c336139d396c8a68a8c78c
7
- data.tar.gz: f3bff170133a005203bbde722386e21cc0f9d6693325f03f4319ea023a576133d15ebc6f51dcf05b6f0bb2cb343d6209d7e3de13a7ddf6728aacc62b5d100e50
6
+ metadata.gz: 24fa43aec87401f7892873e4fe5deb19bc27cc82607d35b21ef11a8f5e613f324d0c094eaae8f069f5c018c9d13195a737d21d0bb3792fab2d35c7a448421020
7
+ data.tar.gz: 6d19efb1e8c8ccee2286911f9624be53bb2bdec3adf3d79e0a2aa49237936d56ddb7a9464d731058db65361d955736f0ddfb520431ca4b9bbae9fa7cd4ddbc1c
@@ -1,4 +1,4 @@
1
- Copyright 2015 Code and Effect Inc.
1
+ Copyright 2017 Code and Effect Inc.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -146,7 +146,7 @@ It clicks through bootstrap tabs and fill them nicely left-to-right, one tab at
146
146
  You can pass a Hash of 'fills' to specify specific input values:
147
147
 
148
148
  ```ruby
149
- class PostTest < ActionDispatch::IntegrationTest
149
+ class PostTest < Capybara::Rails::TestCase
150
150
  test 'creating a new post' do
151
151
  visit new_post_path
152
152
  fill_form(:title => 'A Cool Post', 'author.last_name' => 'Smith')
@@ -178,7 +178,7 @@ Clicks the first `input[type='submit']` field (or first submit field with the gi
178
178
  Automatically checks for `assert_no_html5_form_validation_errors`, `assert_jquery_ujs_disable_with` and `assert_no_unpermitted_params`
179
179
 
180
180
  ```ruby
181
- class PostTest < ActionDispatch::IntegrationTest
181
+ class PostTest < Capybara::Rails::TestCase
182
182
  test 'creating a new post' do
183
183
  visit(new_post_path) and fill_form
184
184
  submit_form # or submit_form('Save and Continue')
@@ -251,7 +251,7 @@ A quick note on speed: You can speed up these test suites by fixturing, seeding
251
251
  There are a few variations on the one-liner method:
252
252
 
253
253
  ```ruby
254
- class PostsTest < ActionDispatch::IntegrationTest
254
+ class PostsTest < Capybara::Rails::TestCase
255
255
  # Runs all 9 crud_action tests against /posts
256
256
  crud_test(resource: Post, user: User.first)
257
257
 
@@ -275,7 +275,7 @@ end
275
275
  The individual test suites may also be used as part of a larger test:
276
276
 
277
277
  ```ruby
278
- class PostsTest < ActionDispatch::IntegrationTest
278
+ class PostsTest < Capybara::Rails::TestCase
279
279
  test 'user may only update a post once' do
280
280
  crud_action_test(test: :create_valid, resource: Post, user: User.first)
281
281
  assert_text 'successfully created post. You may only update it once.'
@@ -303,7 +303,7 @@ This test runs through the the [devise](https://github.com/plataformatec/devise)
303
303
  Use as a one-liner:
304
304
 
305
305
  ```ruby
306
- class MyApplicationTest < ActionDispatch::IntegrationTest
306
+ class MyApplicationTest < Capybara::Rails::TestCase
307
307
  devise_test # Runs all tests (sign_up, sign_in_valid, and sign_in_invalid)
308
308
  end
309
309
  ```
@@ -311,7 +311,7 @@ end
311
311
  Or each individually in part of a regular test:
312
312
 
313
313
  ```ruby
314
- class MyApplicationTest < ActionDispatch::IntegrationTest
314
+ class MyApplicationTest < Capybara::Rails::TestCase
315
315
  test 'user receives 10 tokens after signing up' do
316
316
  devise_action_test(test: :sign_up)
317
317
  assert_text 'Tokens: 10'
@@ -336,7 +336,7 @@ This test signs in as the given user, visits the given controller/action/page an
336
336
  Use it as a one-liner:
337
337
 
338
338
  ```ruby
339
- class PostsTest < ActionDispatch::IntegrationTest
339
+ class PostsTest < Capybara::Rails::TestCase
340
340
  # Uses find_or_create_resource! to load a seeded resource or create a new one
341
341
  member_test(controller: 'posts', action: 'unarchive', user: User.first)
342
342
 
@@ -348,7 +348,7 @@ end
348
348
  Or as part of a regular test:
349
349
 
350
350
  ```ruby
351
- class PostsTest < ActionDispatch::IntegrationTest
351
+ class PostsTest < Capybara::Rails::TestCase
352
352
  test 'posts can be unarchived' do
353
353
  post = Post.create(title: 'first post', archived: true)
354
354
 
@@ -366,7 +366,7 @@ This test signs in as the given user, visits the given page and simply checks `a
366
366
  Use it as a one-liner:
367
367
 
368
368
  ```ruby
369
- class PostsTest < ActionDispatch::IntegrationTest
369
+ class PostsTest < Capybara::Rails::TestCase
370
370
  page_test(path: :posts_path, user: User.first) # Runs the page_test test suite against posts_path as User.first
371
371
  end
372
372
  ```
@@ -374,7 +374,7 @@ end
374
374
  Or as part of a regular test:
375
375
 
376
376
  ```ruby
377
- class PostsTest < ActionDispatch::IntegrationTest
377
+ class PostsTest < Capybara::Rails::TestCase
378
378
  test 'posts are displayed on the index page' do
379
379
  Post.create(title: 'first post')
380
380
 
@@ -393,7 +393,7 @@ This test signs in as the given user, visits the given page then checks `assert_
393
393
  Use it as a one-liner:
394
394
 
395
395
  ```ruby
396
- class PostsTest < ActionDispatch::IntegrationTest
396
+ class PostsTest < Capybara::Rails::TestCase
397
397
  # Visits /blog and tests that it redirects to a working /posts page
398
398
  redirect_test(from: '/blog', to: '/posts', user: User.first)
399
399
  end
@@ -402,7 +402,7 @@ end
402
402
  Or as part of a regular test:
403
403
 
404
404
  ```ruby
405
- class PostsTest < ActionDispatch::IntegrationTest
405
+ class PostsTest < Capybara::Rails::TestCase
406
406
  test 'visiting blog redirects to posts' do
407
407
  Post.create(title: 'first post')
408
408
  redirect_action_test(from: '/blog', to: '/posts', user: User.first)
@@ -422,7 +422,7 @@ As well, in the `wizard_action_test`, each page is yielded to the calling method
422
422
  Use it as a one-liner:
423
423
 
424
424
  ```ruby
425
- class PostsTest < ActionDispatch::IntegrationTest
425
+ class PostsTest < Capybara::Rails::TestCase
426
426
  wizard_test(from: '/build_post/step1', to: '/build_post/step5', user: User.first)
427
427
  end
428
428
  ```
@@ -430,7 +430,7 @@ end
430
430
  Or as part of a regular test:
431
431
 
432
432
  ```ruby
433
- class PostsTest < ActionDispatch::IntegrationTest
433
+ class PostsTest < Capybara::Rails::TestCase
434
434
  test 'building a post in 5 steps' do
435
435
  wizard_action_test(from: '/build_post/step1', to: '/build_post/step5', user: User.first) do
436
436
  if page.current_path.end_with?('step4')
@@ -1,14 +1,12 @@
1
1
  ENV['RAILS_ENV'] = 'test'
2
2
  require File.expand_path('../../config/environment', __FILE__)
3
+ require 'rake'
3
4
  require 'rails/test_help'
4
5
  require 'minitest/rails'
5
6
  require 'minitest/rails/capybara'
6
7
  require 'minitest/pride'
7
8
  require 'minitest/reporters'
8
9
 
9
- require 'shoulda-matchers'
10
- require 'shoulda'
11
-
12
10
  require 'capybara/webkit'
13
11
  require 'capybara-screenshot/minitest'
14
12
  require 'capybara/slow_finder_errors'
@@ -21,13 +19,15 @@ class ActiveSupport::TestCase
21
19
  use_transactional_fixtures = true
22
20
  end
23
21
 
24
- class ActionDispatch::IntegrationTest
22
+ class Capybara::Rails::TestCase
25
23
  # Make the Capybara DSL available in all integration tests
26
24
  include Capybara::DSL
27
25
  include Capybara::Assertions
28
26
  include Capybara::Screenshot::MiniTestPlugin
29
27
  include Warden::Test::Helpers if defined?(Devise)
30
28
 
29
+ include EffectiveTestBot::DSL
30
+
31
31
  def after_setup
32
32
  super()
33
33
  DatabaseCleaner.start
@@ -58,21 +58,21 @@ Rails.backtrace_cleaner.add_silencer { |line| line =~ /effective_test_bot/ }
58
58
  ### Effective Test Bot specific stuff below ###
59
59
  ###############################################
60
60
 
61
+ Rails.application.load_tasks
62
+
61
63
  # So the very first thing we do is consistently reset the database.
62
64
  # This can be done with Snippet 1 or Snippet 2.
63
65
  # Snippet 1 is faster, and will usually work. Snippet 2 should always work.
64
66
 
65
67
  # Snippet 1:
66
- silence_stream(STDOUT) { Rake::Task['db:schema:load'].invoke }
68
+ Rake::Task['db:schema:load'].invoke
67
69
  ActiveRecord::Migration.maintain_test_schema!
68
70
 
69
71
  # Snippet 2:
70
72
 
71
- # silence_stream(STDOUT) do
72
- # Rake::Task['db:drop'].invoke
73
- # Rake::Task['db:create'].invoke
74
- # Rake::Task['db:migrate'].invoke
75
- # end
73
+ # Rake::Task['db:drop'].invoke
74
+ # Rake::Task['db:create'].invoke
75
+ # Rake::Task['db:migrate'].invoke
76
76
 
77
77
  # Now we populate our test data:
78
78
  Rake::Task['db:fixtures:load'].invoke # There's just no way to get the seeds first, as this has to delete everything
@@ -1,6 +1,7 @@
1
- require "effective_test_bot/engine"
2
- require "effective_test_bot/middleware"
3
- require "effective_test_bot/version"
1
+ require 'effective_test_bot/engine'
2
+ require 'effective_test_bot/dsl'
3
+ require 'effective_test_bot/middleware'
4
+ require 'effective_test_bot/version'
4
5
 
5
6
  module EffectiveTestBot
6
7
  mattr_accessor :except
@@ -0,0 +1,33 @@
1
+ module EffectiveTestBot
2
+ module DSL
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ include EffectiveTestBotAssertions
7
+ include EffectiveTestBotFormHelper
8
+ include EffectiveTestBotFormFiller
9
+ include EffectiveTestBotLoginHelper
10
+ include EffectiveTestBotMinitestHelper
11
+ include EffectiveTestBotScreenshotsHelper
12
+ include EffectiveTestBotTestHelper
13
+
14
+ # test/test_botable/
15
+ include BaseTest
16
+ include CrudTest
17
+ include DeviseTest
18
+ include MemberTest
19
+ include PageTest
20
+ include RedirectTest
21
+ include WizardTest
22
+
23
+ # test/concerns/test_botable/
24
+ include TestBotable::BaseDsl
25
+ include TestBotable::CrudDsl
26
+ include TestBotable::DeviseDsl
27
+ include TestBotable::MemberDsl
28
+ include TestBotable::PageDsl
29
+ include TestBotable::RedirectDsl
30
+ include TestBotable::WizardDsl
31
+ end
32
+ end
33
+ end
@@ -12,39 +12,6 @@ module EffectiveTestBot
12
12
  eval File.read("#{config.root}/config/effective_test_bot.rb")
13
13
  end
14
14
 
15
- initializer 'effective_test_bot.test_suite' do |app|
16
- if Rails.env.test?
17
- Rails.application.config.to_prepare do
18
- # test/support/
19
- ActionDispatch::IntegrationTest.include EffectiveTestBotAssertions
20
- ActionDispatch::IntegrationTest.include EffectiveTestBotFormHelper
21
- ActionDispatch::IntegrationTest.include EffectiveTestBotFormFiller
22
- ActionDispatch::IntegrationTest.include EffectiveTestBotLoginHelper
23
- ActionDispatch::IntegrationTest.include EffectiveTestBotMinitestHelper
24
- ActionDispatch::IntegrationTest.include EffectiveTestBotScreenshotsHelper
25
- ActionDispatch::IntegrationTest.include EffectiveTestBotTestHelper
26
-
27
- # test/test_botable/
28
- ActionDispatch::IntegrationTest.include BaseTest
29
- ActionDispatch::IntegrationTest.include CrudTest
30
- ActionDispatch::IntegrationTest.include DeviseTest
31
- ActionDispatch::IntegrationTest.include MemberTest
32
- ActionDispatch::IntegrationTest.include PageTest
33
- ActionDispatch::IntegrationTest.include RedirectTest
34
- ActionDispatch::IntegrationTest.include WizardTest
35
-
36
- # test/concerns/test_botable/
37
- ActionDispatch::IntegrationTest.include TestBotable::BaseDsl
38
- ActionDispatch::IntegrationTest.include TestBotable::CrudDsl
39
- ActionDispatch::IntegrationTest.include TestBotable::DeviseDsl
40
- ActionDispatch::IntegrationTest.include TestBotable::MemberDsl
41
- ActionDispatch::IntegrationTest.include TestBotable::PageDsl
42
- ActionDispatch::IntegrationTest.include TestBotable::RedirectDsl
43
- ActionDispatch::IntegrationTest.include TestBotable::WizardDsl
44
- end
45
- end
46
- end
47
-
48
15
  initializer 'effective_test_bot.middleware' do |app|
49
16
  if Rails.env.test?
50
17
  Rails.application.config.middleware.use EffectiveTestBot::Middleware
@@ -1,3 +1,3 @@
1
1
  module EffectiveTestBot
2
- VERSION = '0.6.0'.freeze
2
+ VERSION = '0.6.1'.freeze
3
3
  end
@@ -18,7 +18,7 @@ module EffectiveTestBot
18
18
  end
19
19
 
20
20
  def overwrite_minitest
21
- template 'test_helper.rb', 'test/test_helper.rb'
21
+ template ('../' * 3) + 'config/test_helper.rb', 'test/test_helper.rb'
22
22
  end
23
23
 
24
24
  def thank_you
@@ -1,5 +1,4 @@
1
1
  require 'rake/testtask'
2
- require 'rails/test_unit/sub_test_task'
3
2
 
4
3
  # rake test:bot
5
4
  # rake test:bot TEST=documents#new
@@ -28,7 +27,11 @@ namespace :test do
28
27
  ENV['TEST'] = nil
29
28
  end
30
29
 
31
- Rake::Task['test:effective_test_bot'].invoke
30
+ if Gem::Version.new(Rails.version) < Gem::Version.new('5.0')
31
+ Rake::Task['test:effective_test_bot'].invoke
32
+ else
33
+ system("rails test #{File.dirname(__FILE__)}/../../test/test_bot/integration/application_test.rb")
34
+ end
32
35
  end
33
36
 
34
37
  desc "Runs 'rake test' with effective_test_bot tour mode enabled"
@@ -46,7 +49,11 @@ namespace :test do
46
49
  namespace :bot do
47
50
  desc 'Runs effective_test_bot environment test'
48
51
  task :environment do
49
- Rake::Task['test:effective_test_bot_environment'].invoke
52
+ if Gem::Version.new(Rails.version) < Gem::Version.new('5.0')
53
+ Rake::Task['test:effective_test_bot_environment'].invoke
54
+ else
55
+ system("rails test #{File.dirname(__FILE__)}/../../test/test_bot/integration/environment_test.rb")
56
+ end
50
57
  end
51
58
 
52
59
  desc 'Deletes all effective_test_bot temporary, failure and tour screenshots'
@@ -114,14 +121,16 @@ namespace :test do
114
121
 
115
122
  # This ensures rake test:prepare is run before rake test:bot or rake test:bot:environment run
116
123
  # Test files stuff is minitest hackery to just load the 1 test file
117
- Rails::TestTask.new('effective_test_bot' => 'test:prepare') do |t|
118
- t.libs << 'test'
119
- t.test_files = FileList["#{File.dirname(__FILE__)}/../../test/test_bot/integration/application_test.rb"]
120
- end
124
+ if Gem::Version.new(Rails.version) < Gem::Version.new('5.0')
125
+ Rake::TestTask.new('effective_test_bot' => 'test:prepare') do |t|
126
+ t.libs << 'test'
127
+ t.test_files = FileList["#{File.dirname(__FILE__)}/../../test/test_bot/integration/application_test.rb"]
128
+ end
121
129
 
122
- Rails::TestTask.new('effective_test_bot_environment' => 'test:prepare') do |t|
123
- t.libs << 'test'
124
- t.test_files = FileList["#{File.dirname(__FILE__)}/../../test/test_bot/integration/environment_test.rb"]
130
+ Rake::TestTask.new('effective_test_bot_environment' => 'test:prepare') do |t|
131
+ t.libs << 'test'
132
+ t.test_files = FileList["#{File.dirname(__FILE__)}/../../test/test_bot/integration/environment_test.rb"]
133
+ end
125
134
  end
126
135
 
127
136
  end
@@ -4,7 +4,7 @@ require 'test_helper'
4
4
  # Scan through every route and run a test suite against it
5
5
 
6
6
  module TestBot
7
- class ApplicationTest < ActionDispatch::IntegrationTest
7
+ class ApplicationTest < ::Capybara::Rails::TestCase
8
8
  CRUD_ACTIONS = %w(index create new edit show update destroy) # Same order as resources :object creates them in
9
9
 
10
10
  class << self
@@ -1,7 +1,7 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  module TestBot
4
- class EnvironmentTest < ActionDispatch::IntegrationTest
4
+ class EnvironmentTest < ::Capybara::Rails::TestCase
5
5
  @@original_users_count = User.count
6
6
  let(:original_users_count) { @@original_users_count }
7
7
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_test_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-07 00:00:00.000000000 Z
11
+ date: 2017-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -178,34 +178,6 @@ dependencies:
178
178
  - - ">="
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: shoulda
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- type: :runtime
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: shoulda-matchers
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :runtime
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ">="
207
- - !ruby/object:Gem::Version
208
- version: '0'
209
181
  - !ruby/object:Gem::Dependency
210
182
  name: rmagick
211
183
  requirement: !ruby/object:Gem::Requirement
@@ -244,16 +216,16 @@ extra_rdoc_files: []
244
216
  files:
245
217
  - MIT-LICENSE
246
218
  - README.md
247
- - Rakefile
248
219
  - app/helpers/effective_test_bot_controller_helper.rb
249
220
  - app/helpers/effective_test_bot_mailer_helper.rb
250
221
  - config/effective_test_bot.rb
222
+ - config/test_helper.rb
251
223
  - lib/effective_test_bot.rb
224
+ - lib/effective_test_bot/dsl.rb
252
225
  - lib/effective_test_bot/engine.rb
253
226
  - lib/effective_test_bot/middleware.rb
254
227
  - lib/effective_test_bot/version.rb
255
228
  - lib/generators/effective_test_bot/install_generator.rb
256
- - lib/generators/templates/test_helper.rb
257
229
  - lib/tasks/effective_test_bot_tasks.rake
258
230
  - test/concerns/test_botable/base_dsl.rb
259
231
  - test/concerns/test_botable/crud_dsl.rb
data/Rakefile DELETED
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env rake
2
- begin
3
- require 'bundler/setup'
4
- rescue LoadError
5
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
- end
7
-
8
- # Testing tasks
9
- APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
10
- load 'rails/tasks/engine.rake'
11
-
12
- Bundler::GemHelper.install_tasks
13
-
14
- require 'rspec/core'
15
- require 'rspec/core/rake_task'
16
-
17
- desc "Run all specs in spec directory (excluding plugin specs)"
18
- RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
19
-
20
- task :default => :spec