Fire-crawl / src /lib /__tests__ /deduplicate-obs-array.test.ts
Echo-AI-official's picture
Upload 280 files
0e759d2 verified
import { deduplicateObjectsArray } from "../extract/helpers/deduplicate-objs-array";
describe("deduplicateObjectsArray", () => {
it("should deduplicate the array", async () => {
const objArray = {
lawyers: [
{
name: "James D. Schull",
email: null,
title: "Personal Injury Attorney",
"phone-number": null,
"practice-areas": [
{
area: "Personal Injury",
},
],
},
{
name: "James D. Schull",
email: null,
title: "Personal Injury Attorney",
"phone-number": null,
"practice-areas": [
{
area: "Personal Injury",
},
],
},
{
name: "James D. Schull",
email: null,
title: "Personal Injury Attorney",
"phone-number": null,
"practice-areas": [
{
area: "Personal Injury",
},
],
},
],
};
const expected = {
lawyers: [
{
name: "James D. Schull",
email: null,
title: "Personal Injury Attorney",
"phone-number": null,
"practice-areas": [
{
area: "Personal Injury",
},
],
},
],
};
const result = await deduplicateObjectsArray(objArray);
expect(result).toEqual(expected);
});
it("should not deduplicate if not necessary", async () => {
const objArray = {
lawyers: [
{
name: "James D. Schull",
email: null,
title: "Personal Injury Attorney",
"phone-number": null,
"practice-areas": [
{
area: "Personal Injury",
},
],
},
{
name: "John Doe",
email: null,
title: "Personal Injury Attorney",
"phone-number": null,
"practice-areas": [
{
area: "Personal Injury",
},
],
},
],
};
const result = await deduplicateObjectsArray(objArray);
expect(result).toEqual(objArray);
});
it("should handle an empty array", async () => {
const objArray = { lawyers: [] };
const expected = { lawyers: [] };
const result = await deduplicateObjectsArray(objArray);
expect(result).toEqual(expected);
});
it("should handle objects with different properties", async () => {
const objArray = {
lawyers: [
{
name: "James D. Schull",
email: "james@example.com",
title: "Personal Injury Attorney",
},
{
name: "James D. Schull",
email: "james@example.com",
title: "Personal Injury Attorney",
"phone-number": "123-456-7890",
},
],
};
const expected = {
lawyers: [
{
name: "James D. Schull",
email: "james@example.com",
title: "Personal Injury Attorney",
},
{
name: "James D. Schull",
email: "james@example.com",
title: "Personal Injury Attorney",
"phone-number": "123-456-7890",
},
],
};
const result = await deduplicateObjectsArray(objArray);
expect(result).toEqual(expected);
});
it("should handle objects with same properties but different values", async () => {
const objArray = {
lawyers: [
{
name: "James D. Schull",
email: "james1@example.com",
title: "Personal Injury Attorney",
},
{
name: "James D. Schull",
email: "james2@example.com",
title: "Personal Injury Attorney",
},
],
};
const expected = {
lawyers: [
{
name: "James D. Schull",
email: "james1@example.com",
title: "Personal Injury Attorney",
},
{
name: "James D. Schull",
email: "james2@example.com",
title: "Personal Injury Attorney",
},
],
};
const result = await deduplicateObjectsArray(objArray);
expect(result).toEqual(expected);
});
it("should handle nested identical objects", async () => {
const objArray = {
lawyers: [
{
name: "James D. Schull",
email: null,
title: "Personal Injury Attorney",
"practice-areas": [
{
area: "Personal Injury",
},
],
},
{
name: "James D. Schull",
email: null,
title: "Personal Injury Attorney",
"practice-areas": [
{
area: "Personal Injury",
},
],
},
],
};
const expected = {
lawyers: [
{
name: "James D. Schull",
email: null,
title: "Personal Injury Attorney",
"practice-areas": [
{
area: "Personal Injury",
},
],
},
],
};
const result = await deduplicateObjectsArray(objArray);
expect(result).toEqual(expected);
});
});