|
1 | 1 |
|
| 2 | +import { logger } from '@sentry/utils'; |
2 | 3 | import { insertToFlagBuffer } from '../../src/utils/featureFlags';
|
3 | 4 | import type { FeatureFlag } from '@sentry/types';
|
| 5 | +import { vi } from 'vitest'; |
4 | 6 |
|
5 | 7 | describe('flags', () => {
|
6 | 8 | describe('insertToFlagBuffer()', () => {
|
| 9 | + const loggerSpy = vi.spyOn(logger, 'error'); |
| 10 | + |
| 11 | + afterEach(() => { |
| 12 | + loggerSpy.mockClear(); |
| 13 | + }); |
| 14 | + |
7 | 15 | it('maintains ordering and evicts the oldest entry', () => {
|
8 | 16 | const buffer: FeatureFlag[] = [];
|
9 | 17 | const maxSize = 3;
|
@@ -47,14 +55,29 @@ describe('flags', () => {
|
47 | 55 | ]);
|
48 | 56 | });
|
49 | 57 |
|
50 |
| - it('errors when maxSize is less than current buffer size', () => { |
| 58 | + it('logs error and is a no-op when buffer is larger than maxSize', () => { |
51 | 59 | const buffer: FeatureFlag[] = [
|
52 | 60 | { flag: 'feat1', result: true },
|
53 | 61 | { flag: 'feat2', result: true },
|
54 | 62 | ];
|
55 | 63 |
|
56 |
| - expect(() => insertToFlagBuffer(buffer, 'feat1', true, 1)).toThrowError(); |
57 |
| - expect(() => insertToFlagBuffer(buffer, 'feat1', true, -2)).toThrowError(); |
| 64 | + insertToFlagBuffer(buffer, 'feat1', true, 1); |
| 65 | + expect(loggerSpy).toHaveBeenCalledWith( |
| 66 | + expect.stringContaining('[Feature Flags] insertToFlagBuffer called on a buffer larger than maxSize'), |
| 67 | + ); |
| 68 | + expect(buffer).toEqual([ |
| 69 | + { flag: 'feat1', result: true }, |
| 70 | + { flag: 'feat2', result: true }, |
| 71 | + ]); |
| 72 | + |
| 73 | + insertToFlagBuffer(buffer, 'feat1', true, -2); |
| 74 | + expect(loggerSpy).toHaveBeenCalledWith( |
| 75 | + expect.stringContaining('[Feature Flags] insertToFlagBuffer called on a buffer larger than maxSize'), |
| 76 | + ); |
| 77 | + expect(buffer).toEqual([ |
| 78 | + { flag: 'feat1', result: true }, |
| 79 | + { flag: 'feat2', result: true }, |
| 80 | + ]); |
58 | 81 | });
|
59 | 82 | })
|
60 | 83 | })
|
0 commit comments