test: update specs for document usage and reorginze them
This commit is contained in:
@@ -43,9 +43,58 @@ RSpec.describe Account, type: :model do
|
||||
create(:installation_config, name: 'CAPTAIN_CLOUD_PLAN_LIMITS', value: captain_limits.to_json)
|
||||
end
|
||||
|
||||
describe 'captain limits' do
|
||||
context 'captain limits are configured' do
|
||||
before do
|
||||
create(:captain_document, assistant: assistant, account: account, status: :available)
|
||||
create_list(:captain_document, 3, account: account, assistant: assistant, status: :available)
|
||||
end
|
||||
|
||||
context 'document_usage' do
|
||||
it 'updates document count accurately' do
|
||||
account.update_document_usage
|
||||
expect(account.limits['captain_documents']).to eq(3)
|
||||
end
|
||||
|
||||
it 'handles zero documents' do
|
||||
account.captain_documents.destroy_all
|
||||
account.update_document_usage
|
||||
expect(account.limits['captain_documents']).to eq(0)
|
||||
end
|
||||
|
||||
it 'reflects document limits' do
|
||||
document_limits = account.usage_limits[:captain][:documents]
|
||||
|
||||
expect(document_limits[:consumed]).to eq 3
|
||||
expect(document_limits[:current_available]).to eq captain_limits[:startups][:documents] - 3
|
||||
end
|
||||
end
|
||||
|
||||
context 'response usage' do
|
||||
it 'incrementing responses updates usage_limits' do
|
||||
account.increment_response_usage
|
||||
|
||||
responses_limits = account.usage_limits[:captain][:generated_responses]
|
||||
|
||||
expect(account.limits['captain_responses']).to eq 1
|
||||
expect(responses_limits[:consumed]).to eq 1
|
||||
expect(responses_limits[:current_available]).to eq captain_limits[:startups][:responses] - 1
|
||||
end
|
||||
|
||||
it 'reseting responses limits updates usage_limits' do
|
||||
account.limits['captain_responses'] = 30
|
||||
account.save!
|
||||
|
||||
responses_limits = account.usage_limits[:captain][:generated_responses]
|
||||
|
||||
expect(responses_limits[:consumed]).to eq 30
|
||||
expect(responses_limits[:current_available]).to eq captain_limits[:startups][:responses] - 30
|
||||
|
||||
account.reset_response_usage
|
||||
responses_limits = account.usage_limits[:captain][:generated_responses]
|
||||
|
||||
expect(account.limits['captain_responses']).to eq 0
|
||||
expect(responses_limits[:consumed]).to eq 0
|
||||
expect(responses_limits[:current_available]).to eq captain_limits[:startups][:responses]
|
||||
end
|
||||
end
|
||||
|
||||
it 'returns monthly limit accurately' do
|
||||
@@ -56,40 +105,6 @@ RSpec.describe Account, type: :model do
|
||||
end
|
||||
end
|
||||
|
||||
it 'incrementing responses updates usage_limits' do
|
||||
account.increment_response_usage
|
||||
|
||||
responses_limits = account.usage_limits[:captain][:generated_responses]
|
||||
|
||||
expect(account.limits['captain_responses']).to eq 1
|
||||
expect(responses_limits[:consumed]).to eq 1
|
||||
expect(responses_limits[:current_available]).to eq captain_limits[:startups][:responses] - 1
|
||||
end
|
||||
|
||||
it 'reseting responses limits updates usage_limits' do
|
||||
account.limits['captain_responses'] = 30
|
||||
account.save!
|
||||
|
||||
responses_limits = account.usage_limits[:captain][:generated_responses]
|
||||
|
||||
expect(responses_limits[:consumed]).to eq 30
|
||||
expect(responses_limits[:current_available]).to eq captain_limits[:startups][:responses] - 30
|
||||
|
||||
account.reset_response_usage
|
||||
responses_limits = account.usage_limits[:captain][:generated_responses]
|
||||
|
||||
expect(account.limits['captain_responses']).to eq 0
|
||||
expect(responses_limits[:consumed]).to eq 0
|
||||
expect(responses_limits[:current_available]).to eq captain_limits[:startups][:responses]
|
||||
end
|
||||
|
||||
it 'reflects document limits' do
|
||||
document_limits = account.usage_limits[:captain][:documents]
|
||||
|
||||
expect(document_limits[:consumed]).to eq 1
|
||||
expect(document_limits[:current_available]).to eq captain_limits[:startups][:documents] - 1
|
||||
end
|
||||
|
||||
it 'current_available is never out of bounds' do
|
||||
account.limits['captain_responses'] = 3000
|
||||
account.save!
|
||||
|
||||
Reference in New Issue
Block a user