2025-05-16 16:36:50 -07:00
|
|
|
/**
|
|
|
|
|
* @license
|
|
|
|
|
* Copyright 2025 Google LLC
|
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
*/
|
|
|
|
|
|
2026-05-13 14:22:56 -07:00
|
|
|
import { afterEach, describe, expect, it } from 'vitest';
|
2026-03-04 05:42:59 +05:30
|
|
|
import {
|
2025-05-31 12:49:28 -07:00
|
|
|
DEFAULT_CONTEXT_FILENAME,
|
2026-05-13 14:22:56 -07:00
|
|
|
getAllGeminiMdFilenames,
|
|
|
|
|
resetGeminiMdFilename,
|
|
|
|
|
setGeminiMdFilename,
|
2025-05-31 12:49:28 -07:00
|
|
|
} from './memoryTool.js';
|
2025-05-16 16:36:50 -07:00
|
|
|
|
2026-05-13 14:22:56 -07:00
|
|
|
describe('memoryTool filename helpers', () => {
|
2025-05-16 16:36:50 -07:00
|
|
|
afterEach(() => {
|
2026-05-13 15:45:30 -04:00
|
|
|
resetGeminiMdFilename(DEFAULT_CONTEXT_FILENAME);
|
2025-05-31 12:49:28 -07:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
describe('setGeminiMdFilename', () => {
|
2026-05-13 14:22:56 -07:00
|
|
|
it('appends to currentGeminiMdFilename when a valid new name is provided', () => {
|
2025-05-31 12:49:28 -07:00
|
|
|
const newName = 'CUSTOM_CONTEXT.md';
|
|
|
|
|
setGeminiMdFilename(newName);
|
2026-05-13 15:45:30 -04:00
|
|
|
expect(getAllGeminiMdFilenames()).toEqual([
|
|
|
|
|
newName,
|
|
|
|
|
DEFAULT_CONTEXT_FILENAME,
|
|
|
|
|
]);
|
2025-05-31 12:49:28 -07:00
|
|
|
});
|
|
|
|
|
|
2026-05-13 14:22:56 -07:00
|
|
|
it('does not update currentGeminiMdFilename if the new name is empty or whitespace', () => {
|
2026-05-13 15:45:30 -04:00
|
|
|
const initialNames = getAllGeminiMdFilenames();
|
2025-05-31 12:49:28 -07:00
|
|
|
setGeminiMdFilename(' ');
|
2026-05-13 15:45:30 -04:00
|
|
|
expect(getAllGeminiMdFilenames()).toEqual(initialNames);
|
2025-05-31 12:49:28 -07:00
|
|
|
|
|
|
|
|
setGeminiMdFilename('');
|
2026-05-13 15:45:30 -04:00
|
|
|
expect(getAllGeminiMdFilenames()).toEqual(initialNames);
|
2025-05-31 12:49:28 -07:00
|
|
|
});
|
2025-06-13 09:19:08 -07:00
|
|
|
|
2026-05-13 14:22:56 -07:00
|
|
|
it('handles adding an array of filenames', () => {
|
2025-06-13 09:19:08 -07:00
|
|
|
const newNames = ['CUSTOM_CONTEXT.md', 'ANOTHER_CONTEXT.md'];
|
|
|
|
|
setGeminiMdFilename(newNames);
|
2026-05-13 15:45:30 -04:00
|
|
|
expect(getAllGeminiMdFilenames()).toEqual([
|
|
|
|
|
...newNames,
|
|
|
|
|
DEFAULT_CONTEXT_FILENAME,
|
|
|
|
|
]);
|
|
|
|
|
});
|
|
|
|
|
|
2026-05-13 14:22:56 -07:00
|
|
|
it('ensures uniqueness when adding names', () => {
|
2026-05-13 15:45:30 -04:00
|
|
|
setGeminiMdFilename(DEFAULT_CONTEXT_FILENAME);
|
|
|
|
|
expect(getAllGeminiMdFilenames()).toEqual([DEFAULT_CONTEXT_FILENAME]);
|
|
|
|
|
|
|
|
|
|
setGeminiMdFilename(['NEW.md', 'NEW.md']);
|
|
|
|
|
expect(getAllGeminiMdFilenames()).toEqual([
|
|
|
|
|
'NEW.md',
|
|
|
|
|
DEFAULT_CONTEXT_FILENAME,
|
|
|
|
|
]);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
describe('resetGeminiMdFilename', () => {
|
2026-05-13 14:22:56 -07:00
|
|
|
it('replaces all filenames with the provided one', () => {
|
2026-05-13 15:45:30 -04:00
|
|
|
setGeminiMdFilename('OTHER.md');
|
|
|
|
|
resetGeminiMdFilename('RESET.md');
|
|
|
|
|
expect(getAllGeminiMdFilenames()).toEqual(['RESET.md']);
|
|
|
|
|
});
|
|
|
|
|
|
2026-05-13 14:22:56 -07:00
|
|
|
it('resets to default if no argument provided', () => {
|
2026-05-13 15:45:30 -04:00
|
|
|
resetGeminiMdFilename('OTHER.md');
|
|
|
|
|
resetGeminiMdFilename(DEFAULT_CONTEXT_FILENAME);
|
|
|
|
|
expect(getAllGeminiMdFilenames()).toEqual([DEFAULT_CONTEXT_FILENAME]);
|
|
|
|
|
});
|
|
|
|
|
|
2026-05-13 14:22:56 -07:00
|
|
|
it('handles array reset', () => {
|
2026-05-13 15:45:30 -04:00
|
|
|
resetGeminiMdFilename(['A.md', 'B.md']);
|
|
|
|
|
expect(getAllGeminiMdFilenames()).toEqual(['A.md', 'B.md']);
|
2025-06-13 09:19:08 -07:00
|
|
|
});
|
2025-05-16 16:36:50 -07:00
|
|
|
});
|
|
|
|
|
});
|