✨ unit test
This commit is contained in:
parent
ad05822bbf
commit
41dd600c06
11
util/.vscode/launch.json
vendored
11
util/.vscode/launch.json
vendored
@ -8,10 +8,19 @@
|
||||
"sourceMaps": true,
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Launch Server",
|
||||
"name": "Launch Util",
|
||||
"program": "${workspaceFolder}/dist/index.js",
|
||||
"preLaunchTask": "tsc: build - tsconfig.json",
|
||||
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
|
||||
},
|
||||
{
|
||||
"name": "Debug Jest Tests",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"runtimeArgs": ["--inspect-brk", "${workspaceRoot}/node_modules/jest/bin/jest.js", "--runInBand"],
|
||||
"console": "integratedTerminal",
|
||||
"internalConsoleOptions": "neverOpen",
|
||||
"port": 9229
|
||||
}
|
||||
]
|
||||
}
|
||||
|
10159
util/package-lock.json
generated
10159
util/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -6,8 +6,9 @@
|
||||
"types": "dist/index.d.ts",
|
||||
"scripts": {
|
||||
"start": "npm run build && node dist/",
|
||||
"patch": "patch-package",
|
||||
"test": "npm run build && jest",
|
||||
"postinstall": "npm run build",
|
||||
"postinstall": "npm run patch && npm run build",
|
||||
"build": "npx tsc -b .",
|
||||
"generate:schema": "npx typescript-json-schema tsconfig.json '*' -o src/entities/schema.json"
|
||||
},
|
||||
@ -46,12 +47,12 @@
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"missing-native-js-functions": "^1.2.10",
|
||||
"node-fetch": "^2.6.1",
|
||||
"patch-package": "^6.4.7",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"sqlite3": "^5.0.2",
|
||||
"ts-transform-json-schema": "^2.0.3",
|
||||
"typeorm": "^0.2.37",
|
||||
"typescript": "^4.3.5",
|
||||
"typescript-json-schema": "github:fosscord/typescript-json-schema"
|
||||
"typescript-json-schema": "^0.50.1"
|
||||
},
|
||||
"jest": {
|
||||
"setupFilesAfterEnv": [
|
||||
|
@ -8,6 +8,7 @@ const ajv = new Ajv({
|
||||
removeAdditional: "all",
|
||||
useDefaults: true,
|
||||
coerceTypes: true,
|
||||
// @ts-ignore
|
||||
validateFormats: false,
|
||||
allowUnionTypes: true,
|
||||
});
|
||||
@ -23,12 +24,18 @@ export class BaseClass extends BaseEntity {
|
||||
this.assign(props);
|
||||
|
||||
if (!this.construct.schema) this.construct.schema = { ...schema, $ref: `#/definitions/${this.construct.name}` };
|
||||
|
||||
this.id = this.opts.id || Snowflake.generate();
|
||||
}
|
||||
|
||||
get construct(): any {
|
||||
return this.constructor;
|
||||
}
|
||||
|
||||
get metadata() {
|
||||
return this.construct.getRepository().metadata;
|
||||
}
|
||||
|
||||
assign(props: any) {
|
||||
if (!props || typeof props !== "object") return;
|
||||
|
||||
@ -39,8 +46,6 @@ export class BaseClass extends BaseEntity {
|
||||
|
||||
Object.defineProperty(this, key, { value: props[key] });
|
||||
}
|
||||
|
||||
this.id = this.opts.id || Snowflake.generate();
|
||||
}
|
||||
|
||||
@BeforeUpdate()
|
||||
@ -48,10 +53,7 @@ export class BaseClass extends BaseEntity {
|
||||
validate() {
|
||||
const valid = ajv.validate(this.construct.schema, this.toJSON());
|
||||
if (!valid) throw ajv.errors;
|
||||
}
|
||||
|
||||
get metadata() {
|
||||
return this.construct.getRepository().metadata;
|
||||
return this;
|
||||
}
|
||||
|
||||
toJSON(): any {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Column, Entity, JoinColumn, OneToMany, OneToOne } from "typeorm";
|
||||
import { Column, Entity, JoinColumn, OneToMany } from "typeorm";
|
||||
import { BaseClass } from "./BaseClass";
|
||||
import { BitField } from "../util/BitField";
|
||||
import { Relationship } from "./Relationship";
|
||||
|
@ -1,10 +1,9 @@
|
||||
import "reflect-metadata";
|
||||
|
||||
// export * as Constants from "../util/Constants";
|
||||
export * from "./util/index";
|
||||
export * from "./interfaces/index";
|
||||
export * from "./entities/index";
|
||||
export * from "./util/index";
|
||||
import "./test";
|
||||
|
||||
// import Config from "../util/Config";
|
||||
// import db, { MongooseCache, toObject } from "./util/Database";
|
||||
|
@ -10,6 +10,7 @@ var promise: Promise<any>;
|
||||
export function initDatabase() {
|
||||
if (promise) return promise; // prevent initalizing multiple times
|
||||
|
||||
console.log("[Database] connecting ...");
|
||||
// @ts-ignore
|
||||
promise = createConnection({
|
||||
type: "sqlite",
|
||||
@ -19,7 +20,7 @@ export function initDatabase() {
|
||||
logging: false,
|
||||
});
|
||||
|
||||
promise.then(() => console.log("[Database] connected"));
|
||||
|
||||
return promise;
|
||||
}
|
||||
|
||||
initDatabase();
|
||||
|
@ -9,7 +9,7 @@ export function checkToken(token: string, jwtSecret: string): Promise<any> {
|
||||
jwt.verify(token, jwtSecret, JWTOptions, async (err, decoded: any) => {
|
||||
if (err || !decoded) return rej("Invalid Token");
|
||||
|
||||
const user = await User.findOneOrFail(
|
||||
const user = await User.findOne(
|
||||
{ id: decoded.id },
|
||||
{ select: ["user_data", "bot", "disabled", "deleted"] }
|
||||
);
|
||||
|
@ -1,7 +1,8 @@
|
||||
export * from "./Database";
|
||||
|
||||
export * from "./Regex";
|
||||
export * from "./String";
|
||||
export * from "./BitField";
|
||||
export * from "./Database";
|
||||
export * from "./Intents";
|
||||
export * from "./MessageFlags";
|
||||
export * from "./Permissions";
|
||||
|
@ -3,8 +3,7 @@ const { User } = require("../dist/entities/User");
|
||||
|
||||
beforeAll(async () => {
|
||||
await initDatabase();
|
||||
|
||||
new User().validate(); // initalize schema validator
|
||||
new User().validate();
|
||||
});
|
||||
|
||||
describe("Validate model class properties", () => {
|
||||
@ -24,4 +23,8 @@ describe("Validate model class properties", () => {
|
||||
const user = new User({ opts: { id: 0 } });
|
||||
expect(user.opts.id).not.toBe(0);
|
||||
});
|
||||
|
||||
test("test", () => {
|
||||
expect(1).toBe(1);
|
||||
});
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user