@rr0/cms
Version:
RR0 Content Management System (CMS)
45 lines (44 loc) • 2.82 kB
JavaScript
import { beforeEach, describe, expect, test } from "@javarome/testscript";
import { CsvMapper } from "../CsvMapper.js";
import { rr0TestUtil } from "../../../test/index.js";
import { baseOvniFranceTestCases } from "./BaseOvniFranceTestCases.js";
import fs from "fs";
import { baseOvniFranceDatasource, baseOvniFranceSortComparator } from "./BaseOvniFranceRR0Mapping.js";
import { BaseOvniFranceCaseSummaryCsvMapper } from "./BaseOvniFranceCaseSummaryCsvMapper.js";
describe("Base OVNI France CSV mapping", () => {
const dataDate = new Date("2024-08-12 00:00:00 GMT+1");
let context;
let mapper;
beforeEach(() => {
context = rr0TestUtil.newContext("time/1/9/7/0/03/index.html");
mapper = new CsvMapper();
});
test("columns for a case", () => {
mapper.map(context, baseOvniFranceTestCases[0], dataDate);
expect(Array.from(mapper.fields)).toEqual(["caseNumber", "url", "city", "depCode", "dateTime", "physicalEffect", "witnessEffect", "entities", "landing"]);
});
test("values of a case", () => {
const obj = baseOvniFranceTestCases[0];
const csvRow = mapper.map(context, obj, dataDate);
expect(csvRow).toBe(`${obj.id},${obj.url},${obj.city},${obj.depCode},${obj.time.toString()},${obj.landing},${obj.entities},${obj.witnessEffect},${obj.physicalEffect}`);
});
test("write", () => {
const csvContents = mapper.mapAll(context, baseOvniFranceTestCases, dataDate);
const case1 = baseOvniFranceTestCases[0];
expect(csvContents).toBe(`caseNumber,url,city,depCode,dateTime,physicalEffect,witnessEffect,entities,landing
${case1.id},http://baseovnifrance.free.fr/listgen.php?typlist=20&page=0&numobs=2760,Le Mans,72,1970-03 16:00,false,false,false,false
1650,http://baseovnifrance.free.fr/listgen.php?typlist=20&page=0&numobs=1650,Lyon,69,1970-03-12 07:40,false,false,false,false
3088,http://baseovnifrance.free.fr/listgen.php?typlist=20&page=0&numobs=3088,Briançon,05,1970-03-16 20:00,false,false,false,false
1655,http://baseovnifrance.free.fr/listgen.php?typlist=20&page=0&numobs=1655,Chambon sur Voueize,23,1970-03-17 19:15,false,false,false,false`);
});
test("read", () => {
const fileMapper = new CsvMapper("&");
const data = fs.readFileSync("time/1/9/7/7/03/05_03_24_1709676761.txt", { encoding: "latin1" });
const csvMapper = new BaseOvniFranceCaseSummaryCsvMapper(baseOvniFranceDatasource.baseUrl, baseOvniFranceDatasource.searchPath, baseOvniFranceDatasource.authors);
const cases = fileMapper.parse(data)
.map(csvCase => csvMapper.map(context, csvCase, dataDate))
.sort(baseOvniFranceSortComparator);
const expected = baseOvniFranceTestCases.sort(baseOvniFranceSortComparator);
expect(cases).toEqual(expected);
});
});