From 765b130e54374cb933b10fad9c8f4a3a0347df96 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Mon, 1 May 2023 19:11:38 +0200 Subject: [PATCH] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20fixtures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit change naming convention for fixture methods --- .../components/TaskRecordPreview.test.ts | 8 ++++---- .../hooks/useTaskRecordMetadata.test.ts | 4 ++-- .../record/interfaces/recordable.fixture.ts | 2 +- .../record/interfaces/time-range.fixture.ts | 2 +- src/modules/record/models/task-record.test.ts | 6 +++--- .../record/services/breaktime-service.test.ts | 10 +++++----- src/modules/task/components/StepInput.test.ts | 8 ++------ .../task/infra/adaptStepsToTextarea.test.ts | 19 +++++++------------ src/modules/task/models/step.fixture.ts | 2 +- src/modules/task/models/task.fixture.ts | 6 +++--- src/modules/task/models/task.test.ts | 14 +++++++------- src/tests/utils.ts | 4 ++-- 12 files changed, 38 insertions(+), 47 deletions(-) diff --git a/src/modules/record/components/TaskRecordPreview.test.ts b/src/modules/record/components/TaskRecordPreview.test.ts index 45de6d9..d7e17f3 100644 --- a/src/modules/record/components/TaskRecordPreview.test.ts +++ b/src/modules/record/components/TaskRecordPreview.test.ts @@ -1,17 +1,17 @@ -import { createTaskFixture } from '@/modules/task/models/task.fixture' +import { fixtureTask } from '@/modules/task/models/task.fixture' import { router } from '@/router' import { toISODate } from '@/shared/types/date' import { withPlugins } from '@/tests/utils' import { faker } from '@faker-js/faker' import { mount } from '@vue/test-utils' import { describe, expect, it, vi } from 'vitest' -import { createRecordableFixture } from '../interfaces/recordable.fixture' +import { fixtureRecordable } from '../interfaces/recordable.fixture' import TaskRecordPreview from './TaskRecordPreview.vue' const mountTaskRecordPreview = (withRecord = false) => { - const task = createTaskFixture() + const task = fixtureTask() const end = toISODate(new Date('2023-04-17T20:00:00.000Z')) - const record = createRecordableFixture({ + const record = fixtureRecordable({ taskId: task.id, stepRecords: { [faker.datatype.uuid()]: { diff --git a/src/modules/record/hooks/useTaskRecordMetadata.test.ts b/src/modules/record/hooks/useTaskRecordMetadata.test.ts index ae20701..91f6bba 100644 --- a/src/modules/record/hooks/useTaskRecordMetadata.test.ts +++ b/src/modules/record/hooks/useTaskRecordMetadata.test.ts @@ -2,7 +2,7 @@ import { toISODate } from '@/shared/types/date' import { faker } from '@faker-js/faker' import { describe, expect, it } from 'vitest' import { ref } from 'vue' -import { createRecordableFixture } from '../interfaces/recordable.fixture' +import { fixtureRecordable } from '../interfaces/recordable.fixture' import { TaskRecord } from '../models/task-record' import { useTaskRecordMetadata } from './useTaskRecordMetadata' @@ -15,7 +15,7 @@ describe('use task record metadata', () => { it('returns the right duration', () => { const end = toISODate(new Date('2023-04-17T20:00:00.000Z')) - const record = createRecordableFixture({ + const record = fixtureRecordable({ stepRecords: { [faker.datatype.uuid()]: { start: toISODate(new Date('2023-04-17T19:00:00.000Z')), diff --git a/src/modules/record/interfaces/recordable.fixture.ts b/src/modules/record/interfaces/recordable.fixture.ts index 57aab1a..2172763 100644 --- a/src/modules/record/interfaces/recordable.fixture.ts +++ b/src/modules/record/interfaces/recordable.fixture.ts @@ -2,7 +2,7 @@ import { toISODate } from '@/shared/types/date' import { faker } from '@faker-js/faker' import type { Recordable } from './recordable' -export const createRecordableFixture = ( +export const fixtureRecordable = ( partialRecordable?: Partial ): Recordable => ({ taskId: partialRecordable?.taskId ?? faker.datatype.uuid(), diff --git a/src/modules/record/interfaces/time-range.fixture.ts b/src/modules/record/interfaces/time-range.fixture.ts index 9cdb655..5306439 100644 --- a/src/modules/record/interfaces/time-range.fixture.ts +++ b/src/modules/record/interfaces/time-range.fixture.ts @@ -2,7 +2,7 @@ import { toISODate } from '@/shared/types/date' import { faker } from '@faker-js/faker' import type { TimeRange } from './time-range' -export const createTimeRangeFixture = ( +export const fixtureTimeRange = ( partialTimeRange?: Partial ): TimeRange => { const [start, end] = faker.date.betweens( diff --git a/src/modules/record/models/task-record.test.ts b/src/modules/record/models/task-record.test.ts index 9fb7106..9c26293 100644 --- a/src/modules/record/models/task-record.test.ts +++ b/src/modules/record/models/task-record.test.ts @@ -2,7 +2,7 @@ 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 { fixtureTimeRange } from '../interfaces/time-range.fixture' import { TaskRecord } from './task-record' describe('Task Record', () => { @@ -12,9 +12,9 @@ describe('Task Record', () => { notes: faker.lorem.paragraphs(), start: toISODate(faker.date.past(1)), end: toISODate(faker.date.past()), - breakTime: createTimeRangeFixture(), + breakTime: fixtureTimeRange(), stepRecords: { - [faker.datatype.uuid()]: createTimeRangeFixture() + [faker.datatype.uuid()]: fixtureTimeRange() } } diff --git a/src/modules/record/services/breaktime-service.test.ts b/src/modules/record/services/breaktime-service.test.ts index 97c9782..80d2e9a 100644 --- a/src/modules/record/services/breaktime-service.test.ts +++ b/src/modules/record/services/breaktime-service.test.ts @@ -1,11 +1,11 @@ import { toISODate } from '@/shared/types/date' import { describe, expect, it } from 'vitest' -import { createRecordableFixture } from '../interfaces/recordable.fixture' +import { fixtureRecordable } from '../interfaces/recordable.fixture' import { addBreakTimeToStepRecords } from './breaktime-service' describe('Break Time Service', () => { it('adds no break time if there is no break time', () => { - const record = createRecordableFixture({ + const record = fixtureRecordable({ breakTime: undefined }) @@ -13,7 +13,7 @@ describe('Break Time Service', () => { }) it('adds no break time if the break is not over yet', () => { - const record = createRecordableFixture({ + const record = fixtureRecordable({ breakTime: { start: toISODate(new Date('2023-04-17T19:00:00.000Z')) }, @@ -28,7 +28,7 @@ describe('Break Time Service', () => { }) it('adds break time if break time is over', () => { - const record = createRecordableFixture({ + const record = fixtureRecordable({ breakTime: { start: toISODate(new Date('2023-04-17T19:00:00.000Z')), end: toISODate(new Date('2023-04-17T20:00:00.000Z')) @@ -51,7 +51,7 @@ describe('Break Time Service', () => { }) it('adds break time only for unfinished step records', () => { - const record = createRecordableFixture({ + const record = fixtureRecordable({ breakTime: { start: toISODate(new Date('2023-04-17T19:00:00.000Z')), end: toISODate(new Date('2023-04-17T20:00:00.000Z')) diff --git a/src/modules/task/components/StepInput.test.ts b/src/modules/task/components/StepInput.test.ts index 8d95b61..4f20f7c 100644 --- a/src/modules/task/components/StepInput.test.ts +++ b/src/modules/task/components/StepInput.test.ts @@ -1,6 +1,6 @@ import { mount } from '@vue/test-utils' import { describe, expect, it } from 'vitest' -import { createStepFixture } from '../models/step.fixture' +import { fixtureStep } from '../models/step.fixture' import StepInput from './StepInput.vue' describe('Step input textarea', () => { @@ -15,11 +15,7 @@ describe('Step input textarea', () => { }) it('displays the steps in the textarea', () => { - const steps = [ - createStepFixture(), - createStepFixture(), - createStepFixture() - ] + const steps = [fixtureStep(), fixtureStep(), fixtureStep()] const stepsInTextarea = steps .map((s) => `- ${s.title} | ${s.estimation}`) diff --git a/src/modules/task/infra/adaptStepsToTextarea.test.ts b/src/modules/task/infra/adaptStepsToTextarea.test.ts index ab5b7bd..5be0c73 100644 --- a/src/modules/task/infra/adaptStepsToTextarea.test.ts +++ b/src/modules/task/infra/adaptStepsToTextarea.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { createStepFixture } from '../models/step.fixture' +import { fixtureStep } from '../models/step.fixture' import { adaptStepsToTextarea, adaptTextareaToSteps @@ -7,12 +7,7 @@ import { describe('adapt steps to textarea value', () => { it('returns a string with the listed steps', () => { - const steps = [ - createStepFixture(), - createStepFixture(), - createStepFixture(), - createStepFixture() - ] + const steps = [fixtureStep(), fixtureStep(), fixtureStep(), fixtureStep()] const stepsInTextarea = steps .map((step) => `- ${step.title} | ${step.estimation}`) @@ -27,17 +22,17 @@ describe('adapt steps to textarea value', () => { - step 3 | 5` const expectedSteps = [ - createStepFixture({ + fixtureStep({ id: expect.any(String), title: 'step 1', estimation: 3 }), - createStepFixture({ + fixtureStep({ id: expect.any(String), title: 'step 2', estimation: 4 }), - createStepFixture({ + fixtureStep({ id: expect.any(String), title: 'step 3', estimation: 5 @@ -50,7 +45,7 @@ describe('adapt steps to textarea value', () => { it('fallbacks to 0 for the estimation if there is no estimation', () => { const stepInTextarea = '- step 1' - const expectedStep = createStepFixture({ + const expectedStep = fixtureStep({ id: expect.any(String), title: 'step 1', estimation: 0 @@ -62,7 +57,7 @@ describe('adapt steps to textarea value', () => { it('fallbacks to 0 for the estimation if it can not read the number', () => { const stepInTextarea = '- step 1 | not an estimation' - const expectedStep = createStepFixture({ + const expectedStep = fixtureStep({ id: expect.any(String), title: 'step 1', estimation: 0 diff --git a/src/modules/task/models/step.fixture.ts b/src/modules/task/models/step.fixture.ts index 87620a1..7c9088a 100644 --- a/src/modules/task/models/step.fixture.ts +++ b/src/modules/task/models/step.fixture.ts @@ -1,7 +1,7 @@ import type { Stepable } from '@/modules/task/interfaces/stepable' import { faker } from '@faker-js/faker' -export const createStepFixture = (partialStep?: Partial) => ({ +export const fixtureStep = (partialStep?: Partial) => ({ id: partialStep?.id ?? faker.datatype.uuid(), title: partialStep?.title ?? faker.animal.bird(), estimation: diff --git a/src/modules/task/models/task.fixture.ts b/src/modules/task/models/task.fixture.ts index bfc0011..449afea 100644 --- a/src/modules/task/models/task.fixture.ts +++ b/src/modules/task/models/task.fixture.ts @@ -1,14 +1,14 @@ import { faker } from '@faker-js/faker' import type { Stepable } from '../interfaces/stepable' import type { Taskable } from '../interfaces/taskable' -import { createStepFixture } from './step.fixture' +import { fixtureStep } from './step.fixture' import { Task } from './task' -export const createTaskFixture = ( +export const fixtureTask = ( partialTask?: Partial, ...steps: Stepable[] ) => new Task( partialTask?.id ?? faker.datatype.uuid(), partialTask?.title ?? faker.animal.bird() - ).addSteps(...(steps ?? createStepFixture())) + ).addSteps(...(steps ?? fixtureStep())) diff --git a/src/modules/task/models/task.test.ts b/src/modules/task/models/task.test.ts index 0dd73b6..8258e47 100644 --- a/src/modules/task/models/task.test.ts +++ b/src/modules/task/models/task.test.ts @@ -1,5 +1,5 @@ import type { Taskable } from '@/modules/task/interfaces/taskable' -import { createStepFixture } from '@/modules/task/models/step.fixture' +import { fixtureStep } from '@/modules/task/models/step.fixture' import { Task } from '@/modules/task/models/task' import { toISODate } from '@/shared/types/date' import { faker } from '@faker-js/faker' @@ -20,7 +20,7 @@ describe('Task', () => { date: toISODate(faker.date.recent()), title: faker.animal.lion(), link: faker.internet.url(), - steps: [createStepFixture()] + steps: [fixtureStep()] } const task = Task.fromTaskable(taskable) @@ -30,7 +30,7 @@ describe('Task', () => { it('adds steps and removes them', () => { const task = new Task(faker.datatype.uuid(), faker.color.human()) - const [firstStep, secondStep] = [createStepFixture(), createStepFixture()] + const [firstStep, secondStep] = [fixtureStep(), fixtureStep()] task.addSteps(firstStep, secondStep) @@ -47,7 +47,7 @@ describe('Task', () => { const task = new Task(faker.datatype.uuid(), faker.color.human()) expect(Task.validate(task)).toEqual(false) - task.addSteps(createStepFixture()) + task.addSteps(fixtureStep()) expect(Task.validate(task)).toEqual(true) }) @@ -55,9 +55,9 @@ describe('Task', () => { const task = new Task(faker.datatype.uuid(), faker.color.human()) task.addSteps( - createStepFixture({ estimation: 1 }), - createStepFixture({ estimation: 2 }), - createStepFixture({ estimation: 3 }) + fixtureStep({ estimation: 1 }), + fixtureStep({ estimation: 2 }), + fixtureStep({ estimation: 3 }) ) expect(task.totalEstimation).toEqual(6) diff --git a/src/tests/utils.ts b/src/tests/utils.ts index 61c446a..5c26877 100644 --- a/src/tests/utils.ts +++ b/src/tests/utils.ts @@ -1,5 +1,5 @@ import type { TaskRecordStoreState } from '@/modules/record/stores/useTaskRecordStore' -import { createTaskFixture } from '@/modules/task/models/task.fixture' +import { fixtureTask } from '@/modules/task/models/task.fixture' import type { TaskStoreState } from '@/modules/task/stores/useTask.store' import { router } from '@/router' import { toISODate } from '@/shared/types/date' @@ -12,7 +12,7 @@ export interface InitialState { 'task-record-store': TaskRecordStoreState } -const tasks = [createTaskFixture(), createTaskFixture()] +const tasks = [fixtureTask(), fixtureTask()] const [firstTask, secondTask] = tasks const initialState: InitialState = {