✨ 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
	 Flam3rboy
						Flam3rboy