44 lines
1.2 KiB
Ruby
44 lines
1.2 KiB
Ruby
|
require 'spec_helper_min'
|
||
|
|
||
|
module Carto
|
||
|
describe UsernameProposer do
|
||
|
describe '#find_unique' do
|
||
|
before(:all) do
|
||
|
@users = Array.new
|
||
|
@users << FactoryGirl.create(:carto_user, username: 'manolo')
|
||
|
@users << FactoryGirl.create(:carto_user, username: 'manolo-1')
|
||
|
end
|
||
|
|
||
|
after(:all) do
|
||
|
@users.map(&:destroy)
|
||
|
end
|
||
|
|
||
|
it 'returns same if available' do
|
||
|
UsernameProposer.find_unique('escobar').should eq 'escobar'
|
||
|
end
|
||
|
|
||
|
it 'returns unique if not available' do
|
||
|
UsernameProposer.find_unique('manolo').should eq 'manolo-2'
|
||
|
end
|
||
|
|
||
|
it 'fills in the gaps' do
|
||
|
@users << FactoryGirl.create(:carto_user, username: 'manolo-3')
|
||
|
|
||
|
UsernameProposer.find_unique('manolo').should eq 'manolo-2'
|
||
|
end
|
||
|
|
||
|
it 'returns same if max_retries is 0' do
|
||
|
UsernameProposer.find_unique('manolo', max_retries: 0).should eq 'manolo'
|
||
|
end
|
||
|
|
||
|
it 'starts at given offset' do
|
||
|
UsernameProposer.find_unique('manolo', offset: 8).should eq 'manolo-8'
|
||
|
end
|
||
|
|
||
|
it 'gives up if max_retries is reached' do
|
||
|
UsernameProposer.find_unique('manolo', max_retries: 1).should eq 'manolo-1'
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|