diff --git a/server/src/server/router/ir/fervidex/router.test.ts b/server/src/server/router/ir/fervidex/router.test.ts index f9351d856..8fd54bc05 100644 --- a/server/src/server/router/ir/fervidex/router.test.ts +++ b/server/src/server/router/ir/fervidex/router.test.ts @@ -180,6 +180,21 @@ t.test("POST /ir/fervidex/class/submit", (t) => { t.equal(ugs?.classes.dan, 18); + const recentAchievement = await db["class-achievements"].findOne({ + userID: 1, + game: "iidx", + playtype: "SP", + }); + + t.hasStrict(recentAchievement, { + userID: 1, + game: "iidx", + playtype: "SP", + classValue: 18, + classSet: "dan", + classOldValue: null, + }); + t.end(); }); diff --git a/server/src/utils/class.ts b/server/src/utils/class.ts index bcbbd9602..f2e00cf21 100644 --- a/server/src/utils/class.ts +++ b/server/src/utils/class.ts @@ -69,6 +69,16 @@ export async function UpdateClassIfGreater( await CreateGameSettings(userID, game, playtype); } + await db["class-achievements"].insert({ + game, + playtype, + userID, + classOldValue: isGreater === null ? null : userGameStats!.classes[classSet]!, + classSet, + classValue: classVal, + timeAchieved: Date.now(), + }); + if (isGreater === null) { EmitWebhookEvent({ type: "class-update/v1",