mirror of
https://github.com/thoughtbot/shoulda-matchers.git
synced 2022-11-09 12:01:38 -05:00
721900b8fd
* It changes shoulda-matchers to allow the integration with multiple libraries like active_model and active_record. For example, in a non Rails project isn't possible to use both validate_presence_of and validate_uniqueness_of matchers, because they are from different libraries (one from active_model and the other from active_record respectively). This change allow the integration with multiple libraries. fixes #710
52 lines
1.4 KiB
Ruby
52 lines
1.4 KiB
Ruby
require 'acceptance_spec_helper'
|
|
|
|
describe 'shoulda-matchers integrates with multiple libraries' do
|
|
before do
|
|
create_rails_application
|
|
|
|
write_file 'db/migrate/1_create_users.rb', <<-FILE
|
|
class CreateUsers < ActiveRecord::Migration
|
|
def self.up
|
|
create_table :users do |t|
|
|
t.string :name
|
|
end
|
|
end
|
|
end
|
|
FILE
|
|
|
|
run_rake_tasks!(*%w(db:drop db:create db:migrate))
|
|
|
|
write_file 'app/models/user.rb', <<-FILE
|
|
class User < ActiveRecord::Base
|
|
validates_presence_of :name
|
|
validates_uniqueness_of :name
|
|
end
|
|
FILE
|
|
|
|
add_rspec_file 'spec/models/user_spec.rb', <<-FILE
|
|
describe User do
|
|
it { should validate_presence_of(:name) }
|
|
it { should validate_uniqueness_of(:name) }
|
|
end
|
|
FILE
|
|
|
|
updating_bundle do
|
|
add_rspec_rails_to_project!
|
|
add_shoulda_matchers_to_project(
|
|
test_frameworks: [:rspec],
|
|
libraries: [:active_record, :active_model]
|
|
)
|
|
end
|
|
end
|
|
|
|
context 'when using both active_record and active_model libraries' do
|
|
it 'allows the use of matchers from both libraries' do
|
|
result = run_rspec_suite
|
|
expect(result).to have_output('2 examples, 0 failures')
|
|
expect(result).to have_output('should require name to be set')
|
|
expect(result).to have_output(
|
|
'should require case sensitive unique value for name'
|
|
)
|
|
end
|
|
end
|
|
end
|