@rr0/cms
Version:
RR0 Content Management System (CMS)
79 lines (78 loc) • 3.8 kB
JavaScript
import { beforeEach, describe, expect, test } from "@javarome/testscript";
import { cmsTestUtil } from "../../../test/index.js";
import { Level2Date as EdtfDate } from "@rr0/time";
import { baseOvniFranceTestCases } from "./BaseOvniFranceTestCases.js";
import { baseOvniFranceDatasource } from "./BaseOvniFranceRR0Mapping.js";
import { leMans72 } from "../../../org/eu/fr/region/pdl/72/LeMans/LeMans.js";
import { lyon69 } from "../../../org/eu/fr/region/ara/69/Lyon/Lyon.js";
import { briancon05 } from "../../../org/eu/fr/region/pac/05/briancon/Briancon.js";
import { chambonSurVoueize23 } from "../../../org/eu/fr/region/naq/23/Chambon/Chambon.js";
import { BaseOvniFranceCaseSummaryRR0Mapper } from "./BaseOvniFranceCaseSummaryRR0Mapper.js";
function expectedSource(datasource, dataDate, caseNumber) {
const url = new URL(datasource.searchPath + "?typlist=20&page=0&numobs=" + caseNumber, datasource.baseUrl).href;
return {
previousSourceRefs: [], events: [],
url, title: "cas n° " + caseNumber, authors: datasource.authors,
publication: { publisher: datasource.copyright, time: EdtfDate.fromDate(dataDate) }
};
}
describe("BaseOvniFranceCaseSource", () => {
let context;
beforeEach(() => {
context = cmsTestUtil.time.newHtmlContext("1/9/7/0/03/index.html");
context.time.setYear(1970);
context.time.setMonth(3);
});
test("map as RR0 cases", { skip: true }, async () => {
const dataDate = new Date("2024-08-12 00:00:00 GMT+1");
const baseOvniFranceRR0Mapper = new BaseOvniFranceCaseSummaryRR0Mapper(cmsTestUtil.departmentService, cmsTestUtil.cityService, baseOvniFranceDatasource.baseUrl, baseOvniFranceDatasource.copyright, baseOvniFranceDatasource.authors);
const mapped = baseOvniFranceTestCases.map(sourceCase => baseOvniFranceRR0Mapper.map(context, sourceCase, dataDate));
const nativeCase1 = baseOvniFranceTestCases[0];
const nativeCase1Time = nativeCase1.time;
const nativeCase2 = baseOvniFranceTestCases[1];
const nativeCase2Time = nativeCase2.time;
const nativeCase3 = baseOvniFranceTestCases[2];
const nativeCase3Time = nativeCase3.time;
const nativeCase4 = baseOvniFranceTestCases[3];
const nativeCase4Time = nativeCase4.time;
const expected = [
{
type: "event",
eventType: "sighting",
events: [],
time: nativeCase1Time,
place: leMans72.places[0],
description: "observation",
sources: [expectedSource(baseOvniFranceDatasource, dataDate, nativeCase1.id)]
},
{
type: "event",
eventType: "sighting",
events: [],
time: nativeCase2Time,
place: lyon69.places[0],
description: "observation",
sources: [expectedSource(baseOvniFranceDatasource, dataDate, nativeCase2.id)]
},
{
type: "event",
eventType: "sighting",
events: [],
time: nativeCase3Time,
place: briancon05.places[0],
description: "observation",
sources: [expectedSource(baseOvniFranceDatasource, dataDate, nativeCase3.id)]
},
{
type: "event",
eventType: "sighting",
events: [],
time: nativeCase4Time,
place: chambonSurVoueize23.places[0],
description: "observation",
sources: [expectedSource(baseOvniFranceDatasource, dataDate, nativeCase4.id)]
}
];
expect(mapped).toEqual(expected);
});
});