test: 💍 task record

add test for fromRecordable method
This commit is contained in:
Julien Calixte
2023-05-01 19:10:24 +02:00
parent 435670a0e6
commit c51acf1aae
3 changed files with 42 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
import { toISODate } from '@/shared/types/date'
import { faker } from '@faker-js/faker'
import type { TimeRange } from './time-range'
export const createTimeRangeFixture = (
partialTimeRange?: Partial<TimeRange>
): TimeRange => {
const [start, end] = faker.date.betweens(
toISODate(faker.date.past(1)),
toISODate(new Date()),
2
)
return {
start: partialTimeRange?.start ?? toISODate(start),
end: partialTimeRange?.end ?? toISODate(end)
}
}

View File

@@ -0,0 +1,23 @@
import { toISODate } from '@/shared/types/date'
import { faker } from '@faker-js/faker'
import { describe, expect, it } from 'vitest'
import type { Recordable } from '../interfaces/recordable'
import { createTimeRangeFixture } from '../interfaces/time-range.fixture'
import { TaskRecord } from './task-record'
describe('Task Record', () => {
it('creates a Record from a Recordable', () => {
const recordable: Recordable = {
taskId: faker.datatype.uuid(),
notes: faker.lorem.paragraphs(),
start: toISODate(faker.date.past(1)),
end: toISODate(faker.date.past()),
breakTime: createTimeRangeFixture(),
stepRecords: {
[faker.datatype.uuid()]: createTimeRangeFixture()
}
}
expect(TaskRecord.fromRecordable(recordable)).toEqual(recordable)
})
})

View File

@@ -22,6 +22,7 @@ export class TaskRecord implements Recordable {
taskRecord.start = recordable.start taskRecord.start = recordable.start
taskRecord.end = recordable.end taskRecord.end = recordable.end
taskRecord.breakTime = recordable.breakTime taskRecord.breakTime = recordable.breakTime
taskRecord.notes = recordable.notes
return taskRecord return taskRecord
} }