0df65909ef
This benchmark exists to test if ordering has any noticeable impact in the test environment.
78 lines
1.9 KiB
Ruby
78 lines
1.9 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe User, benchmark: true do
|
|
describe '.all' do
|
|
before do
|
|
10.times { create(:user) }
|
|
end
|
|
|
|
benchmark_subject { User.all.to_a }
|
|
|
|
it { is_expected.to iterate_per_second(500) }
|
|
end
|
|
|
|
describe '.by_login' do
|
|
before do
|
|
%w{Alice Bob Eve}.each do |name|
|
|
create(:user,
|
|
email: "#{name}@gitlab.com",
|
|
username: name,
|
|
name: name)
|
|
end
|
|
end
|
|
|
|
# The iteration count is based on the query taking little over 1 ms when
|
|
# using PostgreSQL.
|
|
let(:iterations) { 900 }
|
|
|
|
describe 'using a capitalized username' do
|
|
benchmark_subject { User.by_login('Alice') }
|
|
|
|
it { is_expected.to iterate_per_second(iterations) }
|
|
end
|
|
|
|
describe 'using a lowercase username' do
|
|
benchmark_subject { User.by_login('alice') }
|
|
|
|
it { is_expected.to iterate_per_second(iterations) }
|
|
end
|
|
|
|
describe 'using a capitalized Email address' do
|
|
benchmark_subject { User.by_login('Alice@gitlab.com') }
|
|
|
|
it { is_expected.to iterate_per_second(iterations) }
|
|
end
|
|
|
|
describe 'using a lowercase Email address' do
|
|
benchmark_subject { User.by_login('alice@gitlab.com') }
|
|
|
|
it { is_expected.to iterate_per_second(iterations) }
|
|
end
|
|
end
|
|
|
|
describe '.find_by_any_email' do
|
|
let(:user) { create(:user) }
|
|
|
|
describe 'using a user with only a single Email address' do
|
|
let(:email) { user.email }
|
|
|
|
benchmark_subject { User.find_by_any_email(email) }
|
|
|
|
it { is_expected.to iterate_per_second(1000) }
|
|
end
|
|
|
|
describe 'using a user with multiple Email addresses' do
|
|
let(:email) { user.emails.first.email }
|
|
|
|
benchmark_subject { User.find_by_any_email(email) }
|
|
|
|
before do
|
|
10.times do
|
|
user.emails.create(email: FFaker::Internet.email)
|
|
end
|
|
end
|
|
|
|
it { is_expected.to iterate_per_second(1000) }
|
|
end
|
|
end
|
|
end
|