From 26e8e6dfeb78856976d51aa09e247a2466bd49f7 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Mon, 7 Jul 2025 12:50:33 -0700 Subject: [PATCH] Run more tests in CI --- package.json | 5 ++++- .../skin-database/api/__tests__/graphql.test.ts | 4 ++++ .../data/__tests__/ArchiveFileModel.test.ts | 4 ++++ .../skin-database/data/__tests__/SkinModel.test.ts | 4 ++++ packages/skin-database/data/__tests__/skins.test.ts | 4 ++++ packages/skin-database/package.json | 13 +++++++++++++ .../skin-database/tasks/__tests__/refresh.test.ts | 4 ++++ pnpm-lock.yaml | 3 +++ turbo.json | 10 ++++++++++ 9 files changed, 50 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ffd12b47..2fc9e5fa 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,10 @@ "node": ">=22.0.0" }, "scripts": { - "test": "jest", + "test": "npx turbo test", + "test:integration": "npx turbo run integration-tests", + "test:all": "npx turbo run test integration-tests", + "test:unit": "jest", "lint": "eslint . --ext ts,tsx,js,jsx --rulesdir=packages/webamp-modern/tools/eslint-rules", "type-check": "pnpm --filter webamp type-check && pnpm --filter ani-cursor type-check && pnpm --filter skin-database type-check && pnpm --filter webamp-docs type-check && pnpm --filter winamp-eqf type-check", "deploy": "sh deploy.sh", diff --git a/packages/skin-database/api/__tests__/graphql.test.ts b/packages/skin-database/api/__tests__/graphql.test.ts index 33843b52..749397e8 100644 --- a/packages/skin-database/api/__tests__/graphql.test.ts +++ b/packages/skin-database/api/__tests__/graphql.test.ts @@ -30,6 +30,10 @@ beforeEach(async () => { await knex.seed.run(); }); +afterAll(async () => { + await knex.destroy(); +}); + function gql(templateString: TemplateStringsArray): string { return templateString[0]; } diff --git a/packages/skin-database/data/__tests__/ArchiveFileModel.test.ts b/packages/skin-database/data/__tests__/ArchiveFileModel.test.ts index aea001ad..4d52faea 100644 --- a/packages/skin-database/data/__tests__/ArchiveFileModel.test.ts +++ b/packages/skin-database/data/__tests__/ArchiveFileModel.test.ts @@ -7,6 +7,10 @@ beforeEach(async () => { await knex.seed.run(); }); +afterAll(async () => { + await knex.destroy(); +}); + test("fromMd5", async () => { const ctx = new UserContext(); const files = await ArchiveFileModel.fromMd5(ctx, "a_fake_md5"); diff --git a/packages/skin-database/data/__tests__/SkinModel.test.ts b/packages/skin-database/data/__tests__/SkinModel.test.ts index bd780123..e2f28bb7 100644 --- a/packages/skin-database/data/__tests__/SkinModel.test.ts +++ b/packages/skin-database/data/__tests__/SkinModel.test.ts @@ -7,6 +7,10 @@ beforeEach(async () => { await knex.seed.run(); }); +afterAll(async () => { + await knex.destroy(); +}); + test("fromMd5", async () => { const ctx = new UserContext(); const skin = await SkinModel.fromMd5(ctx, "a_fake_md5"); diff --git a/packages/skin-database/data/__tests__/skins.test.ts b/packages/skin-database/data/__tests__/skins.test.ts index b5653c95..0bbd809d 100644 --- a/packages/skin-database/data/__tests__/skins.test.ts +++ b/packages/skin-database/data/__tests__/skins.test.ts @@ -7,6 +7,10 @@ beforeEach(async () => { await knex.migrate.latest(); }); +afterAll(async () => { + await knex.destroy(); +}); + test("empty", async () => { expect(await Skins.getAllClassicSkins()).toEqual([]); expect(await Skins.getClassicSkinCount()).toBe(0); diff --git a/packages/skin-database/package.json b/packages/skin-database/package.json index cff2e23c..6d89db71 100644 --- a/packages/skin-database/package.json +++ b/packages/skin-database/package.json @@ -49,6 +49,7 @@ }, "scripts": { "lint": "eslint .", + "test": "jest", "dev": "next dev", "build": "next build", "start": "next start", @@ -72,7 +73,19 @@ "@types/node-fetch": "^2.5.7", "@typescript-eslint/eslint-plugin": "^7.1.0", "@typescript-eslint/parser": "^7.1.0", + "@swc/jest": "^0.2.24", "grats": "^0.0.31", "typescript": "^5.3.3" + }, + "jest": { + "testEnvironment": "node", + "extensionsToTreatAsEsm": [".ts"], + "moduleNameMapper": { + "^(\\.{1,2}/.*)\\.js$": "$1" + }, + "transform": { + "^.+\\.(t|j)sx?$": ["@swc/jest"] + }, + "setupFiles": ["/jest-setup.js"] } } diff --git a/packages/skin-database/tasks/__tests__/refresh.test.ts b/packages/skin-database/tasks/__tests__/refresh.test.ts index 53db0ef0..baee5dcd 100644 --- a/packages/skin-database/tasks/__tests__/refresh.test.ts +++ b/packages/skin-database/tasks/__tests__/refresh.test.ts @@ -19,6 +19,10 @@ beforeEach(async () => { await knex.seed.run(); }); +afterAll(async () => { + await knex.destroy(); +}); + test("refresh", async () => { const ctx = new UserContext(); const [skin] = await getSkinsToRefresh(ctx, 1); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e479e161..b3cc46d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -220,6 +220,9 @@ importers: specifier: ^13.2.4 version: 13.3.2 devDependencies: + '@swc/jest': + specifier: ^0.2.24 + version: 0.2.36(@swc/core@1.4.12(@swc/helpers@0.5.15)) '@types/cookie-session': specifier: ^2.0.48 version: 2.0.48 diff --git a/turbo.json b/turbo.json index c71fbfa2..8dee9a3a 100644 --- a/turbo.json +++ b/turbo.json @@ -42,6 +42,16 @@ "dependsOn": ["ani-cursor#build", "winamp-eqf#build"], "outputs": [] }, + "webamp-modern#test": { + "outputs": [] + }, + "skin-database#test": { + "outputs": [] + }, + "webamp#integration-tests": { + "dependsOn": ["ani-cursor#build", "winamp-eqf#build"], + "outputs": [] + }, "webamp#lint": { "dependsOn": ["ani-cursor#build", "winamp-eqf#build"] },