import mergePublications from "./mergePublications";
import type { PublicationType } from "mobility-toolbox-js/types";
describe("mergePublications", () => {
it("should merge publications with same publication windows and textual contents", () => {
const publications = [
{
publicationLines: [
{
category: "DISRUPTION",
hasIcon: true,
lines: [
{
name: "510",
operatorRef: "SBG",
},
{
name: "510",
operatorRef: "SBG",
},
{
name: "510",
operatorRef: "SBG",
},
],
mot: "BUS",
},
],
publicationStops: [],
publicationWindows: [],
serviceCondition: "DIVERTED",
serviceConditionGroup: "CHANGES",
severity: "NORMAL",
severityGroup: "NORMAL",
textualContentLarge: null,
textualContentMedium: {
de: {
consequence: "",
description:
"Zwischen Denzlingen Mattenbühl und Denzlingen Bahnhof kommt es vom 26. Februar 2026 ab 08:00 Uhr bis auf Weiteres zu einer Umleitung und Haltausfällen wegen einer Baumaßnahme. Betroffen sind die Linien 510 und 512. Es kommt zu folgenden Änderungen:
\n Umleitung Linie 510: Die Haltestellen Denzlingen Gewerbegebiet bis Denzlingen Mattenbühl werden nicht bedient.
Die Änderungen sind in der elektronischen Fahrplanauskunft EFA hinterlegt.",
durationText: "",
reason: "",
recommendation: "",
summary:
"Linien 510 und 512: Umleitung und Haltentfall wegen einer Baumaßnahme",
},
},
},
{
publicationLines: [
{
category: "DISRUPTION",
hasIcon: true,
lines: [
{
name: "512",
operatorRef: "SBG",
},
],
mot: "BUS",
},
],
publicationStops: [],
publicationWindows: [],
serviceCondition: "DIVERTED",
serviceConditionGroup: "CHANGES",
severity: "NORMAL",
severityGroup: "NORMAL",
textualContentLarge: null,
textualContentMedium: {
de: {
consequence: "",
description:
"Zwischen Denzlingen Mattenbühl und Denzlingen Bahnhof kommt es vom 26. Februar 2026 ab 08:00 Uhr bis auf Weiteres zu einer Umleitung und Haltausfällen wegen einer Baumaßnahme. Betroffen sind die Linien 510 und 512. Es kommt zu folgenden Änderungen:
\n Umleitung Linie 510: Die Haltestellen Denzlingen Gewerbegebiet bis Denzlingen Mattenbühl werden nicht bedient.
Die Änderungen sind in der elektronischen Fahrplanauskunft EFA hinterlegt.",
durationText: "",
reason: "",
recommendation: "",
summary:
"Linien 510 und 512: Umleitung und Haltentfall wegen einer Baumaßnahme",
},
},
},
] as PublicationType[];
const merged = mergePublications(publications);
expect(merged).toHaveLength(1);
expect(merged[0].publicationLines).toHaveLength(2);
expect(merged[0].publicationLines?.[0].lines[0].name).toBe("510");
expect(merged[0].publicationLines?.[1].lines[0].name).toBe("512");
});
});