52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
import type { GoalBoolean, GoalNumeric } from "@/domain/entities/Goal"
|
|
import {
|
|
GoalBooleanProgress,
|
|
GoalNumericProgress,
|
|
} from "@/domain/entities/Goal"
|
|
import type { HabitProgressData } from "@/domain/entities/HabitProgress"
|
|
import { HabitProgress } from "@/domain/entities/HabitProgress"
|
|
import { HABIT_MOCK } from "./Habit"
|
|
|
|
interface HabitProgressMockCreateOptions
|
|
extends Omit<HabitProgressData, "date"> {
|
|
date?: Date
|
|
}
|
|
|
|
const habitProgressMockCreate = (
|
|
options: HabitProgressMockCreateOptions,
|
|
): HabitProgress => {
|
|
const { id, habitId, goalProgress, date = new Date() } = options
|
|
|
|
return new HabitProgress({
|
|
date,
|
|
goalProgress,
|
|
habitId,
|
|
id,
|
|
})
|
|
}
|
|
|
|
const exampleByIds = {
|
|
1: habitProgressMockCreate({
|
|
id: "1",
|
|
habitId: HABIT_MOCK.examplesByNames["Clean the house"].id,
|
|
goalProgress: new GoalBooleanProgress({
|
|
goal: HABIT_MOCK.examplesByNames["Clean the house"].goal as GoalBoolean,
|
|
progress: true,
|
|
}),
|
|
}),
|
|
2: habitProgressMockCreate({
|
|
id: "2",
|
|
habitId: HABIT_MOCK.examplesByNames.Walk.id,
|
|
goalProgress: new GoalNumericProgress({
|
|
goal: HABIT_MOCK.examplesByNames.Walk.goal as GoalNumeric,
|
|
progress: 4_733,
|
|
}),
|
|
}),
|
|
} as const
|
|
|
|
export const HABIT_PROGRESS_MOCK = {
|
|
create: habitProgressMockCreate,
|
|
exampleByIds,
|
|
examples: Object.values(exampleByIds),
|
|
}
|