summary refs log tree commit diff
path: root/util/tests
diff options
context:
space:
mode:
Diffstat (limited to '')
-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); - }); });