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);
+ });
+});
|