mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-06 11:18:19 +02:00
Depends on D165820 Differential Revision: https://phabricator.services.mozilla.com/D165821
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
import { Dedupe } from "common/Dedupe.sys.mjs";
|
|
|
|
describe("Dedupe", () => {
|
|
let instance;
|
|
beforeEach(() => {
|
|
instance = new Dedupe();
|
|
});
|
|
describe("group", () => {
|
|
it("should remove duplicates inside the groups", () => {
|
|
const beforeItems = [
|
|
[1, 1, 1],
|
|
[2, 2, 2],
|
|
[3, 3, 3],
|
|
];
|
|
const afterItems = [[1], [2], [3]];
|
|
assert.deepEqual(instance.group(...beforeItems), afterItems);
|
|
});
|
|
it("should remove duplicates between groups, favouring earlier groups", () => {
|
|
const beforeItems = [
|
|
[1, 2, 3],
|
|
[2, 3, 4],
|
|
[3, 4, 5],
|
|
];
|
|
const afterItems = [[1, 2, 3], [4], [5]];
|
|
assert.deepEqual(instance.group(...beforeItems), afterItems);
|
|
});
|
|
it("should remove duplicates from groups of objects", () => {
|
|
instance = new Dedupe(item => item.id);
|
|
const beforeItems = [
|
|
[{ id: 1 }, { id: 1 }, { id: 2 }],
|
|
[{ id: 1 }, { id: 3 }, { id: 2 }],
|
|
[{ id: 1 }, { id: 2 }, { id: 5 }],
|
|
];
|
|
const afterItems = [[{ id: 1 }, { id: 2 }], [{ id: 3 }], [{ id: 5 }]];
|
|
assert.deepEqual(instance.group(...beforeItems), afterItems);
|
|
});
|
|
});
|
|
});
|