Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@eppo/js-client-sdk-common",
"version": "4.13.5",
"version": "4.13.6",
"description": "Common library for Eppo JavaScript SDKs (web, react native, and node)",
"main": "dist/index.js",
"files": [
Expand Down
35 changes: 29 additions & 6 deletions src/events/bounded-event-queue.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,35 @@ describe('BoundedEventQueue', () => {
spyLoggerWarn.mockRestore();
});

it('splice should remove the specified number of events', () => {
const queue = new BoundedEventQueue<string>('testQueue', [], maxSize);
queue.push('event1', 'event2', 'event3');
const removed = queue.splice(2);
expect(removed).toEqual(['event3']);
expect([...queue]).toEqual(['event1', 'event2']);
describe('splice', () => {
it('should remove the specified number of events', () => {
const queue = new BoundedEventQueue<string>('testQueue', [], maxSize);
queue.push('event1', 'event2', 'event3');
const removed = queue.splice(2);
expect(removed).toEqual(['event1', 'event2']);
expect([...queue]).toEqual(['event3']);
});

it('should remove all events if count is greater than the number of events', () => {
const queue = new BoundedEventQueue<string>('testQueue', [], maxSize);
queue.push('event1', 'event2', 'event3');
const removed = queue.splice(10);
expect(removed).toEqual(['event1', 'event2', 'event3']);
expect(queue.isEmpty()).toBe(true);
});

it('should return an empty array if the queue is empty', () => {
const queue = new BoundedEventQueue<string>('testQueue', [], maxSize);
const removed = queue.splice(10);
expect(removed).toEqual([]);
});

it('should return an empty array if count is 0', () => {
const queue = new BoundedEventQueue<string>('testQueue', [], maxSize);
queue.push('event1', 'event2', 'event3');
const removed = queue.splice(0);
expect(removed).toEqual([]);
});
});

it('flush should clear the queue and return all events', () => {
Expand Down
2 changes: 1 addition & 1 deletion src/events/bounded-event-queue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export class BoundedEventQueue<T> implements NamedEventQueue<T> {
}

splice(count: number): T[] {
return this.queue.splice(count);
return this.queue.splice(0, count);
}

isEmpty(): boolean {
Expand Down
Loading