diff --git a/packages/core/src/telemetry/clearcut-logger/event-metadata-key.test.ts b/packages/core/src/telemetry/clearcut-logger/event-metadata-key.test.ts new file mode 100644 index 00000000000..ec94663e871 --- /dev/null +++ b/packages/core/src/telemetry/clearcut-logger/event-metadata-key.test.ts @@ -0,0 +1,38 @@ +import { describe, it, expect } from 'vitest'; +import { + EventMetadataKey, + getEventMetadataKey, +} from './event-metadata-key.js'; + +describe('getEventMetadataKey', () => { + it('should return the correct enum value for a valid key name', () => { + expect(getEventMetadataKey('GEMINI_CLI_START_SESSION_MODEL')).toBe( + EventMetadataKey.GEMINI_CLI_START_SESSION_MODEL, + ); + expect(getEventMetadataKey('GEMINI_CLI_USER_PROMPT_LENGTH')).toBe( + EventMetadataKey.GEMINI_CLI_USER_PROMPT_LENGTH, + ); + expect(getEventMetadataKey('GEMINI_CLI_END_SESSION_ID')).toBe( + EventMetadataKey.GEMINI_CLI_END_SESSION_ID, + ); + }); + + it('should return undefined for an invalid key name', () => { + expect(getEventMetadataKey('INVALID_KEY_NAME')).toBeUndefined(); + expect(getEventMetadataKey('')).toBeUndefined(); + expect(getEventMetadataKey(' ')).toBeUndefined(); + }); + + it('should return undefined for a number passed as a string', () => { + // EventMetadataKey[1] is 'GEMINI_CLI_START_SESSION_MODEL' in standard TS enums, + // but getEventMetadataKey should return undefined because typeof 'GEMINI_CLI_START_SESSION_MODEL' is string, not number. + expect(getEventMetadataKey('1')).toBeUndefined(); + expect(getEventMetadataKey('0')).toBeUndefined(); + }); + + it('should return undefined for built-in object properties', () => { + expect(getEventMetadataKey('toString')).toBeUndefined(); + expect(getEventMetadataKey('valueOf')).toBeUndefined(); + expect(getEventMetadataKey('__proto__')).toBeUndefined(); + }); +}); diff --git a/packages/core/src/utils/errors.test.ts b/packages/core/src/utils/errors.test.ts index ec42a3f954f..67362d48cc6 100644 --- a/packages/core/src/utils/errors.test.ts +++ b/packages/core/src/utils/errors.test.ts @@ -4,7 +4,7 @@ import { BadRequestError, UnauthorizedError, ForbiddenError, -} from './errors'; +} from './errors.js'; describe('toFriendlyError', () => { it('should return the original error if it is not an object', () => {