From a7cfc3be3c0560ac6b43853bb44b975218d81b93 Mon Sep 17 00:00:00 2001 From: Roman Godmaire Date: Sun, 11 Feb 2024 08:33:48 -0500 Subject: [PATCH] tests: flesh out MockGenericDatabase --- plice/src/lib/server/db/mock.ts | 62 ++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 8 deletions(-) diff --git a/plice/src/lib/server/db/mock.ts b/plice/src/lib/server/db/mock.ts index 1a87277..65fddbd 100644 --- a/plice/src/lib/server/db/mock.ts +++ b/plice/src/lib/server/db/mock.ts @@ -1,11 +1,8 @@ import type { Database } from '$lib/server/db'; -import { v4 as uuidv4 } from 'uuid'; - -// TODO Flesh this out export class MockGenericDatabase implements Database { fetchHomepageData = async (_producerId: string) => { - const data = [ + return Promise.resolve([ { id: 1, title: 'Fake Song', @@ -29,16 +26,65 @@ export class MockGenericDatabase implements Database { versions: 1 } } - ]; + ]); + }; - return Promise.resolve(data); + fetchTrackPageData = async (trackId: number) => { + return Promise.resolve({ + id: trackId, + title: 'Fake Track', + createdAt: new Date(1970, 1, 1), + producer: { + username: 'fake-user' + }, + versions: [ + { + id: '66dbd96c-2c84-4fe6-8a74-eeb3876f6f34', + comments: [ + { + createdAt: new Date(1970, 1, 1), + content: 'Fake comment', + author: { + username: 'other-fake-user' + } + } + ] + } + ] + }); }; getLatestTrackVersion = async (_trackId: number) => { return Promise.resolve({ id: '66dbd96c-2c84-4fe6-8a74-eeb3876f6f34' }); }; - createComment = async (_versionId: string, _userId: string, _content: string) => { - return Promise.resolve(null); + createTrack = async (producerId: string, title: string) => { + return Promise.resolve({ + id: 1, + title, + producerId, + createdAt: new Date(1970, 1, 1), + updatedAt: new Date(1970, 1, 1) + }); + }; + + createTrackVersion = async (trackId: number) => { + return Promise.resolve({ + id: '66dbd96c-2c84-4fe6-8a74-eeb3876f6f34', + trackId, + createdAt: new Date(1970, 1, 1), + updatedAt: new Date(1970, 1, 1) + }); + }; + + createComment = async (versionId: string, userId: string, content: string) => { + return Promise.resolve({ + id: 1, + content, + authorId: userId, + trackVersionId: versionId, + createdAt: new Date(1970, 1, 1), + updatedAt: new Date(1970, 1, 1) + }); }; }