mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-10 21:47:02 +03:00
getViewsForUser
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
import { getHash } from "../../src/utils/getHash";
|
|
||||||
import { db } from "../../src/databases/databases";
|
import { db } from "../../src/databases/databases";
|
||||||
import { client } from "../utils/httpClient";
|
import { client } from "../utils/httpClient";
|
||||||
import assert from "assert";
|
import assert from "assert";
|
||||||
|
import { genUsers, User } from "../utils/genUser";
|
||||||
|
import { insertSegment } from "../utils/segmentQueryGen";
|
||||||
|
|
||||||
// helpers
|
// helpers
|
||||||
const endpoint = "/api/getViewsForUser";
|
const endpoint = "/api/getViewsForUser";
|
||||||
@@ -10,53 +11,46 @@ const getViewsForUser = (userID: string) => client({
|
|||||||
params: { userID }
|
params: { userID }
|
||||||
});
|
});
|
||||||
|
|
||||||
const getViewUserOne = "getViewUser1";
|
const cases = [
|
||||||
const userOneViewsFirst = 30;
|
"u-1",
|
||||||
const userOneViewsSecond = 0;
|
"u-2",
|
||||||
|
"u-3"
|
||||||
|
];
|
||||||
|
const users = genUsers("getViewUser", cases);
|
||||||
|
|
||||||
const getViewUserTwo = "getViewUser2";
|
// set views for users
|
||||||
const userTwoViews = 0;
|
users["u-1"].info["views1"] = 30;
|
||||||
|
users["u-1"].info["views2"] = 0;
|
||||||
const getViewUserThree = "getViewUser3";
|
users["u-1"].info["views"] = users["u-1"].info.views1 + users["u-1"].info.views2;
|
||||||
|
users["u-2"].info["views"] = 0;
|
||||||
|
users["u-3"].info["views"] = 0;
|
||||||
|
|
||||||
|
const checkUserViews = (user: User) =>
|
||||||
|
getViewsForUser(user.privID)
|
||||||
|
.then(result => {
|
||||||
|
assert.strictEqual(result.status, 200);
|
||||||
|
assert.strictEqual(result.data.viewCount, user.info.views);
|
||||||
|
});
|
||||||
|
|
||||||
describe("getViewsForUser", function() {
|
describe("getViewsForUser", function() {
|
||||||
before(() => {
|
before(() => {
|
||||||
const insertSponsorTimeQuery = 'INSERT INTO "sponsorTimes" ("videoID", "startTime", "endTime", "votes", "UUID", "userID", "timeSubmitted", views, category, "actionType", "videoDuration", "shadowHidden", "hashedVideoID") VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
|
// add views for users
|
||||||
db.prepare("run", insertSponsorTimeQuery, ["getViewUserVideo", 0, 1, 0, "getViewUserVideo0", getHash(getViewUserOne), 0, userOneViewsFirst, "sponsor", "skip", 0, 0, "getViewUserVideo"]);
|
insertSegment(db, { userID: users["u-1"].pubID, views: users["u-1"].info.views1 });
|
||||||
db.prepare("run", insertSponsorTimeQuery, ["getViewUserVideo", 0, 1, 0, "getViewUserVideo1", getHash(getViewUserOne), 0, userOneViewsSecond, "sponsor", "skip", 0, 0, "getViewUserVideo"]);
|
insertSegment(db, { userID: users["u-1"].pubID, views: users["u-1"].info.views2 });
|
||||||
db.prepare("run", insertSponsorTimeQuery, ["getViewUserVideo", 0, 1, 0, "getViewUserVideo2", getHash(getViewUserTwo), 0, userTwoViews, "sponsor", "skip", 0, 0, "getViewUserVideo"]);
|
insertSegment(db, { userID: users["u-2"].pubID, views: users["u-2"].info.views });
|
||||||
});
|
});
|
||||||
it("Should get back views for user one", (done) => {
|
it("Should get back views for user one", () =>
|
||||||
getViewsForUser(getViewUserOne)
|
checkUserViews(users["u-1"])
|
||||||
.then(result => {
|
);
|
||||||
assert.strictEqual(result.data.viewCount, userOneViewsFirst + userOneViewsSecond);
|
it("Should get back views for user two", () =>
|
||||||
done();
|
checkUserViews(users["u-2"])
|
||||||
})
|
);
|
||||||
.catch(err => done(err));
|
it("Should get 404 if no submissions", () =>
|
||||||
});
|
getViewsForUser(users["u-3"].pubID)
|
||||||
it("Should get back views for user two", (done) => {
|
.then(result => assert.strictEqual(result.status, 404))
|
||||||
getViewsForUser(getViewUserTwo)
|
);
|
||||||
.then(result => {
|
it("Should return 400 if no userID provided", () =>
|
||||||
assert.strictEqual(result.data.viewCount, userTwoViews);
|
|
||||||
done();
|
|
||||||
})
|
|
||||||
.catch(err => done(err));
|
|
||||||
});
|
|
||||||
it("Should get 404 if no submissions", (done) => {
|
|
||||||
getViewsForUser(getViewUserThree)
|
|
||||||
.then(result => {
|
|
||||||
assert.strictEqual(result.status, 404);
|
|
||||||
done();
|
|
||||||
})
|
|
||||||
.catch(err => done(err));
|
|
||||||
});
|
|
||||||
it("Should return 400 if no userID provided", (done) => {
|
|
||||||
client({ url: endpoint })
|
client({ url: endpoint })
|
||||||
.then(res => {
|
.then(res => assert.strictEqual(res.status, 400))
|
||||||
assert.strictEqual(res.status, 400);
|
);
|
||||||
done();
|
|
||||||
})
|
|
||||||
.catch(err => done(err));
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user