mirror of
https://github.com/thoughtbot/shoulda-matchers.git
synced 2022-11-09 12:01:38 -05:00
![Nitin Singh](/assets/img/avatar_default.png)
* Fix the undefined method error for non rails project due to use of many? method * Add tests for inclusion validation for non rails app. * Remove unnecessary spaces. * Rubocop offenses. Co-authored-by: Nitin S <nitin.singh@edcast.com> Co-authored-by: = <=>
79 lines
2.1 KiB
Ruby
79 lines
2.1 KiB
Ruby
require 'acceptance_spec_helper'
|
|
|
|
describe 'shoulda-matchers integrates with an ActiveModel project' do
|
|
before do
|
|
create_active_model_project
|
|
|
|
write_file 'lib/user.rb', <<-FILE
|
|
require 'active_model'
|
|
|
|
class User
|
|
include ActiveModel::Validations
|
|
attr_accessor :gender
|
|
|
|
validates :gender, inclusion: { in: %w(male female) }
|
|
end
|
|
FILE
|
|
|
|
write_file 'spec/user_spec.rb', <<-FILE
|
|
require 'spec_helper'
|
|
require 'user'
|
|
include Shoulda::Matchers::ActiveModel
|
|
|
|
describe User do
|
|
context 'when gender is valid' do
|
|
it { is_expected.to validate_inclusion_of(:gender).in_array(%w(male female)) }
|
|
end
|
|
context 'when gender is invalid' do
|
|
it { is_expected.to validate_inclusion_of(:gender).in_array(%w(transgender female)) }
|
|
end
|
|
end
|
|
FILE
|
|
|
|
write_file 'load_dependencies.rb', <<-FILE
|
|
require 'active_model'
|
|
require 'shoulda-matchers'
|
|
|
|
puts ActiveModel::VERSION::STRING
|
|
puts "Loaded all dependencies without errors"
|
|
FILE
|
|
|
|
updating_bundle do
|
|
add_rspec_to_project
|
|
add_shoulda_matchers_to_project(
|
|
manually: true,
|
|
with_configuration: false,
|
|
)
|
|
|
|
write_file 'spec/spec_helper.rb', <<-FILE
|
|
require 'active_model'
|
|
require 'shoulda-matchers'
|
|
|
|
Shoulda::Matchers.configure do |config|
|
|
config.integrate do |with|
|
|
with.test_framework :rspec
|
|
|
|
with.library :active_model
|
|
end
|
|
end
|
|
FILE
|
|
end
|
|
end
|
|
|
|
context 'when using active model library' do
|
|
it 'and loads without errors' do
|
|
result = run_command_within_bundle('ruby load_dependencies.rb')
|
|
|
|
expect(result).to have_output('Loaded all dependencies without errors')
|
|
end
|
|
|
|
it 'allows use of inclusion matcher from active model library' do
|
|
result = run_rspec_tests('spec/user_spec.rb')
|
|
|
|
expect(result).to have_output('2 examples, 1 failure')
|
|
expect(result).to have_output(
|
|
'gender: ["is not included in the list"]',
|
|
)
|
|
end
|
|
end
|
|
end
|