diff --git a/src/routes/postBranding.ts b/src/routes/postBranding.ts index 23e8f6d..3f76fbf 100644 --- a/src/routes/postBranding.ts +++ b/src/routes/postBranding.ts @@ -104,13 +104,9 @@ export async function postBranding(req: Request, res: Response) { await verifyOldSubmissions(hashedUserID, verificationValue); } - if (isVip && !downvote) { + if (isVip && !downvote && shouldLock) { // unlock all other titles - if (shouldLock) { - await db.prepare("run", `UPDATE "titleVotes" as tv SET "locked" = 0 FROM "titles" t WHERE tv."UUID" = t."UUID" AND tv."UUID" != ? AND t."videoID" = ?`, [UUID, videoID]); - } else { - await db.prepare("run", `UPDATE "titleVotes" as tv SET "locked" = 0 FROM "titles" t WHERE tv."UUID" = t."UUID" AND t."videoID" = ?`, [videoID]); - } + await db.prepare("run", `UPDATE "titleVotes" as tv SET "locked" = 0 FROM "titles" t WHERE tv."UUID" = t."UUID" AND tv."UUID" != ? AND t."videoID" = ?`, [UUID, videoID]); } sendWebhooks(videoID, UUID).catch((e) => Logger.error(e)); @@ -152,13 +148,9 @@ export async function postBranding(req: Request, res: Response) { } } - if (isVip && !downvote) { + if (isVip && !downvote && shouldLock) { // unlock all other titles - if (shouldLock) { - await db.prepare("run", `UPDATE "thumbnailVotes" as tv SET "locked" = 0 FROM "thumbnails" t WHERE tv."UUID" = t."UUID" AND tv."UUID" != ? AND t."videoID" = ?`, [UUID, videoID]); - } else { - await db.prepare("run", `UPDATE "thumbnailVotes" as tv SET "locked" = 0 FROM "thumbnails" t WHERE tv."UUID" = t."UUID" AND t."videoID" = ?`, [videoID]); - } + await db.prepare("run", `UPDATE "thumbnailVotes" as tv SET "locked" = 0 FROM "thumbnails" t WHERE tv."UUID" = t."UUID" AND tv."UUID" != ? AND t."videoID" = ?`, [UUID, videoID]); } } })()]); diff --git a/test/cases/postBranding.ts b/test/cases/postBranding.ts index d2afcd2..c665cfc 100644 --- a/test/cases/postBranding.ts +++ b/test/cases/postBranding.ts @@ -614,13 +614,21 @@ describe("postBranding", () => { }); assert.strictEqual(res.status, 200); - const dbTitle = await queryTitleByVideo(videoID); - const dbTitleVotes = await queryTitleVotesByUUID(dbTitle.UUID); - const dbThumbnail = await queryThumbnailByVideo(videoID); - const dbThumbnailVotes = await queryThumbnailVotesByUUID(dbThumbnail.UUID); + const dbTitles = await queryTitleByVideo(videoID, true); + for (const dbTitle of dbTitles) { + if (dbTitle.title === title.title) { + const dbTitleVotes = await queryTitleVotesByUUID(dbTitle.UUID); + assert.strictEqual(dbTitleVotes.locked, 0); + } + } - assert.strictEqual(dbTitleVotes.locked, 0); - assert.strictEqual(dbThumbnailVotes.locked, 0); + const dbThumbnails = await queryThumbnailByVideo(videoID, true); + for (const dbThumbnail of dbThumbnails) { + if (dbThumbnail.timestamp === thumbnail.timestamp) { + const dbThumbnailVotes = await queryThumbnailVotesByUUID(dbThumbnail.UUID); + assert.strictEqual(dbThumbnailVotes.locked, 0); + } + } }); it("Downvote title and thumbnail as VIP", async () => {