From 271e439b1a1e756f2410e25766d587479c668a7d Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Tue, 24 Aug 2021 16:35:39 +0200 Subject: :white_check_mark: util unit tests --- util/package.json | 11 +++++++++-- util/tests/validate.test.js | 27 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 util/tests/validate.test.js 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); + }); +}); -- cgit 1.4.1