226 lines · 5.1 KB · TypeScript
RawDownload
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);  });});