fmdz
Joined 2 years ago
Joined 2 years ago
It's an open source and lightweight Windows tray app that shows your LLMs usage status for Codex and Claude Code along with token counts and how much you're spending daily and over the last 30 days.
Original implementation for MacOS/Linux is CodexBar, so this is Windows version.
You have full control over generated tests. Also, I put focus on putting as much control as possible, so you can set different inputs to reach higher quality of generated tests.
At the end, you add or append file with generated tests, so you have full control over them.
They are generated by AI, so unit tests will be implemented by case definitions.
TypeScript utility method I generated cases and tests for -------
static merge<T extends { id?: string }>(arr1: T[], arr2: T[]): T[] {
arr1 = arr1 || [];
arr2 = arr2 || [];
// Create a map for quick access to items in arr1 by id
const map = new Map<string, T>(arr1.map((item) => [item.id, item]));
// Iterate over arr2 and merge or add items
arr2.forEach((item) => {
if (map.has(item.id)) {
// If item exists in arr1, merge it
map.set(item.id, { ...map.get(item.id), ...item });
} else {
// If item doesn't exist in arr1, add it
map.set(item.id, item);
}
});
// Convert the map back to an array
return Array.from(map.values());
}
Generated test cases
-------------
POSITIVE - Merging two arrays with unique and overlapping objects by id
Given: Two arrays of objects with unique and overlapping ids
When: Merging two arrays of objects where some objects have matching ids
Then: Should return an array of merged objects with no duplicates and combined properties for overlapping idsNEGATIVE - Merging arrays when second array contains objects with undefined ids Given: First array of objects with valid ids and second array with some objects having undefined ids When: Second array contains objects with undefined ids Then: Should throw an error or handle undefined ids gracefully without merging those objects
EDGE CASE - Merging arrays where all objects in the second array have matching ids in the first array Given: Two arrays of objects with ids where the second array's objects all have ids that match those in the first array When: Every object in the second array has a matching id in the first array Then: Should return an array with objects from the first array having their properties updated by the second array's objects
Generated unit tests by test cases -------------
---> 1st case ---------------
it('Merging two arrays with unique and overlapping objects by id should return an array of merged objects with no duplicates and combined properties for overlapping ids', () => { // Arrange const arr1 = [{ id: '1', name: 'Alice' }, { id: '2', name: 'Bob' }]; const arr2 = [{ id: '2', name: 'Robert' }, { id: '3', name: 'Charlie' }]; const expectedResult = [ { id: '1', name: 'Alice' }, { id: '2', name: 'Robert' }, // Note: 'Bob' is overwritten by 'Robert' { id: '3', name: 'Charlie' } ];
// Act
const result = merge(arr1, arr2);
// Assert
expect(result).toEqual(expectedResult);
});---> 2nd case ----------------
it('Merging arrays when second array contains objects with undefined ids should throw an error or handle undefined ids gracefully', () => { // Arrange const arr1 = [{ id: '1', name: 'Alice' }, { id: '2', name: 'Bob' }]; const arr2 = [{ id: '2', age: 30 }, { name: 'Charlie' }]; // Charlie has undefined id
// Act and Assert
expect(() => MyArrayUtils.merge(arr1, arr2)).toThrow();
});---> 3rd case ----------------
it('Merging arrays where all objects in the second array have matching ids in the first array', () => { // Arrange const arr1 = [{ id: '1', propA: 'A1' }, { id: '2', propA: 'A2' }]; const arr2 = [{ id: '1', propB: 'B1' }, { id: '2', propB: 'B2' }]; const expectedResult = [ { id: '1', propA: 'A1', propB: 'B1' }, { id: '2', propA: 'A2', propB: 'B2' } ];
// Act
const result = merge(arr1, arr2);
// Assert
expect(result).toEqual(expectedResult);
});That is infinite process, we're all stuck within :-)
snippethub.io - Powerful AI features and unit tests generation in VS Code
Twitter: @fahirmdz