Skip to content

Commit 7457b51

Browse files
committed
add getByHash tests, remove redundant check
- `{}` always returns true so the early exit is never taken
1 parent a00048a commit 7457b51

File tree

2 files changed

+74
-2
lines changed

2 files changed

+74
-2
lines changed

src/routes/getSkipSegmentsByHash.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ export async function getSkipSegmentsByHash(req: Request, res: Response): Promis
6767
// Get all video id's that match hash prefix
6868
const segments = await getSegmentsByHash(req, hashPrefix, categories, actionTypes, requiredSegments, service);
6969

70-
if (!segments) return res.status(404).json([]);
71-
7270
const output = Object.entries(segments).map(([videoID, data]) => ({
7371
videoID,
7472
hash: data.hash,

test/cases/getSkipSegmentsByHash.ts

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,4 +581,78 @@ describe("getSkipSegmentsByHash", () => {
581581
})
582582
.catch(err => done(err));
583583
});
584+
585+
it("Should be able to get single segment with requiredSegments", (done) => {
586+
const requiredSegment1 = "fbf0af454059733c8822f6a4ac8ec568e0787f8c0a5ee915dd5b05e0d7a9a388";
587+
client.get(`${endpoint}/17bf?requiredSegment=${requiredSegment1}`)
588+
.then(res => {
589+
assert.strictEqual(res.status, 200);
590+
const data = (res.data as Array<any>).sort((a, b) => a.videoID.localeCompare(b.videoID));
591+
assert.strictEqual(data.length, 1);
592+
const expected = [{
593+
segments: [{
594+
UUID: requiredSegment1
595+
}]
596+
}];
597+
assert.ok(partialDeepEquals(data, expected));
598+
assert.strictEqual(data[0].segments.length, 1);
599+
done();
600+
})
601+
.catch(err => done(err));
602+
});
603+
604+
it("Should return 400 if categories are is number", (done) => {
605+
client.get(`${endpoint}/17bf?categories=3`)
606+
.then(res => {
607+
assert.strictEqual(res.status, 400);
608+
done();
609+
})
610+
.catch(err => done(err));
611+
});
612+
613+
it("Should return 400 if actionTypes is number", (done) => {
614+
client.get(`${endpoint}/17bf?actionTypes=3`)
615+
.then(res => {
616+
assert.strictEqual(res.status, 400);
617+
done();
618+
})
619+
.catch(err => done(err));
620+
});
621+
622+
it("Should return 400 if actionTypes are invalid json", (done) => {
623+
client.get(`${endpoint}/17bf?actionTypes={test}`)
624+
.then(res => {
625+
assert.strictEqual(res.status, 400);
626+
done();
627+
})
628+
.catch(err => done(err));
629+
});
630+
631+
it("Should return 400 if requiredSegments is number", (done) => {
632+
client.get(`${endpoint}/17bf?requiredSegments=3`)
633+
.then(res => {
634+
assert.strictEqual(res.status, 400);
635+
done();
636+
})
637+
.catch(err => done(err));
638+
});
639+
640+
641+
it("Should return 404 if requiredSegments is invalid json", (done) => {
642+
client.get(`${endpoint}/17bf?requiredSegments={test}`)
643+
.then(res => {
644+
assert.strictEqual(res.status, 400);
645+
done();
646+
})
647+
.catch(err => done(err));
648+
});
649+
650+
it("Should return 400 if requiredSegments is not present", (done) => {
651+
client.get(`${endpoint}/17bf?requiredSegment=${fullCategoryVidHash}`)
652+
.then(res => {
653+
assert.strictEqual(res.status, 404);
654+
done();
655+
})
656+
.catch(err => done(err));
657+
});
584658
});

0 commit comments

Comments
 (0)