Merge pull request #250 from mchangrh/fix-getskipsegment-test

Fix Test Suite
This commit is contained in:
Ajay Ramachandran
2021-06-16 00:47:55 -04:00
committed by GitHub
2 changed files with 67 additions and 75 deletions

View File

@@ -13,7 +13,7 @@ describe('getSkipSegments', () => {
await db.prepare("run", startOfQuery + "('test3', 1, 11, 2, 0, '1-uuid-4', 'testman', 0, 50, 'sponsor', 'YouTube', 200, 0, 0, '" + getHash('test3', 1) + "')"); await db.prepare("run", startOfQuery + "('test3', 1, 11, 2, 0, '1-uuid-4', 'testman', 0, 50, 'sponsor', 'YouTube', 200, 0, 0, '" + getHash('test3', 1) + "')");
await db.prepare("run", startOfQuery + "('test3', 7, 22, -3, 0, '1-uuid-5', 'testman', 0, 50, 'sponsor', 'YouTube', 300, 0, 0, '" + getHash('test3', 1) + "')"); await db.prepare("run", startOfQuery + "('test3', 7, 22, -3, 0, '1-uuid-5', 'testman', 0, 50, 'sponsor', 'YouTube', 300, 0, 0, '" + getHash('test3', 1) + "')");
await db.prepare("run", startOfQuery + "('multiple', 1, 11, 2, 0, '1-uuid-6', 'testman', 0, 50, 'intro', 'YouTube', 400, 0, 0, '" + getHash('multiple', 1) + "')"); await db.prepare("run", startOfQuery + "('multiple', 1, 11, 2, 0, '1-uuid-6', 'testman', 0, 50, 'intro', 'YouTube', 400, 0, 0, '" + getHash('multiple', 1) + "')");
await db.prepare("run", startOfQuery + "('multiple', 20, 33, 2, 0, '1-uuid-7', 'testman', 0, 50, 'intro', 'YouTube', 500, 0, 0, '" + getHash('multiple', 1) + "')"); await db.prepare("run", startOfQuery + "('multiple', 20, 33, 2, 0, '1-uuid-7', 'testman', 0, 50, 'intro', 'YouTube', 400, 0, 0, '" + getHash('multiple', 1) + "')");
await db.prepare("run", startOfQuery + "('locked', 20, 33, 2, 1, '1-uuid-locked-8', 'testman', 0, 50, 'intro', 'YouTube', 230, 0, 0, '" + getHash('locked', 1) + "')"); await db.prepare("run", startOfQuery + "('locked', 20, 33, 2, 1, '1-uuid-locked-8', 'testman', 0, 50, 'intro', 'YouTube', 230, 0, 0, '" + getHash('locked', 1) + "')");
await db.prepare("run", startOfQuery + "('locked', 20, 34, 100000, 0, '1-uuid-9', 'testman', 0, 50, 'intro', 'YouTube', 190, 0, 0, '" + getHash('locked', 1) + "')"); await db.prepare("run", startOfQuery + "('locked', 20, 34, 100000, 0, '1-uuid-9', 'testman', 0, 50, 'intro', 'YouTube', 190, 0, 0, '" + getHash('locked', 1) + "')");
await db.prepare("run", startOfQuery + "('onlyHiddenSegments', 20, 34, 100000, 0, 'onlyHiddenSegments', 'testman', 0, 50, 'sponsor', 'YouTube', 190, 1, 0, '" + getHash('onlyHiddenSegments', 1) + "')"); await db.prepare("run", startOfQuery + "('onlyHiddenSegments', 20, 34, 100000, 0, 'onlyHiddenSegments', 'testman', 0, 50, 'sponsor', 'YouTube', 190, 1, 0, '" + getHash('onlyHiddenSegments', 1) + "')");
@@ -22,111 +22,104 @@ describe('getSkipSegments', () => {
}); });
it('Should be able to get a time by category 1', () => { it('Should be able to get a time by category 1', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&category=sponsor") fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&category=sponsor")
.then(async res => { .then(async res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 200) done("Status code was: " + res.status);
else { else {
const data = await res.json(); const data = await res.json();
if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11 if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11
&& data[0].category === "sponsor" && data[0].UUID === "1-uuid-0" && data[0].videoDuration === 100) { && data[0].category === "sponsor" && data[0].UUID === "1-uuid-0" && data[0].videoDuration === 100) {
return; done();
} else { } else {
return ("Received incorrect body: " + (await res.text())); done("Received incorrect body: " + (await res.text()));
} }
} }
}) })
.catch(err => "Couldn't call endpoint"); .catch(err => "Couldn't call endpoint");
}); });
it('Should be able to get a time by category for a different service 1', () => { it('Should be able to get a time by category for a different service 1', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&category=sponsor&service=PeerTube") fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest2&category=sponsor&service=PeerTube")
.then(async res => { .then(async res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 200) done("Status code was: " + res.status);
else { else {
const data = await res.json(); const data = await res.json();
if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11 if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11
&& data[0].category === "sponsor" && data[0].UUID === "1-uuid-0-1" && data[0].videoDuration === 120) { && data[0].category === "sponsor" && data[0].UUID === "1-uuid-0-1" && data[0].videoDuration === 120) {
return; done();
} else { } else {
return ("Received incorrect body: " + (await res.text())); done("Received incorrect body: " + (await res.text()));
} }
} }
}) })
.catch(err => "Couldn't call endpoint"); .catch(err => "Couldn't call endpoint");
}); });
it('Should be able to get a time by category 2', () => { it('Should be able to get a time by category 2', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&category=intro") fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&category=intro")
.then(async res => { .then(async res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 200) done("Status code was: " + res.status);
else { else {
const data = await res.json(); const data = await res.json();
if (data.length === 1 && data[0].segment[0] === 20 && data[0].segment[1] === 33 if (data.length === 1 && data[0].segment[0] === 20 && data[0].segment[1] === 33
&& data[0].category === "intro" && data[0].UUID === "1-uuid-2") { && data[0].category === "intro" && data[0].UUID === "1-uuid-2") {
return; done();
} else { } else {
return ("Received incorrect body: " + (await res.text())); done("Received incorrect body: " + (await res.text()));
} }
} }
}) })
.catch(err => ("Couldn't call endpoint")); .catch(err => ("Couldn't call endpoint"));
}); });
it('Should be able to get a time by categories array', () => { it('Should be able to get a time by categories array', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&categories=[\"sponsor\"]") fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&categories=[\"sponsor\"]")
.then(async res => { .then(async res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 200) done("Status code was: " + res.status);
else { else {
const data = await res.json(); const data = await res.json();
if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11 if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11
&& data[0].category === "sponsor" && data[0].UUID === "1-uuid-0" && data[0].videoDuration === 100) { && data[0].category === "sponsor" && data[0].UUID === "1-uuid-0" && data[0].videoDuration === 100) {
return; done();
} else { } else {
return ("Received incorrect body: " + (await res.text())); done("Received incorrect body: " + (await res.text()));
} }
} }
}) })
.catch(err => ("Couldn't call endpoint")); .catch(err => ("Couldn't call endpoint"));
}); });
it('Should be able to get a time by categories array 2', () => { it('Should be able to get a time by categories array 2', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&categories=[\"intro\"]") fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&categories=[\"intro\"]")
.then(async res => { .then(async res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 200) done("Status code was: " + res.status);
else { else {
const data = await res.json(); const data = await res.json();
if (data.length === 1 && data[0].segment[0] === 20 && data[0].segment[1] === 33 if (data.length === 1 && data[0].segment[0] === 20 && data[0].segment[1] === 33
&& data[0].category === "intro" && data[0].UUID === "1-uuid-2" && data[0].videoDuration === 101) { && data[0].category === "intro" && data[0].UUID === "1-uuid-2" && data[0].videoDuration === 101) {
return; done();
} else { } else {
return ("Received incorrect body: " + (await res.text())); done("Received incorrect body: " + (await res.text()));
} }
} }
}) })
.catch(err => ("Couldn't call endpoint")); .catch(err => ("Couldn't call endpoint"));
}); });
it('Should be empty if all submissions are hidden', () => { it('Should return 404 if all submissions are hidden', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=onlyHiddenSegments") fetch(getbaseURL() + "/api/skipSegments?videoID=onlyHiddenSegments")
.then(async res => { .then(res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 404) done("non 404 respone code: " + res.status);
else { else done(); // pass
const data = await res.json();
if (data.length === 0) {
return;
} else {
return ("Received incorrect body: " + (await res.text()));
}
}
}) })
.catch(err => ("Couldn't call endpoint")); .catch(err => ("Couldn't call endpoint"));
}); });
it('Should be able to get multiple times by category', () => { it('Should be able to get multiple times by category', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=multiple&categories=[\"intro\"]") fetch(getbaseURL() + "/api/skipSegments?videoID=multiple&categories=[\"intro\"]")
.then(async res => { .then(async res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 200)done("Status code was: " + res.status);
else { else {
const body = await res.text(); const body = await res.text();
const data = JSON.parse(body); const data = JSON.parse(body);
@@ -134,28 +127,28 @@ describe('getSkipSegments', () => {
let success = true; let success = true;
for (const segment of data) { for (const segment of data) {
if ((segment.segment[0] !== 20 || segment.segment[1] !== 33 if ((segment.segment[0] !== 20 || segment.segment[1] !== 33
|| segment.category !== "intro" || segment.UUID !== "1-uuid-7" || segment.videoDuration === 500) && || segment.category !== "intro" || segment.UUID !== "1-uuid-7") &&
(segment.segment[0] !== 1 || segment.segment[1] !== 11 (segment.segment[0] !== 1 || segment.segment[1] !== 11
|| segment.category !== "intro" || segment.UUID !== "1-uuid-6" || segment.videoDuration === 400)) { || segment.category !== "intro" || segment.UUID !== "1-uuid-6")) {
success = false; success = false;
break; break;
} }
} }
if (success) return; if (success) done();
else return ("Received incorrect body: " + body); else done("Received incorrect body: " + body);
} else { } else {
return ("Received incorrect body: " + body); done("Received incorrect body: " + body);
} }
} }
}) })
.catch(err => ("Couldn't call endpoint\n\n" + err)); .catch(err => ("Couldn't call endpoint\n\n" + err));
}); });
it('Should be able to get multiple times by multiple categories', () => { it('Should be able to get multiple times by multiple categories', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&categories=[\"sponsor\", \"intro\"]") fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&categories=[\"sponsor\", \"intro\"]")
.then(async res => { .then(async res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 200) done("Status code was: " + res.status);
else { else {
const body = await res.text(); const body = await res.text();
const data = JSON.parse(body); const data = JSON.parse(body);
@@ -172,57 +165,57 @@ describe('getSkipSegments', () => {
} }
} }
if (success) return; if (success) done();
else return ("Received incorrect body: " + body); else done("Received incorrect body: " + body);
} else { } else {
return ("Received incorrect body: " + body); done("Received incorrect body: " + body);
} }
} }
}) })
.catch(err => ("Couldn't call endpoint")); .catch(err => ("Couldn't call endpoint"));
}); });
it('Should be possible to send unexpected query parameters', () => { it('Should be possible to send unexpected query parameters', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&fakeparam=hello&category=sponsor") fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest&fakeparam=hello&category=sponsor")
.then(async res => { .then(async res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 200) done("Status code was: " + res.status);
else { else {
const body = await res.text(); const body = await res.text();
const data = JSON.parse(body); const data = JSON.parse(body);
if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11 if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11
&& data[0].category === "sponsor" && data[0].UUID === "1-uuid-0") { && data[0].category === "sponsor" && data[0].UUID === "1-uuid-0") {
return; done();
} else { } else {
return ("Received incorrect body: " + body); done("Received incorrect body: " + body);
} }
} }
}) })
.catch(err => ("Couldn't call endpoint")); .catch(err => done("Couldn't call endpoint"));
}); });
it('Low voted submissions should be hidden', () => { it('Low voted submissions should be hidden', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=test3&category=sponsor") fetch(getbaseURL() + "/api/skipSegments?videoID=test3&category=sponsor")
.then(async res => { .then(async res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 200) done("Status code was: " + res.status);
else { else {
const body = await res.text(); const body = await res.text();
const data = JSON.parse(body); const data = JSON.parse(body);
if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11 if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11
&& data[0].category === "sponsor" && data[0].UUID === "1-uuid-4") { && data[0].category === "sponsor" && data[0].UUID === "1-uuid-4") {
return; done();
} else { } else {
return ("Received incorrect body: " + body); done("Received incorrect body: " + body);
} }
} }
}) })
.catch(err => ("Couldn't call endpoint")); .catch(err => ("Couldn't call endpoint"));
}); });
it('Should return 404 if no segment found', () => { it('Should return 404 if no segment found', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=notarealvideo") fetch(getbaseURL() + "/api/skipSegments?videoID=notarealvideo")
.then(res => { .then(res => {
if (res.status !== 404) return ("non 404 respone code: " + res.status); if (res.status !== 404) done("non 404 respone code: " + res.status);
else return; // pass else done(); // pass
}) })
.catch(err => ("couldn't call endpoint")); .catch(err => ("couldn't call endpoint"));
}); });
@@ -236,35 +229,35 @@ describe('getSkipSegments', () => {
.catch(err => ("couldn't call endpoint")); .catch(err => ("couldn't call endpoint"));
}); });
it('Should be able send a comma in a query param', () => { it('Should be able send a comma in a query param', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest,test&category=sponsor") fetch(getbaseURL() + "/api/skipSegments?videoID=testtesttest,test&category=sponsor")
.then(async res => { .then(async res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 200) done ("Status code was: " + res.status);
else { else {
const body = await res.text(); const body = await res.text();
const data = JSON.parse(body); const data = JSON.parse(body);
if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11 if (data.length === 1 && data[0].segment[0] === 1 && data[0].segment[1] === 11
&& data[0].category === "sponsor" && data[0].UUID === "1-uuid-1") { && data[0].category === "sponsor" && data[0].UUID === "1-uuid-1") {
return; done();
} else { } else {
return ("Received incorrect body: " + body); done("Received incorrect body: " + body);
} }
} }
}) })
.catch(err => ("Couldn't call endpoint")); .catch(err => ("Couldn't call endpoint"));
}); });
it('Should always get locked segment', () => { it('Should always get locked segment', (done: Done) => {
fetch(getbaseURL() + "/api/skipSegments?videoID=locked&category=intro") fetch(getbaseURL() + "/api/skipSegments?videoID=locked&category=intro")
.then(async res => { .then(async res => {
if (res.status !== 200) return ("Status code was: " + res.status); if (res.status !== 200) done ("Status code was: " + res.status);
else { else {
const data = await res.json(); const data = await res.json();
if (data.length === 1 && data[0].segment[0] === 20 && data[0].segment[1] === 33 if (data.length === 1 && data[0].segment[0] === 20 && data[0].segment[1] === 33
&& data[0].category === "intro" && data[0].UUID === "1-uuid-locked-8") { && data[0].category === "intro" && data[0].UUID === "1-uuid-locked-8") {
return; done();
} else { } else {
return ("Received incorrect body: " + (await res.text())); done("Received incorrect body: " + (await res.text()));
} }
} }
}) })

View File

@@ -80,19 +80,18 @@ describe('getUserInfo', () => {
.catch(err => ("couldn't call endpoint")); .catch(err => ("couldn't call endpoint"));
}); });
it('Should get warning data with public ID', async () => { it('Should get warning data with public ID', (done: Done) => {
try { fetch(getbaseURL() + '/api/userInfo?publicUserID=' + getHash("getuserinfo_warning_0"))
const res = await fetch(getbaseURL() + '/api/userInfo?userID=' + await getHash("getuserinfo_warning_0")) .then(async res => {
if (res.status !== 200) { if (res.status !== 200) {
return 'non 200 (' + res.status + ')'; done('non 200 (' + res.status + ')');
} else { } else {
const data = await res.json();; const data = await res.json();
if (data.warnings !== 1) return 'wrong number of warnings: ' + data.warnings + ', not ' + 1; if (data.warnings !== 1) done('wrong number of warnings: ' + data.warnings + ', not ' + 1);
} else done();
} catch (err) {
return "couldn't call endpoint";
} }
})
.catch(err => ("couldn't call endpoint"));
}); });
it('Should get multiple warnings', (done: Done) => { it('Should get multiple warnings', (done: Done) => {