71 lines
2.1 KiB
Ruby
71 lines
2.1 KiB
Ruby
require_relative '../../spec_helper'
|
|
|
|
include CartoDB
|
|
|
|
describe CartoDB::PlatformLimits::Importer::UserConcurrentSyncsAmount do
|
|
describe '#importer-limits' do
|
|
before(:all) do
|
|
@user = FactoryGirl.create(:valid_user)
|
|
end
|
|
|
|
after(:all) do
|
|
@user.destroy
|
|
end
|
|
|
|
it 'checks concurrent sync rate limit' do
|
|
syncs_limit = CartoDB::PlatformLimits::Importer::UserConcurrentSyncsAmount::MAX_SYNCS_PER_USER
|
|
|
|
limit = CartoDB::PlatformLimits::Importer::UserConcurrentSyncsAmount.new({
|
|
user: @user,
|
|
redis: {
|
|
db: $users_metadata
|
|
}
|
|
})
|
|
|
|
limit.peek.should eq 0
|
|
limit.is_over_limit?.should eq false
|
|
limit.peek.should eq 0
|
|
|
|
limit.maximum_limit?.should eq syncs_limit
|
|
limit.remaining_limit?.should eq syncs_limit
|
|
|
|
limit.is_over_limit!.should eq false
|
|
limit.peek.should eq 1
|
|
|
|
limit.remaining_limit?.should eq syncs_limit-1
|
|
|
|
limit.is_over_limit?.should eq false
|
|
limit.is_over_limit!.should eq false
|
|
limit.peek.should eq 2
|
|
|
|
limit.is_over_limit?.should eq false
|
|
# First increments, then checks
|
|
limit.is_over_limit!.should eq true
|
|
limit.peek.should eq 3
|
|
limit.is_over_limit?.should eq true
|
|
|
|
limit.is_over_limit!.should eq true
|
|
limit.is_over_limit?.should eq true
|
|
limit.peek.should eq 3
|
|
limit.decrement!
|
|
limit.peek.should eq 2
|
|
limit.is_over_limit?.should eq false
|
|
|
|
limit.decrement!
|
|
limit.peek.should eq 1
|
|
limit.decrement!
|
|
limit.decrement!
|
|
limit.decrement!
|
|
limit.peek.should eq 0
|
|
|
|
limit.is_within_limit!.should eq true
|
|
limit.peek.should eq 1
|
|
limit.is_within_limit!.should eq true
|
|
limit.peek.should eq 2
|
|
limit.is_within_limit!.should eq false
|
|
limit.peek.should eq 3
|
|
end
|
|
end
|
|
|
|
end
|