Skip to content

Commit 9d72362

Browse files
authored
Merge pull request #504 from mchangrh/more-coverage
More test coverage, more tests
2 parents 96db571 + 19289a1 commit 9d72362

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+1895
-248
lines changed

.github/workflows/postgres-redis-ci.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,6 @@ jobs:
2626
env:
2727
TEST_POSTGRES: true
2828
timeout-minutes: 5
29-
run: npm test
29+
run: npx nyc --silent npm test
30+
- name: Generate coverage report
31+
run: npm run cover:report

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,5 @@ working
4747
/dist/
4848

4949
# nyc coverage output
50-
.nyc_output/
50+
.nyc_output/
51+
coverage/

.nycrc.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
{
2+
"extends": "@istanbuljs/nyc-config-typescript",
3+
"check-coverage": false,
4+
"ski-full": true,
5+
"reporter": ["text", "html"],
6+
"include": [
7+
"src/**/*.ts"
8+
],
29
"exclude": [
3-
"src/routes/addUnlitedVideo.ts"
10+
"src/routes/addUnlistedVideo.ts",
11+
"src/cronjob/downvoteSegmentArchiveJob.ts",
12+
"src/databases/*"
413
]
514
}

ci.json

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
"globalSalt": "testSalt",
55
"adminUserID": "4bdfdc9cddf2c7d07a8a87b57bf6d25389fb75d1399674ee0e0938a6a60f4c3b",
66
"newLeafURLs": ["placeholder"],
7-
"discordReportChannelWebhookURL": "http://127.0.0.1:8081/ReportChannelWebhook",
8-
"discordFirstTimeSubmissionsWebhookURL": "http://127.0.0.1:8081/FirstTimeSubmissionsWebhook",
9-
"discordCompletelyIncorrectReportWebhookURL": "http://127.0.0.1:8081/CompletelyIncorrectReportWebhook",
10-
"discordNeuralBlockRejectWebhookURL": "http://127.0.0.1:8081/NeuralBlockRejectWebhook",
7+
"discordReportChannelWebhookURL": "http://127.0.0.1:8081/webhook/ReportChannel",
8+
"discordFirstTimeSubmissionsWebhookURL": "http://127.0.0.1:8081/webhook/FirstTimeSubmissions",
9+
"discordCompletelyIncorrectReportWebhookURL": "http://127.0.0.1:8081/webhook/CompletelyIncorrectReport",
10+
"discordNeuralBlockRejectWebhookURL": "http://127.0.0.1:8081/webhook/NeuralBlockReject",
1111
"neuralBlockURL": "http://127.0.0.1:8081/NeuralBlock",
12+
"userCounterURL": "http://127.0.0.1:8081/UserCounter",
1213
"behindProxy": true,
1314
"postgres": {
1415
"user": "ci_db_user",
@@ -70,5 +71,10 @@
7071
"statusCode": 200
7172
}
7273
},
74+
"patreon": {
75+
"clientId": "testClientID",
76+
"clientSecret": "testClientSecret",
77+
"redirectUri": "http://127.0.0.1/fake/callback"
78+
},
7379
"minReputationToSubmitFiller": -1
7480
}

package-lock.json

Lines changed: 109 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"main": "src/index.ts",
66
"scripts": {
77
"test": "npm run tsc && ts-node test/test.ts",
8-
"test:coverage": "nyc npm run test",
8+
"cover": "nyc npm test",
9+
"cover:report": "nyc report",
910
"dev": "nodemon",
1011
"dev:bash": "nodemon -x 'npm test ; npm start'",
1112
"postgres:docker": "docker run --rm -p 5432:5432 -e POSTGRES_USER=ci_db_user -e POSTGRES_PASSWORD=ci_db_pass postgres:alpine",
@@ -32,15 +33,18 @@
3233
"sync-mysql": "^3.0.1"
3334
},
3435
"devDependencies": {
36+
"@istanbuljs/nyc-config-typescript": "^1.0.2",
3537
"@types/better-sqlite3": "^7.5.0",
3638
"@types/cron": "^2.0.0",
3739
"@types/express": "^4.17.13",
3840
"@types/lodash": "^4.14.182",
3941
"@types/mocha": "^9.1.1",
4042
"@types/node": "^18.0.3",
4143
"@types/pg": "^8.6.5",
44+
"@types/sinon": "^10.0.13",
4245
"@typescript-eslint/eslint-plugin": "^5.30.6",
4346
"@typescript-eslint/parser": "^5.30.6",
47+
"axios-mock-adapter": "^1.21.2",
4448
"eslint": "^8.19.0",
4549
"mocha": "^10.0.0",
4650
"nodemon": "^2.0.19",

src/app.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ function setupRoutes(router: Router) {
200200
router.get("/api/generateToken/:type", generateTokenRequest);
201201
router.get("/api/verifyToken", verifyTokenRequest);
202202

203+
/* istanbul ignore next */
203204
if (config.postgres?.enabled) {
204205
router.get("/database", (req, res) => dumpDatabase(req, res, true));
205206
router.get("/database.json", (req, res) => dumpDatabase(req, res, false));

src/routes/deleteLockCategories.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export async function deleteLockCategoriesEndpoint(req: DeleteLockCategoriesRequ
3535
|| !categories
3636
|| !Array.isArray(categories)
3737
|| categories.length === 0
38+
|| actionTypes && !Array.isArray(actionTypes)
3839
|| actionTypes.length === 0
3940
) {
4041
return res.status(400).json({
@@ -48,7 +49,7 @@ export async function deleteLockCategoriesEndpoint(req: DeleteLockCategoriesRequ
4849

4950
if (!userIsVIP) {
5051
return res.status(403).json({
51-
message: "Must be a VIP to mark videos.",
52+
message: "Must be a VIP to lock videos.",
5253
});
5354
}
5455

src/routes/generateToken.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export async function generateTokenRequest(req: GenerateTokenRequest, res: Respo
2424
if (type === TokenType.patreon || (type === TokenType.local && adminUserIDHash === config.adminUserID)) {
2525
const licenseKey = await createAndSaveToken(type, code);
2626

27+
/* istanbul ignore else */
2728
if (licenseKey) {
2829
return res.status(200).send(`
2930
<h1>
@@ -45,5 +46,7 @@ export async function generateTokenRequest(req: GenerateTokenRequest, res: Respo
4546
</h1>
4647
`);
4748
}
49+
} else {
50+
return res.sendStatus(403);
4851
}
4952
}

src/routes/getDaysSavedFormatted.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ export async function getDaysSavedFormatted(req: Request, res: Response): Promis
77
if (row !== undefined) {
88
//send this result
99
return res.send({
10-
daysSaved: row.daysSaved.toFixed(2),
10+
daysSaved: row.daysSaved?.toFixed(2) ?? "0",
11+
});
12+
} else {
13+
return res.send({
14+
daysSaved: 0
1115
});
1216
}
1317
}

0 commit comments

Comments
 (0)