diff options
author | Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> | 2021-08-24 16:35:39 +0200 |
---|---|---|
committer | Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> | 2021-08-24 16:35:39 +0200 |
commit | 01ead4f734ac80f571dcd3e5c68454c563b3da62 (patch) | |
tree | 9964728b188bca8d2f33cf0eb42bb261d70527ed /util | |
parent | :construction: gateway (diff) | |
download | server-01ead4f734ac80f571dcd3e5c68454c563b3da62.tar.xz |
:white_check_mark: util unit tests
Diffstat (limited to 'util')
-rw-r--r-- | util/package.json | 11 | ||||
-rw-r--r-- | util/tests/validate.test.js | 27 |
2 files changed, 36 insertions, 2 deletions
diff --git a/util/package.json b/util/package.json index 870c9344..397eb47f 100644 --- a/util/package.json +++ b/util/package.json @@ -5,10 +5,11 @@ "main": "dist/index.js", "types": "dist/index.d.ts", "scripts": { - "test": "jest", + "start": "npm run build && node dist/", + "test": "npm run build && jest", "postinstall": "npm run build", "build": "npx tsc -b .", - "generate:schema": "npx typescript-json-schema tsconfig.json '*' -o src/models/schema.json" + "generate:schema": "npx typescript-json-schema tsconfig.json '*' -o src/entities/schema.json" }, "repository": { "type": "git", @@ -41,6 +42,7 @@ "class-validator": "^0.13.1", "dot-prop": "^6.0.1", "env-paths": "^2.2.1", + "jest-test-performance": "^1.0.1", "jsonwebtoken": "^8.5.1", "missing-native-js-functions": "^1.2.10", "node-fetch": "^2.6.1", @@ -50,5 +52,10 @@ "typeorm": "^0.2.37", "typescript": "^4.3.5", "typescript-json-schema": "github:fosscord/typescript-json-schema" + }, + "jest": { + "setupFilesAfterEnv": [ + "jest-test-performance" + ] } } diff --git a/util/tests/validate.test.js b/util/tests/validate.test.js new file mode 100644 index 00000000..629c864f --- /dev/null +++ b/util/tests/validate.test.js @@ -0,0 +1,27 @@ +const { initDatabase } = require("../dist/util/Database"); +const { User } = require("../dist/entities/User"); + +beforeAll(async () => { + await initDatabase(); + + new User().validate(); // initalize schema validator +}); + +describe("Validate model class properties", () => { + describe("validation should be faster than 20ms", () => { + expect(() => new User().validate()).toBeFasterThan(20); + }); + + describe("User", () => { + test("object instead of string", () => { + expect(() => { + new User({ username: {} }).validate(); + }).toThrow(); + }); + }); + + test("should not set opts", () => { + const user = new User({ opts: { id: 0 } }); + expect(user.opts.id).not.toBe(0); + }); +}); |