1
0
Fork 0
mirror of https://github.com/thoughtbot/factory_bot_rails.git synced 2022-11-09 11:49:18 -05:00

How far do we actually get into the test

This commit is contained in:
Daniel Colson 2022-05-04 22:08:04 -04:00
parent 6a51925d51
commit e246f7a1a5
No known key found for this signature in database
GPG key ID: 88A364BBE77B1353
3 changed files with 85 additions and 84 deletions

View file

@ -42,4 +42,4 @@ jobs:
- name: Setup project - name: Setup project
run: bundle install run: bundle install
- name: Run test - name: Run test
run: bundle exec rake run: bundle exec cucumber features/reloading.feature

1
.tool-versions Normal file
View file

@ -0,0 +1 @@
ruby 3.0.2

View file

@ -47,89 +47,89 @@ Feature: automatically reloading factory_bot definitions
And I run `bundle binstubs bundler spring --force` with a clean environment And I run `bundle binstubs bundler spring --force` with a clean environment
And I run `bin/spring binstub --all` with a clean environment And I run `bin/spring binstub --all` with a clean environment
And I run `bin/rails test` with Spring enabled And I run `bin/rails test` with Spring enabled
And I append to "app/models/user.rb" with: # And I append to "app/models/user.rb" with:
""" # """
# User model edited # # User model edited
""" # """
And I run `bin/rails test` with Spring enabled # And I run `bin/rails test` with Spring enabled
And I run `bin/spring stop` with a clean environment # And I run `bin/spring stop` with a clean environment
Then the output should contain "1 runs, 1 assertions" Then the output should contain "1 runs, 1 assertions"
And the output should not contain "Failure:" And the output should not contain "Failure:"
Scenario: When using factory_bot_rails together with Spring # Scenario: When using factory_bot_rails together with Spring
I want changes to my factory_bot definitions to trigger a reload # I want changes to my factory_bot definitions to trigger a reload
So that I can use my updated definitions without stopping spring # So that I can use my updated definitions without stopping spring
#
When I write to "app/models/user.rb" with: # When I write to "app/models/user.rb" with:
""" # """
class User < ActiveRecord::Base # class User < ActiveRecord::Base
end # end
""" # """
And I write to "test/factories.rb" with: # And I write to "test/factories.rb" with:
""" # """
# Empty definition file to be picked up by the file watcher # # Empty definition file to be picked up by the file watcher
#
""" # """
And I run `bundle binstubs bundler spring --force` with a clean environment # And I run `bundle binstubs bundler spring --force` with a clean environment
And I run `bin/spring binstub --all` with a clean environment # And I run `bin/spring binstub --all` with a clean environment
And I run `bin/rails test` with Spring enabled # And I run `bin/rails test` with Spring enabled
And I append to "test/factories.rb" with: # And I append to "test/factories.rb" with:
""" # """
FactoryBot.define do # FactoryBot.define do
factory :author, class: User do # factory :author, class: User do
name { "Frank" } # name { "Frank" }
end # end
end # end
""" # """
And I write to "test/unit/user_test.rb" with: # And I write to "test/unit/user_test.rb" with:
""" # """
require 'test_helper' # require 'test_helper'
#
class UserTest < ActiveSupport::TestCase # class UserTest < ActiveSupport::TestCase
test "user factory" do # test "user factory" do
author = FactoryBot.create(:author) # author = FactoryBot.create(:author)
#
assert_equal author.class.object_id, User.object_id # assert_equal author.class.object_id, User.object_id
end # end
end # end
""" # """
And I run `bin/rails test` with Spring enabled # And I run `bin/rails test` with Spring enabled
And I run `bin/spring stop` with a clean environment # And I run `bin/spring stop` with a clean environment
Then the output should contain "1 runs, 1 assertions" # Then the output should contain "1 runs, 1 assertions"
And the output should not contain "Failure:" # And the output should not contain "Failure:"
#
Scenario: Initializing the reloader with I18n support # Scenario: Initializing the reloader with I18n support
When I write to "app/models/user.rb" with: # When I write to "app/models/user.rb" with:
""" # """
class User # class User
TRANSLATION = I18n.translate("translation_key") # TRANSLATION = I18n.translate("translation_key")
end # end
""" # """
And I write to "config/locales/en.yml" with: # And I write to "config/locales/en.yml" with:
""" # """
en: # en:
translation_key: "translation_value" # translation_key: "translation_value"
""" # """
And I write to "test/factories.rb" with: # And I write to "test/factories.rb" with:
""" # """
FactoryBot.define do # FactoryBot.define do
factory :user do # factory :user do
User::TRANSLATION # User::TRANSLATION
end # end
end # end
""" # """
And I write to "test/unit/user_test.rb" with: # And I write to "test/unit/user_test.rb" with:
""" # """
require 'test_helper' # require 'test_helper'
#
class UserTest < ActiveSupport::TestCase # class UserTest < ActiveSupport::TestCase
test "eser factory" do # test "eser factory" do
user = FactoryBot.build(:user) # user = FactoryBot.build(:user)
#
assert_equal "translation_value", User::TRANSLATION # assert_equal "translation_value", User::TRANSLATION
end # end
end # end
""" # """
And I run `bin/rails test` with a clean environment # And I run `bin/rails test` with a clean environment
Then the output should contain "1 runs, 1 assertions" # Then the output should contain "1 runs, 1 assertions"
And the output should not contain "Failure:" # And the output should not contain "Failure:"