This update improves the throttling mechanism for conversation meta requests to optimize server load and enhance performance. The changes implement differentiated thresholds based on account size - a 2-second throttle for small accounts (≤100 conversations) and a 10-second throttle for large accounts (>100 conversations). Fixes #11178
35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
import ConversationMetaThrottleManager from '../ConversationMetaThrottleManager';
|
|
|
|
describe('ConversationMetaThrottleManager', () => {
|
|
beforeEach(() => {
|
|
// Reset the lastUpdatedTime before each test
|
|
ConversationMetaThrottleManager.lastUpdatedTime = null;
|
|
});
|
|
|
|
describe('shouldThrottle', () => {
|
|
it('returns false when lastUpdatedTime is not set', () => {
|
|
expect(ConversationMetaThrottleManager.shouldThrottle()).toBe(false);
|
|
});
|
|
|
|
it('returns true when time difference is less than threshold', () => {
|
|
ConversationMetaThrottleManager.markUpdate();
|
|
expect(ConversationMetaThrottleManager.shouldThrottle()).toBe(true);
|
|
});
|
|
|
|
it('returns false when time difference is more than threshold', () => {
|
|
ConversationMetaThrottleManager.lastUpdatedTime = new Date(
|
|
Date.now() - 11000
|
|
);
|
|
expect(ConversationMetaThrottleManager.shouldThrottle()).toBe(false);
|
|
});
|
|
|
|
it('respects custom threshold value', () => {
|
|
ConversationMetaThrottleManager.lastUpdatedTime = new Date(
|
|
Date.now() - 5000
|
|
);
|
|
expect(ConversationMetaThrottleManager.shouldThrottle(3000)).toBe(false);
|
|
expect(ConversationMetaThrottleManager.shouldThrottle(6000)).toBe(true);
|
|
});
|
|
});
|
|
});
|