diff --git a/.env.test.example b/.env.test.example index db319ae..34f7d47 100644 --- a/.env.test.example +++ b/.env.test.example @@ -1 +1,2 @@ POSTMAN_COLLECTION=./scripts/test/Conduit.postman_collection.json +DB_TEST_PORT=5433 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 9e9e2af..70cf240 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,5 @@ services: - db: + db-dev: image: postgres:17-alpine restart: unless-stopped environment: @@ -10,6 +10,18 @@ services: - "${DB_PORT:-5432}:5432" volumes: - postgres-data:/var/lib/postgresql/data + db-test: + image: postgres:17-alpine + restart: unless-stopped + environment: + POSTGRES_USER: yam + POSTGRES_PASSWORD: yam123 + POSTGRES_DB: bedstack_test + ports: + - "${DB_TEST_PORT:-5433}:5432" + volumes: + - postgres-test-data:/var/lib/postgresql/data volumes: postgres-data: + postgres-test-data: diff --git a/package.json b/package.json index 470e4b7..f051902 100644 --- a/package.json +++ b/package.json @@ -23,11 +23,17 @@ "db:migrate": "prisma migrate dev", "db:reset": "prisma migrate reset", "db:status": "prisma migrate status", - "db:start": "docker compose up -d", - "db:stop": "docker compose stop", - "db:restart": "docker compose restart", - "db:down": "docker compose down", - "db:remove": "docker compose down -v" + "db:start": "docker compose up -d db-dev", + "db:stop": "docker compose stop db-dev", + "db:restart": "docker compose restart db-dev", + "db:down": "docker compose rm -sf db-dev", + "db:remove": "docker compose rm -sfv db-dev", + "db:test": "source .env.test && docker compose up db-test", + "db:test:start": "docker compose --env-file .env.test up -d db-test", + "db:test:stop": "docker compose --env-file .env.test stop db-test", + "db:test:down": "docker compose --env-file .env.test rm -sf db-test", + "db:test:remove": "docker compose --env-file .env.test rm -sf db-test", + "db:test:push": "bun --env-file=.env.test run prisma db push" }, "dependencies": { "@bedtime-coders/elysia-openapi": "^1.1.0", diff --git a/scripts/test/api.ts b/scripts/test/api.ts index 65db02e..e01f600 100644 --- a/scripts/test/api.ts +++ b/scripts/test/api.ts @@ -13,9 +13,6 @@ const EMAIL = env.EMAIL; const PASSWORD = env.PASSWORD; const POSTMAN_COLLECTION = env.POSTMAN_COLLECTION; -// Performance options -const DELAY_REQUEST = env.DELAY_REQUEST; - // Parse command line arguments const { values } = parseArgs({ args: Bun.argv, @@ -35,6 +32,10 @@ const { values } = parseArgs({ const shouldSkipDbReset = values["skip-db-reset"] || env.SKIP_DB_RESET; const isWatchMode = values.watch || false; +// Performance options +const DELAY_REQUEST = env.DELAY_REQUEST; +// Note: Newman doesn't support parallel execution, but we can reduce delays + console.info(chalk.gray("Checking Bedstack health")); // first query the api to see if it's running diff --git a/src/tags/tags.test.ts b/src/tags/tags.test.ts index 0d5ea63..40fb2d2 100644 --- a/src/tags/tags.test.ts +++ b/src/tags/tags.test.ts @@ -6,7 +6,7 @@ import { expectNoError, registerAndLoginUser } from "@/tests/utils"; // Create type-safe API client with Eden Treaty const { api } = treaty(app); -// Test dataW +// Test data const testUser = { email: "tags_test@test.com", username: "tags_test_user", diff --git a/src/tests/utils.ts b/src/tests/utils.ts index 5a98456..678a849 100644 --- a/src/tests/utils.ts +++ b/src/tests/utils.ts @@ -209,6 +209,7 @@ export async function resetDb(options: { verbose?: boolean } = {}) { `); if (options.verbose) { + // biome-ignore lint/suspicious/noConsole: we want to log this console.log(`✅ Database reset: truncated ${tableNames.length} tables`); } } catch (error) {