test: 💍 task record
add test for fromRecordable method
This commit is contained in:
18
src/modules/record/interfaces/time-range.fixture.ts
Normal file
18
src/modules/record/interfaces/time-range.fixture.ts
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
23
src/modules/record/models/task-record.test.ts
Normal file
23
src/modules/record/models/task-record.test.ts
Normal 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)
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user