summary refs log tree commit diff
path: root/util/tests
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-26 02:07:16 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-26 02:07:16 +0200
commitc4426920a113b419c22f27eda347e5a04c108acc (patch)
treee475e8af64c3e6c7e6086c1cc09c3a8daa9046a0 /util/tests
parent:sparkles: unit test (diff)
downloadserver-c4426920a113b419c22f27eda347e5a04c108acc.tar.xz
:bug: fix unit tests
Diffstat (limited to 'util/tests')
-rw-r--r--util/tests/setupJest.js19
-rw-r--r--util/tests/validate.test.js25
2 files changed, 32 insertions, 12 deletions
diff --git a/util/tests/setupJest.js b/util/tests/setupJest.js
new file mode 100644
index 00000000..551d2be5
--- /dev/null
+++ b/util/tests/setupJest.js
@@ -0,0 +1,19 @@
+const { performance } = require("perf_hooks");
+
+global.expect.extend({
+	toBeFasterThan: async (func, target) => {
+		const start = performance.now();
+		var error;
+		try {
+			await func();
+		} catch (e) {
+			error = e.toString();
+		}
+		const time = performance.now() - start;
+
+		return {
+			pass: time < target && !error,
+			message: () => error || `${func.name} took ${time}ms of maximum ${target}`,
+		};
+	},
+});
diff --git a/util/tests/validate.test.js b/util/tests/validate.test.js
index d36da1ed..c885a167 100644
--- a/util/tests/validate.test.js
+++ b/util/tests/validate.test.js
@@ -1,30 +1,31 @@
 const { initDatabase } = require("../dist/util/Database");
 const { User } = require("../dist/entities/User");
+jest.setTimeout(10000);
 
-beforeAll(async () => {
-	await initDatabase();
-	new User().validate();
+beforeAll((done) => {
+	initDatabase().then(() => {
+		new User().validate(); // warm up schema/model
+		done();
+	});
 });
 
 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", () => {
+		test("object instead of string", async () => {
 			expect(() => {
 				new User({ username: {} }).validate();
 			}).toThrow();
 		});
 	});
 
+	test("validation should be faster than 20ms", () => {
+		expect(() => {
+			new User().validate();
+		}).toBeFasterThan(20);
+	});
+
 	test("should not set opts", () => {
 		const user = new User({ opts: { id: 0 } });
 		expect(user.opts.id).not.toBe(0);
 	});
-
-	test("test", () => {
-		expect(1).toBe(1);
-	});
 });