Skip to content

Commit e6cfade

Browse files
committed
feat: string equals ignore case
1 parent 5a753c1 commit e6cfade

File tree

2 files changed

+63
-2
lines changed

2 files changed

+63
-2
lines changed

electron/common/string/__tests__/string-utils.test.ts

+57-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { includesIgnoreCase } from '../string.utils';
1+
import { equalsIgnoreCase, includesIgnoreCase } from '../string.utils';
22

33
describe('string-utils', () => {
44
describe('#includesIgnoreCase', () => {
@@ -29,4 +29,60 @@ describe('string-utils', () => {
2929
expect(result).toBe(true);
3030
});
3131
});
32+
33+
describe('#equalsIgnoreCase', () => {
34+
test('when the values are equal then returns true', () => {
35+
const value1 = 'foo';
36+
const value2 = 'foo';
37+
38+
const result = equalsIgnoreCase(value1, value2);
39+
40+
expect(result).toBe(true);
41+
});
42+
43+
test('when the values are not equal then returns false', () => {
44+
const value1 = 'foo';
45+
const value2 = 'bar';
46+
47+
const result = equalsIgnoreCase(value1, value2);
48+
49+
expect(result).toBe(false);
50+
});
51+
52+
test('when the values are equal but with different casing then returns true', () => {
53+
const value1 = 'foo';
54+
const value2 = 'FOO';
55+
56+
const result = equalsIgnoreCase(value1, value2);
57+
58+
expect(result).toBe(true);
59+
});
60+
61+
test('when first value is undefined then returns false', () => {
62+
const value1 = undefined;
63+
const value2 = 'foo';
64+
65+
const result = equalsIgnoreCase(value1, value2);
66+
67+
expect(result).toBe(false);
68+
});
69+
70+
test('when second value is undefined then returns false', () => {
71+
const value1 = 'foo';
72+
const value2 = undefined;
73+
74+
const result = equalsIgnoreCase(value1, value2);
75+
76+
expect(result).toBe(false);
77+
});
78+
79+
test('when both values are undefined then returns true', () => {
80+
const value1 = undefined;
81+
const value2 = undefined;
82+
83+
const result = equalsIgnoreCase(value1, value2);
84+
85+
expect(result).toBe(true);
86+
});
87+
});
3288
});
+6-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1+
import type { Maybe } from '../types';
2+
13
export const includesIgnoreCase = (
24
values: Array<string>,
35
valueToFind: string
46
): boolean => {
57
return values.some((value) => equalsIgnoreCase(value, valueToFind));
68
};
79

8-
export const equalsIgnoreCase = (a: string, b: string): boolean => {
10+
export const equalsIgnoreCase = (
11+
a: Maybe<string>,
12+
b: Maybe<string>
13+
): boolean => {
914
return a?.toLowerCase() === b?.toLowerCase();
1015
};

0 commit comments

Comments
 (0)