summaryrefslogtreecommitdiff
path: root/packages/backend/test/unit/misc
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-05-25 12:34:09 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-05-28 21:31:40 -0400
commit35dfde838be2dd50ee37d420f87a0cac917e621c (patch)
treed637d0c156384d2021c8d207c8b765dcc847df70 /packages/backend/test/unit/misc
parentminor optimization to diff-arrays (diff)
downloadsharkey-35dfde838be2dd50ee37d420f87a0cac917e621c.tar.gz
sharkey-35dfde838be2dd50ee37d420f87a0cac917e621c.tar.bz2
sharkey-35dfde838be2dd50ee37d420f87a0cac917e621c.zip
add function diffArraysSimple for more efficient change detection
Diffstat (limited to 'packages/backend/test/unit/misc')
-rw-r--r--packages/backend/test/unit/misc/diff-arrays.ts40
1 files changed, 39 insertions, 1 deletions
diff --git a/packages/backend/test/unit/misc/diff-arrays.ts b/packages/backend/test/unit/misc/diff-arrays.ts
index a2dee50652..b6db5e2eca 100644
--- a/packages/backend/test/unit/misc/diff-arrays.ts
+++ b/packages/backend/test/unit/misc/diff-arrays.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { diffArrays } from '@/misc/diff-arrays.js';
+import { diffArrays, diffArraysSimple } from '@/misc/diff-arrays.js';
describe(diffArrays, () => {
it('should return empty result when both inputs are null', () => {
@@ -51,3 +51,41 @@ describe(diffArrays, () => {
expect(result.removed).toEqual(['b', 'd']);
});
});
+
+describe(diffArraysSimple, () => {
+ it('should return false when both inputs are null', () => {
+ const result = diffArraysSimple(null, null);
+ expect(result).toBe(false);
+ });
+
+ it('should return false when both inputs are empty', () => {
+ const result = diffArraysSimple([], []);
+ expect(result).toBe(false);
+ });
+
+ it('should return true when before is populated and after is empty', () => {
+ const result = diffArraysSimple([1, 2, 3], []);
+ expect(result).toBe(true);
+ });
+
+ it('should return true when before is empty and after is populated', () => {
+ const result = diffArraysSimple([], [1, 2, 3]);
+ expect(result).toBe(true);
+ });
+
+ it('should return true when values have changed', () => {
+ const result = diffArraysSimple(
+ ['a', 'a', 'b', 'c'],
+ ['a', 'b', 'c', 'd'],
+ );
+ expect(result).toBe(true);
+ });
+
+ it('should return false when values have not changed', () => {
+ const result = diffArraysSimple(
+ ['a', 'a', 'b', 'c'],
+ ['a', 'b', 'c', 'c'],
+ );
+ expect(result).toBe(false);
+ });
+});