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') })