MCP Command Proxy

import { CircularBuffer } from './buffer.js'; describe('CircularBuffer', () => { describe('constructor', () => { it('should create a buffer with the specified capacity', () => { const buffer = new CircularBuffer<number>(5); expect(buffer.getCapacity()).toBe(5); expect(buffer.getSize()).toBe(0); }); }); describe('push', () => { it('should add items to the buffer', () => { const buffer = new CircularBuffer<number>(3); buffer.push(1); buffer.push(2); expect(buffer.getSize()).toBe(2); expect(buffer.getAll()).toEqual([1, 2]); }); it('should overwrite old items when full', () => { const buffer = new CircularBuffer<number>(3); buffer.push(1); buffer.push(2); buffer.push(3); buffer.push(4); expect(buffer.getSize()).toBe(3); expect(buffer.getAll()).toEqual([2, 3, 4]); }); }); describe('getAll', () => { it('should return all items in order', () => { const buffer = new CircularBuffer<string>(5); buffer.push('a'); buffer.push('b'); buffer.push('c'); expect(buffer.getAll()).toEqual(['a', 'b', 'c']); }); it('should return an empty array for an empty buffer', () => { const buffer = new CircularBuffer<string>(5); expect(buffer.getAll()).toEqual([]); }); }); describe('clear', () => { it('should remove all items from the buffer', () => { const buffer = new CircularBuffer<number>(5); buffer.push(1); buffer.push(2); buffer.push(3); buffer.clear(); expect(buffer.getSize()).toBe(0); expect(buffer.getAll()).toEqual([]); }); }); });