chore: Validation for purchased pricing_plan_quantity (#8809)

- Add validations based on purchased pricing_plan_quantity
- Modify the Dashboard to support the new error message
This commit is contained in:
Sojan Jose
2024-01-30 11:26:07 +04:00
committed by GitHub
parent eeb0113dc5
commit 0805f362d3
4 changed files with 64 additions and 4 deletions

View File

@@ -5,6 +5,44 @@ require 'rails_helper'
RSpec.describe User do
let(:user) { create(:user) }
describe 'before validation for pricing plans' do
let(:new_user) { build(:user) }
context 'when pricing plan is not premium' do
before do
allow(ChatwootHub).to receive(:pricing_plan).and_return('community')
allow(ChatwootHub).to receive(:pricing_plan_quantity).and_return(0)
end
it 'does not add an error to the user' do
new_user.valid?
expect(new_user.errors[:base]).to be_empty
end
end
context 'when pricing plan is premium' do
before do
allow(ChatwootHub).to receive(:pricing_plan).and_return('premium')
end
context 'when the user limit is reached' do
it 'adds an error to the user' do
allow(ChatwootHub).to receive(:pricing_plan_quantity).and_return(1)
user.valid?
expect(user.errors[:base]).to include('User limit reached. Please purchase more licenses from super admin')
end
end
context 'when the user limit is not reached' do
it 'does not add an error to the user' do
allow(ChatwootHub).to receive(:pricing_plan_quantity).and_return(2)
user.valid?
expect(user.errors[:base]).to be_empty
end
end
end
end
describe 'audit log' do
context 'when user is created' do
it 'has no associated audit log created' do