summary refs log tree commit diff
path: root/util/tests
diff options
context:
space:
mode:
Diffstat (limited to 'util/tests')
-rw-r--r--util/tests/User.test.js43
-rw-r--r--util/tests/setupJest.js23
2 files changed, 66 insertions, 0 deletions
diff --git a/util/tests/User.test.js b/util/tests/User.test.js
new file mode 100644

index 00000000..c0852ebc --- /dev/null +++ b/util/tests/User.test.js
@@ -0,0 +1,43 @@ +const { initDatabase, closeDatabase } = require("../dist/util/Database"); +const { User } = require("../dist/entities/User"); +jest.setTimeout(20000); + +beforeAll((done) => { + initDatabase().then(() => { + done(); + }); +}); + +afterAll(() => { + closeDatabase(); +}); + +describe("User", () => { + test("valid discriminator: 1", async () => { + new User({ discriminator: "1" }).validate(); + }); + test("invalid discriminator: test", async () => { + expect(() => { + new User({ discriminator: "test" }).validate(); + }).toThrow(); + }); + + test("invalid discriminator: 0", async () => { + expect(() => { + new User({ discriminator: "0" }).validate(); + }).toThrow(); + }); + + test("add guild", async () => { + try { + await new User({ guilds: [], discriminator: "1" }, { id: "0" }).save(); + const user = await User.find("0"); + + user.guilds.push(new Guild({ name: "test" })); + + user.save(); + } catch (error) { + console.error(error); + } + }); +}); diff --git a/util/tests/setupJest.js b/util/tests/setupJest.js new file mode 100644
index 00000000..35a3cb52 --- /dev/null +++ b/util/tests/setupJest.js
@@ -0,0 +1,23 @@ +const { performance } = require("perf_hooks"); +const fs = require("fs"); +const path = require("path"); + +// fs.unlinkSync(path.join(__dirname, "..", "database.db")); + +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}`, + }; + }, +});