UNPKG

topkat-utils

Version:

A comprehensive collection of TypeScript/JavaScript utility functions for common programming tasks. Includes validation, object manipulation, date handling, string formatting, and more. Zero dependencies, fully typed, and optimized for performance.

59 lines 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const object_utils_1 = require("./object-utils"); describe('revertObjectKeysAndValues', () => { it('should revert keys and values for string keys and number values', () => { const input = { a: 1, b: 2, c: 3 }; const result = (0, object_utils_1.revertObjectKeysAndValues)(input); expect(result).toEqual({ 1: 'a', 2: 'b', 3: 'c' }); }); it('should revert keys and values for string keys and string values', () => { const input = { a: 'x', b: 'y', c: 'z' }; const result = (0, object_utils_1.revertObjectKeysAndValues)(input); expect(result).toEqual({ x: 'a', y: 'b', z: 'c' }); }); it('should revert keys and values for string keys and number values (mixed)', () => { const input = { a: 1, b: 'test', c: 42 }; const result = (0, object_utils_1.revertObjectKeysAndValues)(input); expect(result).toEqual({ 1: 'a', test: 'b', 42: 'c' }); }); it('should handle empty object', () => { const input = {}; const result = (0, object_utils_1.revertObjectKeysAndValues)(input); expect(result).toEqual({}); }); it('should handle single key-value pair', () => { const input = { key: 'value' }; const result = (0, object_utils_1.revertObjectKeysAndValues)(input); expect(result).toEqual({ value: 'key' }); }); it('should preserve types correctly', () => { const input = { a: 1, b: 2 }; const result = (0, object_utils_1.revertObjectKeysAndValues)(input); // Type check: result should have keys 1 and 2, values 'a' and 'b' expect(result[1]).toBe('a'); expect(result[2]).toBe('b'); }); it('should handle numeric keys', () => { const input = { 1: 'a', 2: 'b', 3: 'c' }; const result = (0, object_utils_1.revertObjectKeysAndValues)(input); expect(result).toEqual({ a: '1', b: '2', c: '3' }); }); it('should handle duplicate values by keeping the last one', () => { const input = { a: 1, b: 1, c: 2 }; const result = (0, object_utils_1.revertObjectKeysAndValues)(input); // When values are duplicated, the last key overwrites expect(result[1]).toBe('b'); expect(result[2]).toBe('c'); expect(Object.keys(result)).toHaveLength(2); }); it('should handle symbol values', () => { const sym1 = Symbol('test1'); const sym2 = Symbol('test2'); const input = { a: sym1, b: sym2 }; const result = (0, object_utils_1.revertObjectKeysAndValues)(input); expect(result[sym1]).toBe('a'); expect(result[sym2]).toBe('b'); }); }); //# sourceMappingURL=object-utils.spec.js.map