aboutsummaryrefslogtreecommitdiffstats
path: root/test/jsUtils.test.ts
diff options
context:
space:
mode:
authorLibravatar Ricardo Cino <ricardo@cino.io>2022-06-26 01:26:19 +0200
committerLibravatar GitHub <noreply@github.com>2022-06-25 23:26:19 +0000
commit465b5772763ccb8d4970d4c55e30a518abb7be3e (patch)
treee929e34910dbf6a3958cdc4de77dc1dcae93e7b0 /test/jsUtils.test.ts
parentchore: add more strict types in electron directory (#367) (diff)
downloadferdium-app-465b5772763ccb8d4970d4c55e30a518abb7be3e.tar.gz
ferdium-app-465b5772763ccb8d4970d4c55e30a518abb7be3e.tar.zst
ferdium-app-465b5772763ccb8d4970d4c55e30a518abb7be3e.zip
chore: moved tests to ./test directory (#366)
* chore: allow coverage to be generated from non-tested files
Diffstat (limited to 'test/jsUtils.test.ts')
-rw-r--r--test/jsUtils.test.ts113
1 files changed, 113 insertions, 0 deletions
diff --git a/test/jsUtils.test.ts b/test/jsUtils.test.ts
new file mode 100644
index 000000000..8ef69b46f
--- /dev/null
+++ b/test/jsUtils.test.ts
@@ -0,0 +1,113 @@
1import * as jsUtils from '../src/jsUtils';
2
3describe('jsUtils', () => {
4 describe('ifUndefinedString', () => {
5 it('returns the default value for undefined input', () => {
6 const result = jsUtils.ifUndefinedString(undefined, 'abc');
7 expect(result).toEqual('abc');
8 });
9
10 it('returns the default value for null input', () => {
11 const result = jsUtils.ifUndefinedString(null, 'abc');
12 expect(result).toEqual('abc');
13 });
14
15 it('returns the non-default input value for regular string input', () => {
16 const result = jsUtils.ifUndefinedString('some random string', 'abc');
17 expect(result).toEqual('some random string');
18 });
19 });
20
21 describe('ifUndefined<string>', () => {
22 it('returns the default value for undefined input', () => {
23 const result = jsUtils.ifUndefined<string>(undefined, 'abc');
24 expect(result).toEqual('abc');
25 });
26
27 it('returns the default value for null input', () => {
28 const result = jsUtils.ifUndefined<string>(null, 'abc');
29 expect(result).toEqual('abc');
30 });
31
32 it('returns the non-default input value for regular string input', () => {
33 const result = jsUtils.ifUndefined<string>('some random string', 'abc');
34 expect(result).toEqual('some random string');
35 });
36 });
37
38 describe('ifUndefined<boolean>', () => {
39 it('returns the default value for undefined input', () => {
40 const result = jsUtils.ifUndefined<boolean>(undefined, false);
41 expect(result).toEqual(false);
42 });
43
44 it('returns the default value for null input', () => {
45 const result = jsUtils.ifUndefined<boolean>(null, true);
46 expect(result).toEqual(true);
47 });
48
49 it('returns the non-default input value for regular boolean input', () => {
50 const result = jsUtils.ifUndefined<boolean>(true, false);
51 expect(result).toEqual(true);
52 });
53 });
54
55 describe('ifUndefined<number>', () => {
56 it('returns the default value for undefined input', () => {
57 const result = jsUtils.ifUndefined<number>(undefined, 123);
58 expect(result).toEqual(123);
59 });
60
61 it('returns the default value for null input', () => {
62 const result = jsUtils.ifUndefined<number>(null, 234);
63 expect(result).toEqual(234);
64 });
65
66 it('returns the non-default input value for regular Number input', () => {
67 const result = jsUtils.ifUndefined<number>(1234, 5678);
68 expect(result).toEqual(1234);
69 });
70 });
71
72 describe('convertToJSON', () => {
73 it('returns undefined for undefined input', () => {
74 const result = jsUtils.convertToJSON(undefined);
75 expect(result).toEqual(undefined);
76 });
77
78 it('returns null for null input', () => {
79 const result = jsUtils.convertToJSON(null);
80 expect(result).toEqual(null);
81 });
82
83 it('returns the object for the object input', () => {
84 const result = jsUtils.convertToJSON(['a', 'b']);
85 expect(result).toEqual(['a', 'b']);
86 });
87
88 it('returns the parsed JSON for the string input', () => {
89 const result1 = jsUtils.convertToJSON('{"a":"b","c":"d"}');
90 expect(result1).toEqual({ a: 'b', c: 'd' });
91
92 const result2 = jsUtils.convertToJSON('[{"a":"b"},{"c":"d"}]');
93 expect(result2).toEqual([{ a: 'b' }, { c: 'd' }]);
94 });
95 });
96
97 describe('cleanseJSObject', () => {
98 xit('throws error for undefined input', () => {
99 const result = jsUtils.cleanseJSObject(undefined);
100 expect(result).toThrow();
101 });
102
103 xit('throws error for null input', () => {
104 const result = jsUtils.cleanseJSObject(null);
105 expect(result).toThrow();
106 });
107
108 it('returns cloned object for valid input', () => {
109 const result = jsUtils.cleanseJSObject([{ a: 'b' }, { c: 'd' }]);
110 expect(result).toEqual([{ a: 'b' }, { c: 'd' }]);
111 });
112 });
113});