Skip to content

Commit 3c6803f

Browse files
committed
getViewsForUser
1 parent 467443a commit 3c6803f

File tree

1 file changed

+37
-43
lines changed

1 file changed

+37
-43
lines changed

test/cases/getViewsForUser.ts

Lines changed: 37 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import { getHash } from "../../src/utils/getHash";
21
import { db } from "../../src/databases/databases";
32
import { client } from "../utils/httpClient";
43
import assert from "assert";
4+
import { genUsers, User } from "../utils/genUser";
5+
import { insertSegment } from "../utils/segmentQueryGen";
56

67
// helpers
78
const endpoint = "/api/getViewsForUser";
@@ -10,53 +11,46 @@ const getViewsForUser = (userID: string) => client({
1011
params: { userID }
1112
});
1213

13-
const getViewUserOne = "getViewUser1";
14-
const userOneViewsFirst = 30;
15-
const userOneViewsSecond = 0;
14+
const cases = [
15+
"u-1",
16+
"u-2",
17+
"u-3"
18+
];
19+
const users = genUsers("getViewUser", cases);
1620

17-
const getViewUserTwo = "getViewUser2";
18-
const userTwoViews = 0;
19-
20-
const getViewUserThree = "getViewUser3";
21+
// set views for users
22+
users["u-1"].info["views1"] = 30;
23+
users["u-1"].info["views2"] = 0;
24+
users["u-1"].info["views"] = users["u-1"].info.views1 + users["u-1"].info.views2;
25+
users["u-2"].info["views"] = 0;
26+
users["u-3"].info["views"] = 0;
2127

28+
const checkUserViews = (user: User) =>
29+
getViewsForUser(user.privID)
30+
.then(result => {
31+
assert.strictEqual(result.status, 200);
32+
assert.strictEqual(result.data.viewCount, user.info.views);
33+
});
2234

2335
describe("getViewsForUser", function() {
2436
before(() => {
25-
const insertSponsorTimeQuery = 'INSERT INTO "sponsorTimes" ("videoID", "startTime", "endTime", "votes", "UUID", "userID", "timeSubmitted", views, category, "actionType", "videoDuration", "shadowHidden", "hashedVideoID") VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
26-
db.prepare("run", insertSponsorTimeQuery, ["getViewUserVideo", 0, 1, 0, "getViewUserVideo0", getHash(getViewUserOne), 0, userOneViewsFirst, "sponsor", "skip", 0, 0, "getViewUserVideo"]);
27-
db.prepare("run", insertSponsorTimeQuery, ["getViewUserVideo", 0, 1, 0, "getViewUserVideo1", getHash(getViewUserOne), 0, userOneViewsSecond, "sponsor", "skip", 0, 0, "getViewUserVideo"]);
28-
db.prepare("run", insertSponsorTimeQuery, ["getViewUserVideo", 0, 1, 0, "getViewUserVideo2", getHash(getViewUserTwo), 0, userTwoViews, "sponsor", "skip", 0, 0, "getViewUserVideo"]);
29-
});
30-
it("Should get back views for user one", (done) => {
31-
getViewsForUser(getViewUserOne)
32-
.then(result => {
33-
assert.strictEqual(result.data.viewCount, userOneViewsFirst + userOneViewsSecond);
34-
done();
35-
})
36-
.catch(err => done(err));
37-
});
38-
it("Should get back views for user two", (done) => {
39-
getViewsForUser(getViewUserTwo)
40-
.then(result => {
41-
assert.strictEqual(result.data.viewCount, userTwoViews);
42-
done();
43-
})
44-
.catch(err => done(err));
37+
// add views for users
38+
insertSegment(db, { userID: users["u-1"].pubID, views: users["u-1"].info.views1 });
39+
insertSegment(db, { userID: users["u-1"].pubID, views: users["u-1"].info.views2 });
40+
insertSegment(db, { userID: users["u-2"].pubID, views: users["u-2"].info.views });
4541
});
46-
it("Should get 404 if no submissions", (done) => {
47-
getViewsForUser(getViewUserThree)
48-
.then(result => {
49-
assert.strictEqual(result.status, 404);
50-
done();
51-
})
52-
.catch(err => done(err));
53-
});
54-
it("Should return 400 if no userID provided", (done) => {
42+
it("Should get back views for user one", () =>
43+
checkUserViews(users["u-1"])
44+
);
45+
it("Should get back views for user two", () =>
46+
checkUserViews(users["u-2"])
47+
);
48+
it("Should get 404 if no submissions", () =>
49+
getViewsForUser(users["u-3"].pubID)
50+
.then(result => assert.strictEqual(result.status, 404))
51+
);
52+
it("Should return 400 if no userID provided", () =>
5553
client({ url: endpoint })
56-
.then(res => {
57-
assert.strictEqual(res.status, 400);
58-
done();
59-
})
60-
.catch(err => done(err));
61-
});
54+
.then(res => assert.strictEqual(res.status, 400))
55+
);
6256
});

0 commit comments

Comments
 (0)