Files
old-holivud2/spec/lib/duplicate_remover_spec.rb
2020-05-31 22:38:19 +02:00

61 lines
1.3 KiB
Ruby

require 'rails_helper'
require 'duplicate_remover'
describe DuplicateRemover do
before(:all) do
Temping.create :person do
validates :name, uniqueness: true
with_columns do |t|
t.string :name
end
end
end
after(:all) do
Temping.teardown
end
context 'when record attribute is unique' do
it 'does not update the record' do
person = create_person("Jane")
DuplicateRemover.new(person, :name).perform!
expect(person.name).to eq("Jane")
end
end
context 'when record attribute is a duplicate' do
it 'updates the record with a unique name' do
create_person("Jane")
person = create_person("Jane")
DuplicateRemover.new(person, :name).perform!
expect(person.name).to eq("Jane (2)")
end
end
context 'when record attribute is a duplicate multiple times' do
it 'updates the record with a unique name' do
create_person("Jane")
create_person("Jane (2)")
create_person("Jane (3)")
person = create_person("Jane")
DuplicateRemover.new(person, :name).perform!
expect(person.name).to eq("Jane (4)")
end
end
private
def create_person(name)
Person.new(name: name) do |person|
person.save(validate: false)
end
end
end