From 3f8fa475d6050ff2df2db81b2bf95a7ec61c3c49 Mon Sep 17 00:00:00 2001 From: zkldi Date: Sat, 26 Jun 2021 01:36:39 +0100 Subject: [PATCH] clean up t.throws/t.rejects --- server/src/lib/logger/logger.ts | 1 - .../calculated-data/calculated-data.test.ts | 3 -- .../calculated-data/calculated-data.ts | 4 +- .../framework/calculated-data/stats.ts | 26 +++++------ .../framework/milestones/milestones.ts | 2 +- .../api/arc-ddr/converter.test.ts | 4 +- .../api/arc-iidx/converter.test.ts | 4 +- .../api/arc-sdvx/converter.test.ts | 4 +- .../common/api-kai/iidx/converter.test.ts | 6 +-- .../common/api-kai/sdvx/converter.test.ts | 6 +-- .../common/api-kai/traverse-api.test.ts | 3 +- .../common/batch-manual/converter.test.ts | 21 +++++---- .../eamusement-iidx-csv/converter.test.ts | 43 +++++++++---------- .../file/mer-iidx/converter.test.ts | 10 ++--- .../import-types/file/mer-iidx/parser.test.ts | 2 +- .../file/solid-state-squad/converter.test.ts | 38 +++++++++------- .../file/solid-state-squad/parser.test.ts | 12 +++--- .../ir/barbatos/converter.test.ts | 9 ++-- .../import-types/ir/barbatos/parser.test.ts | 2 +- .../import-types/ir/barbatos/parser.ts | 1 - .../import-types/ir/beatoraja/parser.ts | 1 - .../ir/fervidex-static/class-handler.test.ts | 3 +- .../import-types/ir/fervidex-static/parser.ts | 1 - .../ir/fervidex/converter.test.ts | 12 +++--- .../import-types/ir/fervidex/parser.ts | 1 - .../import-types/ir/usc/converter.test.ts | 14 +++--- .../import-types/ir/usc/parser.ts | 1 - server/src/server/router/api/v1/auth/auth.ts | 1 - .../api/v1/users/_userID/banner/router.ts | 2 +- .../beatoraja/charts/convert-scores.test.ts | 2 +- .../router/ir/beatoraja/charts/router.test.ts | 5 ++- .../router/ir/direct-manual/router.test.ts | 1 - .../src/server/router/ir/fervidex/router.ts | 1 - server/src/server/router/ir/usc/usc.test.ts | 29 +++++++------ server/src/test-utils/resets.ts | 2 + server/src/utils/folder.test.ts | 2 - server/src/utils/string-checks.ts | 2 +- 37 files changed, 142 insertions(+), 139 deletions(-) diff --git a/server/src/lib/logger/logger.ts b/server/src/lib/logger/logger.ts index 646a0f37f..2fbf9fd2b 100644 --- a/server/src/lib/logger/logger.ts +++ b/server/src/lib/logger/logger.ts @@ -1,5 +1,4 @@ import winston, { format, transports, Logger, LeveledLogMethod } from "winston"; -import fs from "fs"; import { EscapeStringRegexp } from "../../utils/misc"; import { LOG_LEVEL } from "../setup/config"; diff --git a/server/src/lib/score-import/framework/calculated-data/calculated-data.test.ts b/server/src/lib/score-import/framework/calculated-data/calculated-data.test.ts index 8a0603f40..c90e441ec 100644 --- a/server/src/lib/score-import/framework/calculated-data/calculated-data.test.ts +++ b/server/src/lib/score-import/framework/calculated-data/calculated-data.test.ts @@ -1,6 +1,5 @@ import p from "prudence"; import t from "tap"; -import db from "../../../../external/mongo/db"; import CreateLogCtx from "../../../logger/logger"; import { prAssert } from "../../../../test-utils/asserts"; import { @@ -11,8 +10,6 @@ import { TestingSDVXSingleDryScore, } from "../../../../test-utils/test-data"; import { CreateCalculatedData, CalculateDataForGamePT } from "./calculated-data"; -import deepmerge from "deepmerge"; -import ResetDBState from "../../../../test-utils/resets"; import { CloseAllConnections } from "../../../../test-utils/close-connections"; const logger = CreateLogCtx(__filename); diff --git a/server/src/lib/score-import/framework/calculated-data/calculated-data.ts b/server/src/lib/score-import/framework/calculated-data/calculated-data.ts index 48dd29346..84c6d1707 100644 --- a/server/src/lib/score-import/framework/calculated-data/calculated-data.ts +++ b/server/src/lib/score-import/framework/calculated-data/calculated-data.ts @@ -285,7 +285,7 @@ async function CalculateDataDDR( }; } -async function CalculateDataBMS14K( +export async function CalculateDataBMS14K( dryScore: DryScore, chart: AnyChartDocument, defaultTierlistID: string | undefined, @@ -296,7 +296,7 @@ async function CalculateDataBMS14K( }; } -async function CalculateDataBMS7K( +export async function CalculateDataBMS7K( dryScore: DryScore, chart: AnyChartDocument, defaultTierlistID: string | undefined, diff --git a/server/src/lib/score-import/framework/calculated-data/stats.ts b/server/src/lib/score-import/framework/calculated-data/stats.ts index 01a8f4bde..48a3acddc 100644 --- a/server/src/lib/score-import/framework/calculated-data/stats.ts +++ b/server/src/lib/score-import/framework/calculated-data/stats.ts @@ -144,19 +144,6 @@ export function CalculateMFCP(dryScore: DryScore, chartData: AnyChartDocument, l return null; } -const VF4GradeCoefficients = { - S: 1.0, - "AAA+": 0.99, - AAA: 0.98, - "AA+": 0.97, - AA: 0.96, - "A+": 0.95, - A: 0.94, - B: 0.93, - C: 0.92, - D: 0.91, -}; - const VF5GradeCoefficients = { S: 1.05, "AAA+": 1.02, @@ -410,6 +397,19 @@ function LampRatingNoTierlistInfo( // deprecated calcs +// const VF4GradeCoefficients = { +// S: 1.0, +// "AAA+": 0.99, +// AAA: 0.98, +// "AA+": 0.97, +// AA: 0.96, +// "A+": 0.95, +// A: 0.94, +// B: 0.93, +// C: 0.92, +// D: 0.91, +// }; + // export function CalculateVF4( // grade: Grades["sdvx:Single"], // per: number, diff --git a/server/src/lib/score-import/framework/milestones/milestones.ts b/server/src/lib/score-import/framework/milestones/milestones.ts index 8a33c19f8..87552b032 100644 --- a/server/src/lib/score-import/framework/milestones/milestones.ts +++ b/server/src/lib/score-import/framework/milestones/milestones.ts @@ -11,7 +11,7 @@ import { import db from "../../../../external/mongo/db"; import { BulkWriteUpdateOneOperation } from "mongodb"; import { CalculateMilestoneOutOf, GetGoalIDsFromMilestone } from "../../../../utils/milestone"; -import { RedisPub, RedisSub } from "../../../../external/redis/redis-IPC"; +import { RedisPub } from "../../../../external/redis/redis-IPC"; /** * Processes and updates a user's milestones from their Goal Import Info (i.e. what is returned diff --git a/server/src/lib/score-import/import-types/api/arc-ddr/converter.test.ts b/server/src/lib/score-import/import-types/api/arc-ddr/converter.test.ts index aae593c13..e1106756d 100644 --- a/server/src/lib/score-import/import-types/api/arc-ddr/converter.test.ts +++ b/server/src/lib/score-import/import-types/api/arc-ddr/converter.test.ts @@ -67,7 +67,7 @@ t.test("#ConvertAPIArcDDR", (t) => { ), { message: /Invalid ARC Score:/iu, - } as any + } ); t.end(); @@ -84,7 +84,7 @@ t.test("#ConvertAPIArcDDR", (t) => { ), { message: /Could not find chart/iu, - } as any + } ); t.end(); diff --git a/server/src/lib/score-import/import-types/api/arc-iidx/converter.test.ts b/server/src/lib/score-import/import-types/api/arc-iidx/converter.test.ts index c03e31aac..15b2580fa 100644 --- a/server/src/lib/score-import/import-types/api/arc-iidx/converter.test.ts +++ b/server/src/lib/score-import/import-types/api/arc-iidx/converter.test.ts @@ -53,7 +53,7 @@ t.test("#ConvertAPIArcIIDX", (t) => { ), { message: /Invalid ARC Score:/iu, - } as any + } ); t.end(); @@ -70,7 +70,7 @@ t.test("#ConvertAPIArcIIDX", (t) => { ), { message: /Could not find chart/iu, - } as any + } ); t.end(); diff --git a/server/src/lib/score-import/import-types/api/arc-sdvx/converter.test.ts b/server/src/lib/score-import/import-types/api/arc-sdvx/converter.test.ts index 4e7040a65..cf5cb3f9d 100644 --- a/server/src/lib/score-import/import-types/api/arc-sdvx/converter.test.ts +++ b/server/src/lib/score-import/import-types/api/arc-sdvx/converter.test.ts @@ -65,7 +65,7 @@ t.test("#ConvertAPIArcSDVX", (t) => { ), { message: /Invalid ARC Score:/iu, - } as any + } ); t.end(); @@ -82,7 +82,7 @@ t.test("#ConvertAPIArcSDVX", (t) => { ), { message: /Could not find chart/iu, - } as any + } ); t.end(); diff --git a/server/src/lib/score-import/import-types/common/api-kai/iidx/converter.test.ts b/server/src/lib/score-import/import-types/common/api-kai/iidx/converter.test.ts index 48104f40b..ab42d42fc 100644 --- a/server/src/lib/score-import/import-types/common/api-kai/iidx/converter.test.ts +++ b/server/src/lib/score-import/import-types/common/api-kai/iidx/converter.test.ts @@ -60,7 +60,7 @@ t.test("#ConvertAPIKaiIIDX", (t) => { ), { message: /Could not find chart with songID 0 \(SP ANOTHER - Version 26\)/u, - } as any + } ); t.end(); @@ -77,7 +77,7 @@ t.test("#ConvertAPIKaiIIDX", (t) => { ), { message: /Error: music_id.*Expected a positive integer.* received foo \[string\]/iu, - } as any + } ); t.end(); @@ -88,7 +88,7 @@ t.test("#ConvertAPIKaiIIDX", (t) => { t.rejects(() => ConvertAPIKaiIIDX(iidxScore, { service: "FLO" }, "api/flo-iidx", logger), { message: /Song-Chart desync/u, - } as any); + }); t.end(); }); diff --git a/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.test.ts b/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.test.ts index 2632d1475..ce3d23e02 100644 --- a/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.test.ts +++ b/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.test.ts @@ -61,7 +61,7 @@ t.test("#ConvertAPIKaiSDVX", (t) => { ), { message: /Could not find chart with songID 0 \(ADV - Version vivid\)/u, - } as any + } ); t.end(); @@ -78,7 +78,7 @@ t.test("#ConvertAPIKaiSDVX", (t) => { ), { message: /Error: music_id.*Expected a positive integer.* received foo \[string\]/iu, - } as any + } ); t.end(); @@ -89,7 +89,7 @@ t.test("#ConvertAPIKaiSDVX", (t) => { t.rejects(() => ConvertAPIKaiSDVX(sdvxScore, { service: "FLO" }, "api/flo-sdvx", logger), { message: /Song-Chart desync/u, - } as any); + }); t.end(); }); diff --git a/server/src/lib/score-import/import-types/common/api-kai/traverse-api.test.ts b/server/src/lib/score-import/import-types/common/api-kai/traverse-api.test.ts index 6c7041c92..65f879d80 100644 --- a/server/src/lib/score-import/import-types/common/api-kai/traverse-api.test.ts +++ b/server/src/lib/score-import/import-types/common/api-kai/traverse-api.test.ts @@ -3,6 +3,7 @@ import { CloseAllConnections } from "../../../../../test-utils/close-connections import { agta } from "../../../../../test-utils/misc"; import { MockJSONFetch } from "../../../../../test-utils/mock-fetch"; import ResetDBState from "../../../../../test-utils/resets"; +import { NodeFetch } from "../../../../../utils/fetch"; import CreateLogCtx from "../../../../logger/logger"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import { TraverseKaiAPI } from "./traverse-api"; @@ -65,7 +66,7 @@ t.test("#TraverseKaiAPI", (t) => { }); t.test("Should throw on invalid response JSON", (t) => { - const mockKaiAPI = () => ({ json: null } as any); + const mockKaiAPI = (() => ({ json: null })) as unknown as NodeFetch; const res = TraverseKaiAPI("http://url.com", "/sub", fakeAuth, logger, mockKaiAPI); t.rejects(() => agta(res)); diff --git a/server/src/lib/score-import/import-types/common/batch-manual/converter.test.ts b/server/src/lib/score-import/import-types/common/batch-manual/converter.test.ts index e35700d40..6fead265e 100644 --- a/server/src/lib/score-import/import-types/common/batch-manual/converter.test.ts +++ b/server/src/lib/score-import/import-types/common/batch-manual/converter.test.ts @@ -4,10 +4,14 @@ import { GetKTDataJSON, Testing511Song, Testing511SPA } from "../../../../../tes import { ResolveChartFromSong, ResolveMatchTypeToKTData, ConverterBatchManual } from "./converter"; import deepmerge from "deepmerge"; import { EscapeStringRegexp } from "../../../../../utils/misc"; -import { Game } from "tachi-common"; +import { Game, ImportTypes } from "tachi-common"; import ResetDBState from "../../../../../test-utils/resets"; -import { InvalidScoreFailure } from "../../../framework/common/converter-failures"; +import { + InvalidScoreFailure, + KTDataNotFoundFailure, +} from "../../../framework/common/converter-failures"; import { CloseAllConnections } from "../../../../../test-utils/close-connections"; +import { BatchManualContext } from "./types"; const baseBatchManualScore = { score: 500, @@ -25,6 +29,7 @@ const context = { version: null, }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any const ktdWrap = (msg: string, game: Game = "iidx", version = null): any => ({ importType: "file/batch-manual", message: new RegExp(EscapeStringRegexp(msg), "u"), @@ -106,7 +111,7 @@ t.test("#ResolveMatchTypeToKTData", (t) => { const gazerSong = GetKTDataJSON("./tachi/bms-gazer-song.json"); const gazerChart = GetKTDataJSON("./tachi/bms-gazer-chart.json"); - const bmsContext: any = deepmerge(context, { game: "bms", playtype: "7K" }); + const bmsContext: BatchManualContext = deepmerge(context, { game: "bms", playtype: "7K" }); const resMD5 = await ResolveMatchTypeToKTData( deepmerge(baseBatchManualScore, { @@ -169,7 +174,7 @@ t.test("#ResolveMatchTypeToKTData", (t) => { importType, logger ), - new InvalidScoreFailure("Cannot use ddrSongHash lookup on iidx.") as any + new InvalidScoreFailure("Cannot use ddrSongHash lookup on iidx.") ); t.end(); @@ -229,7 +234,7 @@ t.test("#ResolveMatchTypeToKTData", (t) => { importType, logger ), - new InvalidScoreFailure(`Invalid matchType BAD_MATCHTYPE`) as any + new InvalidScoreFailure(`Invalid matchType BAD_MATCHTYPE`) ); t.end(); @@ -265,7 +270,7 @@ t.test("#ResolveChartFromSong", (t) => { ), new InvalidScoreFailure( `Missing 'difficulty' field, but was necessary for this lookup.` - ) as any + ) ); t.end(); @@ -283,7 +288,7 @@ t.test("#ResolveChartFromSong", (t) => { ), new InvalidScoreFailure( `Invalid Difficulty for iidx SP - Expected any of BEGINNER, NORMAL, HYPER, ANOTHER, LEGGENDARIA` - ) as any + ) ); t.end(); @@ -369,7 +374,7 @@ t.test("#ConverterFn", (t) => { importType, logger ), - { message: /Invalid percent/u } as any + { message: /Invalid percent/u } ); t.end(); diff --git a/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/converter.test.ts b/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/converter.test.ts index b1cedaf8c..6c3a2e66b 100644 --- a/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/converter.test.ts +++ b/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/converter.test.ts @@ -1,32 +1,29 @@ import t from "tap"; -import CreateLogCtx from "../../../../logger/logger"; import ResetDBState from "../../../../../test-utils/resets"; import { CloseAllConnections } from "../../../../../test-utils/close-connections"; -const logger = CreateLogCtx(__filename); +// const valid511Score = { +// bp: "12", +// difficulty: "ANOTHER" as const, // lol +// exscore: "192", +// great: "42", +// pgreat: "75", +// lamp: "HARD CLEAR", +// level: "10", +// }; -const valid511Score = { - bp: "12", - difficulty: "ANOTHER" as const, // lol - exscore: "192", - great: "42", - pgreat: "75", - lamp: "HARD CLEAR", - level: "10", -}; +// const converterContext = { +// playtype: "SP" as const, +// hasBeginnerAndLegg: false, +// importVersion: "27", +// service: "e-amusement", +// }; -const converterContext = { - playtype: "SP" as const, - hasBeginnerAndLegg: false, - importVersion: "27", - service: "e-amusement", -}; - -const data = { - scores: [valid511Score], - timestamp: "Tue, 27 Apr 2021 21:35:35 GMT", - title: "5.1.1", -}; +// const data = { +// scores: [valid511Score], +// timestamp: "Tue, 27 Apr 2021 21:35:35 GMT", +// title: "5.1.1", +// }; t.todo("#ConverterFn", async (t) => { t.beforeEach(ResetDBState); diff --git a/server/src/lib/score-import/import-types/file/mer-iidx/converter.test.ts b/server/src/lib/score-import/import-types/file/mer-iidx/converter.test.ts index 4eb44b649..79dd0ff5d 100644 --- a/server/src/lib/score-import/import-types/file/mer-iidx/converter.test.ts +++ b/server/src/lib/score-import/import-types/file/mer-iidx/converter.test.ts @@ -94,7 +94,7 @@ t.test("#ConvertFileMerIIDX", (t) => { t.test("Invalid Chart", (t) => { t.rejects(() => merc({ diff_type: "LEGGENDARIA" }), { message: /Could not find chart with musicID 1000 \(SP LEGGENDARIA/u, - } as any); + }); t.end(); }); @@ -102,7 +102,7 @@ t.test("#ConvertFileMerIIDX", (t) => { t.test("Invalid Song", (t) => { t.rejects(() => merc({ music_id: 0 }), { message: /Could not find chart with musicID 0/u, - } as any); + }); t.end(); }); @@ -112,7 +112,7 @@ t.test("#ConvertFileMerIIDX", (t) => { t.rejects(() => merc(), { message: /Song-Chart Desync on songID 1/u, - } as any); + }); t.end(); }); @@ -120,7 +120,7 @@ t.test("#ConvertFileMerIIDX", (t) => { t.test("Invalid Percent", (t) => { t.rejects(() => merc({ score: 9999 }), { message: /Invalid percent/u, - } as any); + }); t.end(); }); @@ -128,7 +128,7 @@ t.test("#ConvertFileMerIIDX", (t) => { t.test("Invalid Date", (t) => { t.rejects(() => merc({ update_time: "INVALID" }), { message: /Invalid\/Unparsable score timestamp of INVALID/u, - } as any); + }); t.end(); }); diff --git a/server/src/lib/score-import/import-types/file/mer-iidx/parser.test.ts b/server/src/lib/score-import/import-types/file/mer-iidx/parser.test.ts index d95538369..e15f5aa9a 100644 --- a/server/src/lib/score-import/import-types/file/mer-iidx/parser.test.ts +++ b/server/src/lib/score-import/import-types/file/mer-iidx/parser.test.ts @@ -16,7 +16,7 @@ t.test("#ParseMerIIDX", (t) => { return ParseMerIIDX(MockMulterFile(buffer, "buffer.json"), {}, logger); } - function mrfj(obj: any) { + function mrfj(obj: unknown) { return ParseMerIIDX( MockMulterFile(Buffer.from(JSON.stringify(obj)), "buffer.json"), {}, diff --git a/server/src/lib/score-import/import-types/file/solid-state-squad/converter.test.ts b/server/src/lib/score-import/import-types/file/solid-state-squad/converter.test.ts index dfd530b46..53f46a674 100644 --- a/server/src/lib/score-import/import-types/file/solid-state-squad/converter.test.ts +++ b/server/src/lib/score-import/import-types/file/solid-state-squad/converter.test.ts @@ -79,7 +79,7 @@ t.test("#ConvertFileS3", (t) => { chart: Testing511SPA, song: Testing511Song, dryScore: deepmerge(dryScore, { comment: "FOO BAR" }), - } as any, + }, "Should correctly return the song, chart and DryScore." ); @@ -107,7 +107,7 @@ t.test("#ConvertFileS3", (t) => { t.test("Should reject invalid styles in S3 scores", (t) => { t.rejects(mfile({ styles: "3rd,4th,INVALID" }), { message: /Song has invalid style INVALID/u, - } as any); + }); t.end(); }); @@ -115,7 +115,7 @@ t.test("#ConvertFileS3", (t) => { t.test("Should throw ktdatanf if no song", (t) => { t.rejects(mfile({ songname: "INVALID SONG TITLE" }), { message: /Could not find song with title INVALID SONG TITLE/u, - } as any); + }); t.end(); }); @@ -123,7 +123,7 @@ t.test("#ConvertFileS3", (t) => { t.test("Should throw ktdatanf if no song", (t) => { t.rejects(mfile({ diff: "B" }), { message: /Could not find chart 5\.1\.1\. \(SP LEGGENDARIA/u, - } as any); + }); t.end(); }); @@ -131,31 +131,34 @@ t.test("#ConvertFileS3", (t) => { t.test("Should throw a skipscore if the song is 5key", (t) => { t.rejects(mfile({ diff: 5 }), { message: /5KEY scores are not supported/u, - } as any); + }); t.end(); }); t.test("Should throw an invalidscore if the difficulty is invalid", (t) => { - t.rejects(mfile({ diff: "INVALID" as any }), { + t.rejects(mfile({ diff: "INVALID" } as unknown as S3Score), { message: /Invalid difficulty INVALID/u, - } as any); + }); t.end(); }); t.test("Should throw an invalidscore if the hardeasy is invalid", (t) => { - t.rejects(mfile({ mods: { hardeasy: "INVALID" } as any, cleartype: "cleared" }), { - message: /Invalid cleartype of 'cleared' with hardeasy of INVALID/u, - } as any); + t.rejects( + mfile({ mods: { hardeasy: "INVALID" }, cleartype: "cleared" } as unknown as S3Score), + { + message: /Invalid cleartype of 'cleared' with hardeasy of INVALID/u, + } + ); t.end(); }); t.test("Should throw an invalidscore if the cleartype is invalid", (t) => { - t.rejects(mfile({ cleartype: "INVALID" as any }), { + t.rejects(mfile({ cleartype: "INVALID" } as unknown as S3Score), { message: /Invalid cleartype of INVALID/u, - } as any); + }); t.end(); }); @@ -163,7 +166,7 @@ t.test("#ConvertFileS3", (t) => { t.test("Should throw an invalidscore if the exscore is greater than MAX", (t) => { t.rejects(mfile({ exscore: 10000 }), { message: /Invalid percent of 636/u, - } as any); + }); t.end(); }); @@ -171,7 +174,7 @@ t.test("#ConvertFileS3", (t) => { t.test("Should throw an invalidscore if the date is invalid.", (t) => { t.rejects(mfile({ date: "INVALID" }), { message: /Invalid\/Unparsable score timestamp of INVALID/u, - } as any); + }); t.end(); }); @@ -213,9 +216,12 @@ t.test("#ResolveS3Lamp", (t) => { t.equal(ResolveS3Lamp({ cleartype: "perfect" } as S3Score, logger), "FULL COMBO"); t.equal(ResolveS3Lamp({ cleartype: "perfected" } as S3Score, logger), "FULL COMBO"); - t.throws(() => ResolveS3Lamp({ cleartype: "invalid" } as any, logger)); + t.throws(() => ResolveS3Lamp({ cleartype: "invalid" } as unknown as S3Score, logger)); t.throws(() => - ResolveS3Lamp({ cleartype: "cleared", mods: { hardeasy: "invalid" } } as any, logger) + ResolveS3Lamp( + { cleartype: "cleared", mods: { hardeasy: "invalid" } } as unknown as S3Score, + logger + ) ); t.end(); diff --git a/server/src/lib/score-import/import-types/file/solid-state-squad/parser.test.ts b/server/src/lib/score-import/import-types/file/solid-state-squad/parser.test.ts index a2ea54ee4..d7eec7530 100644 --- a/server/src/lib/score-import/import-types/file/solid-state-squad/parser.test.ts +++ b/server/src/lib/score-import/import-types/file/solid-state-squad/parser.test.ts @@ -113,7 +113,7 @@ t.test("#ParseSolidStateXML", (t) => { {}, logger ), - { message: /Invalid S3 XML/u } as any + { message: /Invalid S3 XML/u } ); t.end(); @@ -127,7 +127,7 @@ t.test("#ParseSolidStateXML", (t) => { {}, logger ), - { message: /Invalid S3 XML.*cleartype.*BAD LAMP/u } as any + { message: /Invalid S3 XML.*cleartype.*BAD LAMP/u } ); t.end(); @@ -144,7 +144,7 @@ t.test("#ParseSolidStateXML", (t) => { {}, logger ), - { message: /Invalid S3 XML.*object.*1/u } as any + { message: /Invalid S3 XML.*object.*1/u } ); t.end(); @@ -161,7 +161,7 @@ t.test("#ParseSolidStateXML", (t) => { {}, logger ), - { message: /Invalid S3 XML.*object.*1/u } as any + { message: /Invalid S3 XML.*object.*1/u } ); t.end(); @@ -178,7 +178,7 @@ t.test("#ParseSolidStateXML", (t) => { {}, logger ), - { message: /Invalid S3 XML.*exscore.*positive integer.*-1/u } as any + { message: /Invalid S3 XML.*exscore.*positive integer.*-1/u } ); t.end(); @@ -197,7 +197,7 @@ t.test("#ParseSolidStateXML", (t) => { {}, logger ), - { message: /Invalid S3 XML/u } as any + { message: /Invalid S3 XML/u } ); t.end(); diff --git a/server/src/lib/score-import/import-types/ir/barbatos/converter.test.ts b/server/src/lib/score-import/import-types/ir/barbatos/converter.test.ts index 680a359f5..a8c20967c 100644 --- a/server/src/lib/score-import/import-types/ir/barbatos/converter.test.ts +++ b/server/src/lib/score-import/import-types/ir/barbatos/converter.test.ts @@ -6,6 +6,7 @@ import { ConverterIRBarbatos } from "./converter"; import deepmerge from "deepmerge"; import { barbScore } from "../../../../../test-utils/test-data"; import { CloseAllConnections } from "../../../../../test-utils/close-connections"; +import { BarbatosScore } from "./types"; const logger = CreateLogCtx(__filename); @@ -77,7 +78,7 @@ t.test("#ConverterIRBarbatos", (t) => { inSkillAnalyser: false, }, }, - } as any); + }); t.end(); }); @@ -86,14 +87,14 @@ t.test("#ConverterIRBarbatos", (t) => { t.rejects( () => ConverterIRBarbatos( - deepmerge(barbScore, { song_id: 1000 } as any), + deepmerge(barbScore, { song_id: 1000 }) as BarbatosScore, {}, "ir/barbatos", logger ), { message: /Could not find chart with songID 1000/u, - } as any + } ); t.end(); @@ -104,7 +105,7 @@ t.test("#ConverterIRBarbatos", (t) => { t.rejects(() => ConverterIRBarbatos(barbScore, {}, "ir/barbatos", logger), { message: /Song 1 \(sdvx\) has no parent song/u, - } as any); + }); t.end(); }); diff --git a/server/src/lib/score-import/import-types/ir/barbatos/parser.test.ts b/server/src/lib/score-import/import-types/ir/barbatos/parser.test.ts index 54cbe2287..a4ef380a2 100644 --- a/server/src/lib/score-import/import-types/ir/barbatos/parser.test.ts +++ b/server/src/lib/score-import/import-types/ir/barbatos/parser.test.ts @@ -25,7 +25,7 @@ t.test("#ParseBarbatosSingle", (t) => { t.test("Should reject invalid scores", (t) => { t.throws(() => ParseBarbatosSingle({}, logger), { message: "Invalid Barbatos Request", - } as any); + }); t.end(); }); diff --git a/server/src/lib/score-import/import-types/ir/barbatos/parser.ts b/server/src/lib/score-import/import-types/ir/barbatos/parser.ts index f1342a23a..79bb196f1 100644 --- a/server/src/lib/score-import/import-types/ir/barbatos/parser.ts +++ b/server/src/lib/score-import/import-types/ir/barbatos/parser.ts @@ -4,7 +4,6 @@ import p from "prudence"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import { FormatPrError } from "../../../../../utils/prudence"; import { BarbatosScore } from "./types"; -import { ConverterIRBarbatos } from "./converter"; import { ParserFunctionReturns } from "../../common/types"; const PR_Barbatos = { diff --git a/server/src/lib/score-import/import-types/ir/beatoraja/parser.ts b/server/src/lib/score-import/import-types/ir/beatoraja/parser.ts index b753feba6..34d95d994 100644 --- a/server/src/lib/score-import/import-types/ir/beatoraja/parser.ts +++ b/server/src/lib/score-import/import-types/ir/beatoraja/parser.ts @@ -3,7 +3,6 @@ import p from "prudence"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import { FormatPrError } from "../../../../../utils/prudence"; import { BeatorajaChart, BeatorajaContext, BeatorajaScore } from "./types"; -import { ConverterIRBeatoraja } from "./converter"; import { ParserFunctionReturns } from "../../common/types"; const PR_BeatorajaScore = { diff --git a/server/src/lib/score-import/import-types/ir/fervidex-static/class-handler.test.ts b/server/src/lib/score-import/import-types/ir/fervidex-static/class-handler.test.ts index 8b9deabbc..cdf811955 100644 --- a/server/src/lib/score-import/import-types/ir/fervidex-static/class-handler.test.ts +++ b/server/src/lib/score-import/import-types/ir/fervidex-static/class-handler.test.ts @@ -3,6 +3,7 @@ import { CloseAllConnections } from "../../../../../test-utils/close-connections import ResetDBState from "../../../../../test-utils/resets"; import CreateLogCtx from "../../../../logger/logger"; import { CreateFerStaticClassHandler } from "./class-handler"; +import { Playtypes, Game } from "tachi-common"; const logger = CreateLogCtx(__filename); @@ -53,7 +54,7 @@ t.test("#FerStaticClassHandler", (t) => { t.test("Should skip if playtype is invalid", (t) => { const fn = CreateFerStaticClassHandler({ sp_dan: 5, dp_dan: 7 }); - const res = fn("iidx", "INVALID" as any, 1, {}, logger); + const res = fn("iidx", "INVALID" as Playtypes[Game], 1, {}, logger); t.equal(res, undefined, "Should skip over as a failsafe."); diff --git a/server/src/lib/score-import/import-types/ir/fervidex-static/parser.ts b/server/src/lib/score-import/import-types/ir/fervidex-static/parser.ts index 8dc374ebe..f71ca6b43 100644 --- a/server/src/lib/score-import/import-types/ir/fervidex-static/parser.ts +++ b/server/src/lib/score-import/import-types/ir/fervidex-static/parser.ts @@ -2,7 +2,6 @@ import { KtLogger } from "../../../../logger/logger"; import p, { PrudenceSchema } from "prudence"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import { FormatPrError } from "../../../../../utils/prudence"; -import { ConverterIRFervidexStatic } from "./converter"; import { FervidexStaticContext, FervidexStaticScore } from "./types"; import { FerHeaders, SoftwareIDToVersion } from "../fervidex/parser"; import { AssertStrAsPositiveInt } from "../../../framework/common/string-asserts"; diff --git a/server/src/lib/score-import/import-types/ir/fervidex/converter.test.ts b/server/src/lib/score-import/import-types/ir/fervidex/converter.test.ts index 594e51341..2b6e0a047 100644 --- a/server/src/lib/score-import/import-types/ir/fervidex/converter.test.ts +++ b/server/src/lib/score-import/import-types/ir/fervidex/converter.test.ts @@ -31,7 +31,7 @@ t.test("#SplitFervidexChartRef", (t) => { t.throws( () => SplitFervidexChartRef("INVALID" as "spn"), - new InternalFailure(`Invalid fervidex difficulty of INVALID`) as any + new InternalFailure(`Invalid fervidex difficulty of INVALID`) ); t.end(); @@ -152,7 +152,7 @@ t.test("#ConverterIRFervidex", (t) => { "ir/fervidex", logger ), - { message: /could not find chart/giu } as any + { message: /could not find chart/giu } ); t.end(); @@ -163,7 +163,7 @@ t.test("#ConverterIRFervidex", (t) => { t.rejects( ConverterIRFervidex(baseFervidexScore, { version: "27" }, "ir/fervidex", logger), - { message: /Song 1 \(iidx\) has no parent song/giu } as any + { message: /Song 1 \(iidx\) has no parent song/giu } ); t.end(); @@ -178,7 +178,7 @@ t.test("#ConverterIRFervidex", (t) => { "ir/fervidex", logger ), - { message: /Invalid percent/giu } as any + { message: /Invalid percent/giu } ); t.end(); @@ -193,7 +193,7 @@ t.test("#ConverterIRFervidex", (t) => { "ir/fervidex", logger ), - { message: /Invalid value of gauge 150/giu } as any + { message: /Invalid value of gauge 150/giu } ); t.end(); @@ -215,7 +215,7 @@ t.test("#ConverterIRFervidex", (t) => { dryScore: deepmerge(baseDryScore, { scoreData: { hitMeta: { gauge: null, gaugeHistory: [10, 5, null, null] } }, }), - } as any, // broken + }, // broken "Should return a dry score." ); diff --git a/server/src/lib/score-import/import-types/ir/fervidex/parser.ts b/server/src/lib/score-import/import-types/ir/fervidex/parser.ts index 2d2920c8a..abb076ca9 100644 --- a/server/src/lib/score-import/import-types/ir/fervidex/parser.ts +++ b/server/src/lib/score-import/import-types/ir/fervidex/parser.ts @@ -3,7 +3,6 @@ import p, { PrudenceSchema, ValidSchemaValue } from "prudence"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import { FormatPrError, optNull } from "../../../../../utils/prudence"; import { FervidexContext, FervidexScore } from "./types"; -import { ConverterIRFervidex } from "./converter"; import { ParseEA3SoftID } from "../../../../../utils/ea3id"; import { EXT_HEROIC_VERSE, diff --git a/server/src/lib/score-import/import-types/ir/usc/converter.test.ts b/server/src/lib/score-import/import-types/ir/usc/converter.test.ts index 1234f7f2a..d28868bcb 100644 --- a/server/src/lib/score-import/import-types/ir/usc/converter.test.ts +++ b/server/src/lib/score-import/import-types/ir/usc/converter.test.ts @@ -75,7 +75,7 @@ t.test("#DeriveNoteMod", (t) => { t.end(); }); -const dm = (p: Partial | any) => +const dm = (p: Partial) => ConverterIRUSC(d(uscScore, p), { chart: uscChart }, "ir/usc", logger); t.test("#ConverterIRUSC", (t) => { @@ -98,17 +98,17 @@ t.test("#ConverterIRUSC", (t) => { }); t.test("Should reject scores with invalid hit windows", (t) => { - t.rejects(dm({ windows: { perfect: 0 } })); - t.rejects(dm({ windows: { good: 0 } })); - t.rejects(dm({ windows: { hold: 0 } })); - t.rejects(dm({ windows: { miss: 0 } })); - t.rejects(dm({ windows: { slam: 0 } })); + t.rejects(dm({ windows: { perfect: 0 } } as USCClientScore)); + t.rejects(dm({ windows: { good: 0 } } as USCClientScore)); + t.rejects(dm({ windows: { hold: 0 } } as USCClientScore)); + t.rejects(dm({ windows: { miss: 0 } } as USCClientScore)); + t.rejects(dm({ windows: { slam: 0 } } as USCClientScore)); t.end(); }); t.test("Should reject scores with invalid autoflags", (t) => { - t.rejects(dm({ options: { autoFlags: 1 } })); + t.rejects(dm({ options: { autoFlags: 1 } } as USCClientScore)); t.end(); }); diff --git a/server/src/lib/score-import/import-types/ir/usc/parser.ts b/server/src/lib/score-import/import-types/ir/usc/parser.ts index f45180a5c..02e93e91f 100644 --- a/server/src/lib/score-import/import-types/ir/usc/parser.ts +++ b/server/src/lib/score-import/import-types/ir/usc/parser.ts @@ -4,7 +4,6 @@ import p, { PrudenceSchema } from "prudence"; import { FormatPrError } from "../../../../../utils/prudence"; import { USCClientScore } from "../../../../../server/router/ir/usc/types"; import { IRUSCContext } from "./types"; -import { ConverterIRUSC } from "./converter"; import { ParserFunctionReturns } from "../../common/types"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; diff --git a/server/src/server/router/api/v1/auth/auth.ts b/server/src/server/router/api/v1/auth/auth.ts index 39d4d0d5a..60e8dc22b 100644 --- a/server/src/server/router/api/v1/auth/auth.ts +++ b/server/src/server/router/api/v1/auth/auth.ts @@ -1,4 +1,3 @@ -import crypto from "crypto"; import bcrypt from "bcrypt"; import { InviteCodeDocument, PrivateUserDocument, PublicUserDocument } from "tachi-common"; import { InsertResult } from "monk"; diff --git a/server/src/server/router/api/v1/users/_userID/banner/router.ts b/server/src/server/router/api/v1/users/_userID/banner/router.ts index 734395d0c..da53b32c6 100644 --- a/server/src/server/router/api/v1/users/_userID/banner/router.ts +++ b/server/src/server/router/api/v1/users/_userID/banner/router.ts @@ -81,7 +81,7 @@ router.put( * * @name GET /api/v1/users/:userID/banner */ -router.get("/", async (req, res) => { +router.get("/", (req, res) => { const user = req[SYMBOL_TachiData]!.requestedUser!; if (!user.customBanner) { diff --git a/server/src/server/router/ir/beatoraja/charts/convert-scores.test.ts b/server/src/server/router/ir/beatoraja/charts/convert-scores.test.ts index 6bc9c11c5..4ca590f29 100644 --- a/server/src/server/router/ir/beatoraja/charts/convert-scores.test.ts +++ b/server/src/server/router/ir/beatoraja/charts/convert-scores.test.ts @@ -180,7 +180,7 @@ t.test("#TachiPBScoreToBeatorajaFormat", (t) => { t.rejects(() => TachiPBScoreToBeatorajaFormat(pbScore, gazerChart, 2), { message: /User 1's PB on.*has no lampPB/u, - } as any); + }); t.end(); }); diff --git a/server/src/server/router/ir/beatoraja/charts/router.test.ts b/server/src/server/router/ir/beatoraja/charts/router.test.ts index 9a4bab673..bf9eba098 100644 --- a/server/src/server/router/ir/beatoraja/charts/router.test.ts +++ b/server/src/server/router/ir/beatoraja/charts/router.test.ts @@ -3,6 +3,7 @@ import { CloseAllConnections } from "../../../../../test-utils/close-connections import ResetDBState from "../../../../../test-utils/resets"; import mockApi from "../../../../../test-utils/mock-api"; import db from "../../../../../external/mongo/db"; +import { ScoreDocument, PBScoreDocument } from "tachi-common"; t.test("GET /ir/beatoraja/charts/:chartSHA256/scores", (t) => { t.beforeEach(ResetDBState); @@ -23,7 +24,7 @@ t.test("GET /ir/beatoraja/charts/:chartSHA256/scores", (t) => { scoreMeta: {}, chartID: GAZER_CHARTID, userID: 1, - } as any); // very lazy fake scores + } as unknown as PBScoreDocument); // very lazy fake scores await db.scores.insert({ scoreID: "mock_lampPB", @@ -31,7 +32,7 @@ t.test("GET /ir/beatoraja/charts/:chartSHA256/scores", (t) => { inputDevice: "BM_CONTROLLER", random: "MIRROR", }, - } as any); + } as ScoreDocument); const res = await mockApi .get(`/ir/beatoraja/charts/${GAZER_SHA256}/scores`) diff --git a/server/src/server/router/ir/direct-manual/router.test.ts b/server/src/server/router/ir/direct-manual/router.test.ts index ff49e53fc..c744a482b 100644 --- a/server/src/server/router/ir/direct-manual/router.test.ts +++ b/server/src/server/router/ir/direct-manual/router.test.ts @@ -1,6 +1,5 @@ import t from "tap"; import db from "../../../../external/mongo/db"; -import { RequireNeutralAuthentication } from "../../../../test-utils/api-common"; import { CloseAllConnections } from "../../../../test-utils/close-connections"; import { CreateFakeAuthCookie } from "../../../../test-utils/fake-auth"; import mockApi from "../../../../test-utils/mock-api"; diff --git a/server/src/server/router/ir/fervidex/router.ts b/server/src/server/router/ir/fervidex/router.ts index 1378dbce2..8ecaaa1cb 100644 --- a/server/src/server/router/ir/fervidex/router.ts +++ b/server/src/server/router/ir/fervidex/router.ts @@ -3,7 +3,6 @@ import { UpdateClassIfGreater } from "../../../../utils/class"; import { GetUserWithIDGuaranteed } from "../../../../utils/user"; import { ParseEA3SoftID } from "../../../../utils/ea3id"; import { EXT_HEROIC_VERSE, MODEL_INFINITAS_2, REV_2DXBMS } from "../../../../lib/constants/ea3id"; -import { RequireLoggedInSession } from "../../../middleware/require-logged-in"; import { ExpressWrappedScoreImportMain } from "../../../../lib/score-import/framework/express-wrapper"; import { ParseFervidexStatic } from "../../../../lib/score-import/import-types/ir/fervidex-static/parser"; import { ParseFervidexSingle } from "../../../../lib/score-import/import-types/ir/fervidex/parser"; diff --git a/server/src/server/router/ir/usc/usc.test.ts b/server/src/server/router/ir/usc/usc.test.ts index 0dde1289d..fd33ae6d7 100644 --- a/server/src/server/router/ir/usc/usc.test.ts +++ b/server/src/server/router/ir/usc/usc.test.ts @@ -2,7 +2,7 @@ import t from "tap"; import db from "../../../../external/mongo/db"; import ResetDBState from "../../../../test-utils/resets"; import { CreatePOSTScoresResponseBody, TachiScoreToServerScore } from "./usc"; -import { ChartDocument, PBScoreDocument, ScoreDocument } from "tachi-common"; +import { ChartDocument, PBScoreDocument, ScoreDocument, PrivateUserDocument } from "tachi-common"; import deepmerge from "deepmerge"; import { CloseAllConnections } from "../../../../test-utils/close-connections"; @@ -107,9 +107,12 @@ t.test("#TachiScoreToServerScore", (t) => { }); t.test("Should throw if user document does not exist.", (t) => { - t.rejects(() => TachiScoreToServerScore(deepmerge(mockScorePB, { userID: 2 } as any)), { - message: /User 2 from PB on chart.*has no user document\?/u, - } as any); + t.rejects( + () => TachiScoreToServerScore(deepmerge(mockScorePB, { userID: 2 } as ScoreDocument)), + { + message: /User 2 from PB on chart.*has no user document\?/u, + } + ); t.end(); }); @@ -118,7 +121,7 @@ t.test("#TachiScoreToServerScore", (t) => { t.rejects(() => TachiScoreToServerScore(mockScorePB), { message: /Score USC_EXAMPLE_SCORE_PB_ID does not exist, but is referenced in 1's PBDoc on/u, - } as any); + }); t.end(); }); @@ -228,12 +231,12 @@ const uscScorePBsSet = [ outOf: 10, }, }, -].map((e) => deepmerge(mockScorePB, e) as any); +].map((e) => deepmerge(mockScorePB, e) as unknown as PBScoreDocument); const mockUserDocs = [2, 3, 4, 5, 6, 7, 8, 9, 10].map((e) => ({ id: e, username: e.toString(), -})) as any; +})) as PrivateUserDocument[]; t.test("#CreatePOSTScoresResponseBody", async (t) => { t.beforeEach(ResetDBState); @@ -251,7 +254,7 @@ t.test("#CreatePOSTScoresResponseBody", async (t) => { scoreMeta: { replayID: "foo_bar", }, - } as any); + } as unknown as ScoreDocument); const res = await CreatePOSTScoresResponseBody( 1, @@ -296,7 +299,7 @@ t.test("#CreatePOSTScoresResponseBody", async (t) => { await db.scores.insert({ scoreID: "USER_4_SCORE_PB", - } as any); + } as ScoreDocument); const res = await CreatePOSTScoresResponseBody(4, chartDoc, "USER_4_SCORE_PB"); @@ -335,7 +338,7 @@ t.test("#CreatePOSTScoresResponseBody", async (t) => { await db.scores.insert({ scoreID: "USER_3_SCORE_PB", - } as any); + } as ScoreDocument); const res = await CreatePOSTScoresResponseBody(3, chartDoc, "USER_3_SCORE_PB"); @@ -377,11 +380,11 @@ t.test("#CreatePOSTScoresResponseBody", async (t) => { scoreMeta: { replayID: "foo_bar", }, - } as any); + } as unknown as ScoreDocument); t.rejects(() => CreatePOSTScoresResponseBody(1, chartDoc, "USER_1_SCORE_PB"), { message: /Score was imported for chart, but no ScorePB was available on this chart/u, - } as any); + }); t.end(); }); @@ -401,7 +404,7 @@ t.test("#CreatePOSTScoresResponseBody", async (t) => { t.rejects(() => CreatePOSTScoresResponseBody(1, chartDoc, "USER_1_SCORE_PB"), { message: /Score with ID USER_1_SCORE_PB is not in the database/u, - } as any); + }); t.end(); }); diff --git a/server/src/test-utils/resets.ts b/server/src/test-utils/resets.ts index 304ce121d..bc89e8342 100644 --- a/server/src/test-utils/resets.ts +++ b/server/src/test-utils/resets.ts @@ -14,8 +14,10 @@ const logger = CreateLogCtx(__filename); const DATA_DIR = path.join(__dirname, "./mock-db"); +// eslint-disable-next-line @typescript-eslint/no-explicit-any const CACHE: Record = {}; +// eslint-disable-next-line @typescript-eslint/no-explicit-any async function ResetState(data: any[], collection: any) { await collection.remove({}); diff --git a/server/src/utils/folder.test.ts b/server/src/utils/folder.test.ts index 16210f698..9badf9b4d 100644 --- a/server/src/utils/folder.test.ts +++ b/server/src/utils/folder.test.ts @@ -13,8 +13,6 @@ import ResetDBState from "../test-utils/resets"; import deepmerge from "deepmerge"; import { CloseAllConnections } from "../test-utils/close-connections"; -const logger = CreateLogCtx(__filename); - t.todo("#CreateFolderChartLookup"); t.todo("#GetFolderCharts"); diff --git a/server/src/utils/string-checks.ts b/server/src/utils/string-checks.ts index e6eeba836..4b6fccd36 100644 --- a/server/src/utils/string-checks.ts +++ b/server/src/utils/string-checks.ts @@ -1,4 +1,4 @@ -import { UserGameStats, Game, Playtypes, GetGamePTConfig, GamePTConfig } from "tachi-common"; +import { Game, Playtypes, GetGamePTConfig, GamePTConfig } from "tachi-common"; import { IsString } from "./misc"; const isIntegerRegex = /^-?\d+$/u;