import fs from "fs"; import test from "ava"; import fetchData, { splitNewLines, cleanupArrayOfStrings, stringCsvToDataObject, } from "../data.js"; test("splitNewLines", (t) => { const result = splitNewLines(`foo\nbar`); t.deepEqual(result, ["foo", "bar"]); }); test("cleanupArrayOfStrings", (t) => { const result = cleanupArrayOfStrings(["", " foo", "bar ", ""]); t.deepEqual(result, ["foo", "bar"]); }); test("clean an array made from a string of new lines", (t) => { const result = cleanupArrayOfStrings( splitNewLines(` foo bar `) ); t.deepEqual(result, ["foo", "bar"]); }); test("stringCsvToDataObject", (t) => { const result = stringCsvToDataObject("they,them,them, their,themself"); t.deepEqual(result, { nominative: "they", accusative: "them", pronominalPossessive: "them", predicativePossessive: "their", reflexive: "themself", }); }); test("stringCsvToDataObject with missing pronominalPossessive", (t) => { const result = stringCsvToDataObject("they,them,,their,themself"); t.deepEqual(result, { nominative: "they", accusative: "them", pronominalPossessive: "them", predicativePossessive: "their", reflexive: "themself", }); }); test("database.csv loads into array of valid data", (t) => { const data = fetchData(); t.truthy(Array.isArray(data)); t.is(typeof data[0], "object"); t.is(typeof data[0].nominative, "string"); });