mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-11 14:07:09 +03:00
decompose postSkipSegments more
This commit is contained in:
104
test/cases/postSkipSegmentsUserAgent.ts
Normal file
104
test/cases/postSkipSegmentsUserAgent.ts
Normal file
@@ -0,0 +1,104 @@
|
||||
import assert from "assert";
|
||||
import { convertSingleToDBFormat } from "./postSkipSegments";
|
||||
import { getHash } from "../../src/utils/getHash";
|
||||
import { db } from "../../src/databases/databases";
|
||||
import { partialDeepEquals } from "../utils/partialDeepEquals";
|
||||
import { client } from "../utils/httpClient";
|
||||
|
||||
const endpoint = "/api/skipSegments";
|
||||
|
||||
const queryUseragent = (videoID: string) => db.prepare("get", `SELECT "startTime", "endTime", "locked", "category", "userAgent" FROM "sponsorTimes" WHERE "videoID" = ?`, [videoID]);
|
||||
|
||||
describe("postSkipSegments - userAgent", () => {
|
||||
const userIDOne = "postSkip-DurationUserOne";
|
||||
const VIPLockUser = "VIPUser-lockCategories";
|
||||
const videoID = "lockedVideo";
|
||||
const userID = userIDOne;
|
||||
|
||||
const segment = {
|
||||
segment: [0, 10],
|
||||
category: "sponsor",
|
||||
};
|
||||
const dbFormatSegment = convertSingleToDBFormat(segment);
|
||||
|
||||
before(() => {
|
||||
const insertLockCategoriesQuery = `INSERT INTO "lockCategories" ("userID", "videoID", "category", "reason") VALUES(?, ?, ?, ?)`;
|
||||
db.prepare("run", insertLockCategoriesQuery, [getHash(VIPLockUser), videoID, "sponsor", "Custom Reason"]);
|
||||
db.prepare("run", insertLockCategoriesQuery, [getHash(VIPLockUser), videoID, "intro", ""]);
|
||||
});
|
||||
|
||||
it("Should be able to submit with empty user-agent", (done) => {
|
||||
const videoID = "userAgent-3";
|
||||
client(endpoint, {
|
||||
method: "POST",
|
||||
data: {
|
||||
userID,
|
||||
videoID,
|
||||
segments: [segment],
|
||||
userAgent: "",
|
||||
}
|
||||
})
|
||||
.then(async res => {
|
||||
assert.strictEqual(res.status, 200);
|
||||
const row = await queryUseragent(videoID);
|
||||
const expected = {
|
||||
...dbFormatSegment,
|
||||
userAgent: "",
|
||||
};
|
||||
assert.ok(partialDeepEquals(row, expected));
|
||||
done();
|
||||
})
|
||||
.catch(err => done(err));
|
||||
});
|
||||
|
||||
it("Should be able to submit with custom userAgent in body", (done) => {
|
||||
const videoID = "userAgent-4";
|
||||
client(endpoint, {
|
||||
method: "POST",
|
||||
data: {
|
||||
userID,
|
||||
videoID,
|
||||
segments: [segment],
|
||||
userAgent: "MeaBot/5.0"
|
||||
}
|
||||
})
|
||||
.then(async res => {
|
||||
assert.strictEqual(res.status, 200);
|
||||
const row = await queryUseragent(videoID);
|
||||
const expected = {
|
||||
...dbFormatSegment,
|
||||
userAgent: "MeaBot/5.0",
|
||||
};
|
||||
assert.ok(partialDeepEquals(row, expected));
|
||||
done();
|
||||
})
|
||||
.catch(err => done(err));
|
||||
});
|
||||
|
||||
it("Should be able to submit with custom user-agent 1", (done) => {
|
||||
const videoID = "userAgent-1";
|
||||
client(endpoint, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"User-Agent": "com.google.android.youtube/5.0"
|
||||
},
|
||||
data: {
|
||||
userID,
|
||||
videoID,
|
||||
segments: [segment],
|
||||
}
|
||||
})
|
||||
.then(async res => {
|
||||
assert.strictEqual(res.status, 200);
|
||||
const row = await queryUseragent(videoID);
|
||||
const expected = {
|
||||
...dbFormatSegment,
|
||||
userAgent: "Vanced/5.0",
|
||||
};
|
||||
assert.ok(partialDeepEquals(row, expected));
|
||||
done();
|
||||
})
|
||||
.catch(err => done(err));
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user