Skip to content

Commit ab976e0

Browse files
committed
feat: use map object instead of enum; use getter for map utils with lazy init
1 parent f98bd56 commit ab976e0

20 files changed

+1005
-952
lines changed

__tests__/get-error-code.spec.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
import { describe, it, expect } from "vitest";
2-
import { getErrorCode } from "../src/helpers";
1+
import { describe, expect, it } from 'vitest';
2+
import { getErrorCode } from '../src/helpers';
33

4-
describe("getErrorCode", () => {
5-
it("returns the error code for valid error names", () => {
6-
expect(getErrorCode("InternalError")).toBe(1);
7-
expect(getErrorCode("BadValue")).toBe(2);
8-
expect(getErrorCode("DuplicateKey")).toBe(11000);
9-
expect(getErrorCode("Unauthorized")).toBe(13);
10-
expect(getErrorCode("AuthenticationFailed")).toBe(18);
4+
describe('getErrorCode', () => {
5+
it('returns the error code for valid error names', () => {
6+
expect(getErrorCode('InternalError')).toBe(1);
7+
expect(getErrorCode('BadValue')).toBe(2);
8+
expect(getErrorCode('DuplicateKey')).toBe(11000);
9+
expect(getErrorCode('Unauthorized')).toBe(13);
10+
expect(getErrorCode('AuthenticationFailed')).toBe(18);
1111
});
1212

13-
it("returns undefined for unknown error names", () => {
14-
expect(getErrorCode("NonExistentError")).toBeUndefined();
15-
expect(getErrorCode("")).toBeUndefined();
16-
expect(getErrorCode("invalidname")).toBeUndefined();
13+
it('returns undefined for unknown error names', () => {
14+
expect(getErrorCode('NonExistentError')).toBeUndefined();
15+
expect(getErrorCode('')).toBeUndefined();
16+
expect(getErrorCode('invalidname')).toBeUndefined();
1717
});
1818

19-
it("handles case sensitivity", () => {
20-
expect(getErrorCode("internalerror")).toBeUndefined();
21-
expect(getErrorCode("INTERNALERROR")).toBeUndefined();
22-
expect(getErrorCode("InternalError")).toBe(1);
19+
it('handles case sensitivity', () => {
20+
expect(getErrorCode('internalerror')).toBeUndefined();
21+
expect(getErrorCode('INTERNALERROR')).toBeUndefined();
22+
expect(getErrorCode('InternalError')).toBe(1);
2323
});
2424

25-
it("returns number type for valid names", () => {
26-
const result = getErrorCode("InternalError");
27-
expect(typeof result).toBe("number");
25+
it('returns number type for valid names', () => {
26+
const result = getErrorCode('InternalError');
27+
expect(typeof result).toBe('number');
2828
expect(result).toBe(1);
2929
});
3030
});
Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,34 @@
1-
import { describe, it, expect } from "vitest";
2-
import { getErrorDescription } from "../src/helpers";
1+
import { describe, expect, it } from 'vitest';
2+
import { getErrorDescription } from '../src/helpers';
33

4-
describe("getErrorDescription", () => {
5-
it("returns the description for error codes with descriptions", () => {
6-
expect(getErrorDescription(1)).toBe("An unspecified internal error occurred.");
7-
expect(getErrorDescription(2)).toBe("The value provided is invalid.");
8-
expect(getErrorDescription(6)).toBe("The host is unreachable.");
4+
describe('getErrorDescription', () => {
5+
it('returns the description for error codes with descriptions', () => {
6+
expect(getErrorDescription(1)).toBe(
7+
'An unspecified internal error occurred.',
8+
);
9+
expect(getErrorDescription(2)).toBe('The value provided is invalid.');
10+
expect(getErrorDescription(6)).toBe('The host is unreachable.');
911
});
1012

11-
it("returns undefined for error codes without descriptions", () => {
13+
it('returns undefined for error codes without descriptions', () => {
1214
expect(getErrorDescription(10)).toBeUndefined();
1315
});
1416

15-
it("returns undefined for unknown error codes", () => {
17+
it('returns undefined for unknown error codes', () => {
1618
expect(getErrorDescription(99999)).toBeUndefined();
1719
expect(getErrorDescription(-1)).toBeUndefined();
1820
expect(getErrorDescription(0)).toBeUndefined();
1921
});
2022

21-
it("handles NaN, Infinity/-Infinity", () => {
23+
it('handles NaN, Infinity/-Infinity', () => {
2224
expect(getErrorDescription(NaN)).toBeUndefined();
2325
expect(getErrorDescription(Infinity)).toBeUndefined();
2426
expect(getErrorDescription(-Infinity)).toBeUndefined();
2527
});
2628

27-
it("returns string type for codes with descriptions", () => {
29+
it('returns string type for codes with descriptions', () => {
2830
const result = getErrorDescription(1);
29-
expect(typeof result).toBe("string");
30-
expect(result).toBe("An unspecified internal error occurred.");
31+
expect(typeof result).toBe('string');
32+
expect(result).toBe('An unspecified internal error occurred.');
3133
});
3234
});
Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,58 @@
1-
import { describe, it, expect } from "vitest";
2-
import { getErrorDetails } from "../src/helpers";
1+
import { describe, expect, it } from 'vitest';
2+
import { getErrorDetails } from '../src/helpers';
33

4-
describe("getErrorDetails", () => {
5-
it("returns full error object for valid error codes", () => {
4+
describe('getErrorDetails', () => {
5+
it('returns full error object for valid error codes', () => {
66
const result = getErrorDetails(1);
77
expect(result).toEqual({
88
code: 1,
9-
name: "InternalError",
10-
description: "An unspecified internal error occurred."
9+
name: 'InternalError',
10+
description: 'An unspecified internal error occurred.',
1111
});
1212

1313
const duplicateKeyResult = getErrorDetails(11000);
1414
expect(duplicateKeyResult).toEqual({
1515
code: 11000,
16-
name: "DuplicateKey"
16+
name: 'DuplicateKey',
1717
});
1818
});
1919

20-
it("returns full error object for valid error names", () => {
21-
const result = getErrorDetails("InternalError");
20+
it('returns full error object for valid error names', () => {
21+
const result = getErrorDetails('InternalError');
2222
expect(result).toEqual({
2323
code: 1,
24-
name: "InternalError",
25-
description: "An unspecified internal error occurred."
24+
name: 'InternalError',
25+
description: 'An unspecified internal error occurred.',
2626
});
2727

28-
const duplicateKeyResult = getErrorDetails("DuplicateKey");
28+
const duplicateKeyResult = getErrorDetails('DuplicateKey');
2929
expect(duplicateKeyResult).toEqual({
3030
code: 11000,
31-
name: "DuplicateKey"
31+
name: 'DuplicateKey',
3232
});
3333
});
3434

35-
it("returns undefined for unknown error codes", () => {
35+
it('returns undefined for unknown error codes', () => {
3636
expect(getErrorDetails(99999)).toBeUndefined();
3737
expect(getErrorDetails(-1)).toBeUndefined();
3838
expect(getErrorDetails(0)).toBeUndefined();
3939
});
4040

41-
it("returns undefined for unknown error names", () => {
42-
expect(getErrorDetails("NonExistentError")).toBeUndefined();
43-
expect(getErrorDetails("")).toBeUndefined();
44-
expect(getErrorDetails("invalidname")).toBeUndefined();
41+
it('returns undefined for unknown error names', () => {
42+
expect(getErrorDetails('NonExistentError')).toBeUndefined();
43+
expect(getErrorDetails('')).toBeUndefined();
44+
expect(getErrorDetails('invalidname')).toBeUndefined();
4545
});
4646

47-
it("handles NaN, Infinity/-Infinity for numeric input", () => {
47+
it('handles NaN, Infinity/-Infinity for numeric input', () => {
4848
expect(getErrorDetails(NaN)).toBeUndefined();
4949
expect(getErrorDetails(Infinity)).toBeUndefined();
5050
expect(getErrorDetails(-Infinity)).toBeUndefined();
5151
});
5252

53-
it("handles case sensitivity for string input", () => {
54-
expect(getErrorDetails("internalerror")).toBeUndefined();
55-
expect(getErrorDetails("INTERNALERROR")).toBeUndefined();
56-
expect(getErrorDetails("InternalError")).toBeDefined();
53+
it('handles case sensitivity for string input', () => {
54+
expect(getErrorDetails('internalerror')).toBeUndefined();
55+
expect(getErrorDetails('INTERNALERROR')).toBeUndefined();
56+
expect(getErrorDetails('InternalError')).toBeDefined();
5757
});
5858
});

__tests__/get-error-name.spec.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
import { describe, it, expect } from "vitest";
2-
import { getErrorName } from "../src/helpers";
1+
import { describe, expect, it } from 'vitest';
2+
import { getErrorName } from '../src/helpers';
33

4-
describe("getErrorName", () => {
5-
it("returns the error name for valid error codes", () => {
6-
expect(getErrorName(1)).toBe("InternalError");
7-
expect(getErrorName(2)).toBe("BadValue");
8-
expect(getErrorName(11000)).toBe("DuplicateKey");
9-
expect(getErrorName(13)).toBe("Unauthorized");
10-
expect(getErrorName(18)).toBe("AuthenticationFailed");
4+
describe('getErrorName', () => {
5+
it('returns the error name for valid error codes', () => {
6+
expect(getErrorName(1)).toBe('InternalError');
7+
expect(getErrorName(2)).toBe('BadValue');
8+
expect(getErrorName(11000)).toBe('DuplicateKey');
9+
expect(getErrorName(13)).toBe('Unauthorized');
10+
expect(getErrorName(18)).toBe('AuthenticationFailed');
1111
});
1212

13-
it("returns undefined for unknown error codes", () => {
13+
it('returns undefined for unknown error codes', () => {
1414
expect(getErrorName(99999)).toBeUndefined();
1515
expect(getErrorName(-1)).toBeUndefined();
1616
expect(getErrorName(0)).toBeUndefined();
1717
});
1818

19-
it("returns undefined for NaN, Infinity/-Infinity", () => {
19+
it('returns undefined for NaN, Infinity/-Infinity', () => {
2020
expect(getErrorName(NaN)).toBeUndefined();
2121
expect(getErrorName(Infinity)).toBeUndefined();
2222
expect(getErrorName(-Infinity)).toBeUndefined();
2323
});
2424

25-
it("returns string type for valid codes", () => {
25+
it('returns string type for valid codes', () => {
2626
const result = getErrorName(1);
27-
expect(typeof result).toBe("string");
28-
expect(result).toBe("InternalError");
27+
expect(typeof result).toBe('string');
28+
expect(result).toBe('InternalError');
2929
});
3030
});
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
1-
import { describe, it, expect } from "vitest";
2-
import { isKnownErrorCode } from "../src/helpers";
1+
import { describe, expect, it } from 'vitest';
2+
import { isKnownErrorCode } from '../src/helpers';
33

4-
describe("isKnownErrorCode", () => {
5-
it("returns true for valid error codes", () => {
4+
describe('isKnownErrorCode', () => {
5+
it('returns true for valid error codes', () => {
66
expect(isKnownErrorCode(1)).toBe(true);
77
expect(isKnownErrorCode(2)).toBe(true);
88
expect(isKnownErrorCode(11000)).toBe(true);
99
expect(isKnownErrorCode(13)).toBe(true);
1010
expect(isKnownErrorCode(18)).toBe(true);
1111
});
1212

13-
it("returns false for unknown error codes", () => {
13+
it('returns false for unknown error codes', () => {
1414
expect(isKnownErrorCode(99999)).toBe(false);
1515
expect(isKnownErrorCode(-1)).toBe(false);
1616
expect(isKnownErrorCode(0)).toBe(false);
1717
});
1818

19-
it("handles NaN, Infinity/-Infinity", () => {
19+
it('handles NaN, Infinity/-Infinity', () => {
2020
expect(isKnownErrorCode(NaN)).toBe(false);
2121
expect(isKnownErrorCode(Infinity)).toBe(false);
2222
expect(isKnownErrorCode(-Infinity)).toBe(false);
2323
});
2424

25-
it("returns boolean type", () => {
26-
expect(typeof isKnownErrorCode(1)).toBe("boolean");
27-
expect(typeof isKnownErrorCode(99999)).toBe("boolean");
25+
it('returns boolean type', () => {
26+
expect(typeof isKnownErrorCode(1)).toBe('boolean');
27+
expect(typeof isKnownErrorCode(99999)).toBe('boolean');
2828
});
2929
});

0 commit comments

Comments
 (0)