- Created migration for accounts table with fields: id, username, password, role_id, created_at, updated_at. - Created migration for movies table with fields: id, title, overview, poster_path, backdrop_path, release_date, tmdb_id. refactor: update package.json scripts and dependencies - Changed dev script to use bun instead of tsx. - Added build:migrate script for migration. - Updated devDependencies for bun and oxlint. fix: refactor database connection and migration execution - Updated PgDatabase to use SQL from bun. - Refactored migration execution logic to read SQL files and execute them. feat: implement account creation and validation logic - Updated AccountEntity to use username instead of email. - Added validation for username format and password strength. - Implemented account repository methods for finding by username and inserting accounts. test: add tests for account entity, repository, and service - Created tests for AccountEntity to validate username and password. - Added tests for AccountRepository to ensure correct database interactions. - Implemented tests for AccountService to validate registration and login logic. chore: remove outdated tests and files - Deleted old tests related to email-based account management. - Cleaned up unused imports and files to streamline the codebase.
21 lines
711 B
TypeScript
21 lines
711 B
TypeScript
import path from "node:path";
|
|
import { loadTestConfiguration } from "../src/config";
|
|
import Migration from "../src/database/Migration";
|
|
import PgDatabase from "../src/database/PgDatabase";
|
|
import type { DatabaseInterface } from "../src/database/DatabaseInterface";
|
|
|
|
export async function initTestDatabase(): Promise<DatabaseInterface> {
|
|
const testConfiguration = loadTestConfiguration();
|
|
|
|
const database = PgDatabase.fromOptions(testConfiguration.database);
|
|
await database.ping();
|
|
|
|
await database.exec("DROP SCHEMA public CASCADE");
|
|
await database.exec("CREATE SCHEMA public");
|
|
|
|
const migration = new Migration(database);
|
|
await migration.execute(path.resolve("migrations"));
|
|
|
|
return database;
|
|
}
|