Files
dwa/src/data/entries.test.ts
2024-03-13 20:43:48 +01:00

56 lines
1.5 KiB
TypeScript

import { expect, it } from "vitest"
import { describe } from "vitest"
import { faker } from '@faker-js/faker'
import { parseFromPossibleString } from "./entries"
import moment from "moment"
export function generateList<E>(length: number, generate: () => E) {
const arr: Array<E> = []
for (let i = 0; i < length; i++) {
arr.push(generate());
}
return arr;
}
describe('function for managing entries data entity', () => {
function generateListWithWrongDate() {
return generateList(10, () => <any>{
name: faker.word.noun(),
text: faker.lorem.paragraph(),
last_reset: faker.word.sample()
})
}
function generateListWithNoName() {
return generateList(10, () => <any>{
text: faker.lorem.paragraph(),
last_reset: moment()
})
}
function generateListWithCorrectData() {
return generateList(10, () => <any>{
name: faker.word.noun(),
text: faker.lorem.paragraph(),
last_reset: moment()
})
}
it('fails to parse localstorage string because of wrong date', () => {
const data = generateListWithWrongDate()
expect(parseFromPossibleString(JSON.stringify(data)).length).toBe(0)
})
it('fails to parse localstorage string because no name was parsed', () => {
const data = generateListWithNoName()
expect(parseFromPossibleString(JSON.stringify(data)).length).toBe(0)
})
it('succeeds to parse localstorage string witht he correct data', () => {
const data = generateListWithCorrectData()
expect(parseFromPossibleString(JSON.stringify(data)).length).toBe(10)
})
})