feat: add accounts and movies tables in migrations
- 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.
This commit is contained in:
20
tests/utils.ts
Normal file
20
tests/utils.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user