From 7790cb2e1d2bc06a91137da980d3f30b7e2516b5 Mon Sep 17 00:00:00 2001 From: Dan Cavanagh Date: Sat, 17 Apr 2021 11:31:04 -0400 Subject: [PATCH] refactor tests for es6 es config updated for es6 ci for es6 test --- .gitignore | 1 + .vscode/launch.json | 17 ++++++--------- package.json | 3 ++- src/tsconfig-es6.json | 3 ++- test/bugs/issue_543.test.ts | 41 ++++++++++++++++++++--------------- test/bugs/issue_549.test.ts | 11 ++++++---- test/node/exceptions.test.ts | 32 +++++++++++++-------------- test/planning/planner.test.ts | 40 +++++++++++++++++----------------- 8 files changed, 78 insertions(+), 70 deletions(-) diff --git a/.gitignore b/.gitignore index 9426f161..9006f6de 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,7 @@ dts lib temp es +es6 amd type_definitions/inversify/*.js diff --git a/.vscode/launch.json b/.vscode/launch.json index 819312f9..51d0bb53 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,21 +10,18 @@ "name": "Mocha Tests", "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha", "args": [ + "-r", + "ts-node/register", "--require", "reflect-metadata", - "-u", - "tdd", "--timeout", "999999", "--colors", - "${workspaceRoot}/test/**/*.test.js" + "${workspaceRoot}/test/**/*.test.ts" ], - "sourceMaps": true, - "outFiles": [ - "${workspaceRoot}/test", - "${workspaceRoot}/src" - ], - "internalConsoleOptions": "openOnSessionStart" + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen", + "protocol": "inspector" }, { "type": "node", @@ -49,4 +46,4 @@ "console": "internalConsole", } ] -} \ No newline at end of file +} diff --git a/package.json b/package.json index 706577f5..ad4e3a6f 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,11 @@ "jsnext:main": "es/inversify.js", "types": "lib/inversify.d.ts", "scripts": { - "build": "npm run build:lib && npm run build:amd && npm run build:es", + "build": "npm run build:lib && npm run build:amd && npm run build:es && npm run build:es6", "build:lib": "tsc -p src/tsconfig.json", "build:amd": "tsc -p src/tsconfig-amd.json", "build:es": "tsc -p src/tsconfig-es.json", + "build:es6": "tsc -p src/tsconfig-es6.json", "clean": "rm -r amd es lib", "pretest": "tslint --project .", "test": "nyc --require ts-node/register mocha test/**/*.test.ts --reporter spec --retries 3 --require 'node_modules/reflect-metadata/Reflect.js' --exit", diff --git a/src/tsconfig-es6.json b/src/tsconfig-es6.json index 5bf79e1b..4fd71e9e 100644 --- a/src/tsconfig-es6.json +++ b/src/tsconfig-es6.json @@ -5,6 +5,7 @@ "extends": "../tsconfig.json", "compilerOptions": { "target": "es6", - "outDir": "../es6" + "outDir": "../es6", + "module": "es6" }, } diff --git a/test/bugs/issue_543.test.ts b/test/bugs/issue_543.test.ts index 206ebaed..095ba1e1 100644 --- a/test/bugs/issue_543.test.ts +++ b/test/bugs/issue_543.test.ts @@ -14,26 +14,31 @@ describe("Issue 543", () => { Root: Symbol.for("Root") }; + interface IIrrelevant {} + interface ICircular{} + interface IChild {} + interface IChild2 {} + @injectable() - class Irrelevant {} + class Irrelevant implements IIrrelevant {} @injectable() - class Child2 { - public circ: unknown; + class Child2 implements IChild2 { + public circ: ICircular; public constructor( - @inject(TYPE.Circular) circ: unknown + @inject(TYPE.Circular) circ: ICircular ) { this.circ = circ; } } @injectable() - class Child { - public irrelevant: unknown; - public child2: unknown; + class Child implements IChild { + public irrelevant: IIrrelevant; + public child2: IChild2; public constructor( - @inject(TYPE.Irrelevant) irrelevant: unknown, - @inject(TYPE.Child2) child2: unknown + @inject(TYPE.Irrelevant) irrelevant: IIrrelevant, + @inject(TYPE.Child2) child2: IChild2 ) { this.irrelevant = irrelevant; this.child2 = child2; @@ -41,12 +46,12 @@ describe("Issue 543", () => { } @injectable() - class Circular { - public irrelevant: unknown; - public child: unknown; + class Circular implements Circular { + public irrelevant: IIrrelevant; + public child: IChild; public constructor( - @inject(TYPE.Irrelevant) irrelevant: unknown, - @inject(TYPE.Child) child: unknown + @inject(TYPE.Irrelevant) irrelevant: IIrrelevant, + @inject(TYPE.Child) child: IChild ) { this.irrelevant = irrelevant; this.child = child; @@ -55,11 +60,11 @@ describe("Issue 543", () => { @injectable() class Root { - public irrelevant: unknown; - public circ: unknown; + public irrelevant: IIrrelevant; + public circ: ICircular; public constructor( - @inject(TYPE.Irrelevant) irrelevant1: unknown, - @inject(TYPE.Circular) circ: unknown + @inject(TYPE.Irrelevant) irrelevant1: IIrrelevant, + @inject(TYPE.Circular) circ: ICircular ) { this.irrelevant = irrelevant1; this.circ = circ; diff --git a/test/bugs/issue_549.test.ts b/test/bugs/issue_549.test.ts index 895746e3..5b80cbb3 100644 --- a/test/bugs/issue_549.test.ts +++ b/test/bugs/issue_549.test.ts @@ -10,11 +10,14 @@ describe("Issue 549", () => { BDynamicValue: Symbol.for("BDynamicValue") }; + interface IA {} + interface IB {} + @injectable() class A { - public b: unknown; + public b: IB; public constructor( - @inject(TYPE.BDynamicValue) b: unknown + @inject(TYPE.BDynamicValue) b: IB ) { this.b = b; } @@ -22,9 +25,9 @@ describe("Issue 549", () => { @injectable() class B { - public a: unknown; + public a: IA; public constructor( - @inject(TYPE.ADynamicValue) a: unknown + @inject(TYPE.ADynamicValue) a: IA ) { this.a = a; } diff --git a/test/node/exceptions.test.ts b/test/node/exceptions.test.ts index 7cfe64e0..5ee581b1 100644 --- a/test/node/exceptions.test.ts +++ b/test/node/exceptions.test.ts @@ -6,18 +6,18 @@ describe("Node", () => { it("Should throw if circular dependencies found", () => { - interface A {} - interface B {} - interface C {} - interface D {} + interface IA {} + interface IB {} + interface IC {} + interface ID {} @injectable() - class A implements A { - public b: unknown; - public c: unknown; + class A implements IA { + public b: IB; + public c: IC; public constructor( - @inject("B") b: unknown, - @inject("C") c: unknown, + @inject("B") b: IB, + @inject("C") c: IC, ) { this.b = b; this.c = c; @@ -25,20 +25,20 @@ describe("Node", () => { } @injectable() - class B implements B {} + class B implements IB {} @injectable() - class C implements C { - public d: unknown; - public constructor(@inject("D") d: unknown) { + class C implements IC { + public d: ID; + public constructor(@inject("D") d: ID) { this.d = d; } } @injectable() - class D implements D { - public a: unknown; - public constructor(@inject("A") a: unknown) { + class D implements ID { + public a: IA; + public constructor(@inject("A") a: IA) { this.a = a; } } diff --git a/test/planning/planner.test.ts b/test/planning/planner.test.ts index d9afff62..21adb0d3 100644 --- a/test/planning/planner.test.ts +++ b/test/planning/planner.test.ts @@ -120,41 +120,41 @@ describe("Planner", () => { it("Should throw when circular dependencies found", () => { - interface A { } - interface B { } - interface C { } - interface D { } + interface IA { } + interface IB { } + interface IC { } + interface ID { } @injectable() - class D implements D { - public a: unknown; + class D implements ID { + public a: IA; public constructor( - @inject("A") a: unknown + @inject("A") a: IA ) { // circular dependency this.a = a; } } @injectable() - class C implements C { - public d: unknown; + class C implements IC { + public d: ID; public constructor( - @inject("D") d: unknown + @inject("D") d: ID ) { this.d = d; } } @injectable() - class B implements B { } + class B implements IB { } @injectable() - class A implements A { - public b: unknown; - public c: unknown; + class A implements IA { + public b: IB; + public c: IC; public constructor( - @inject("B") b: unknown, - @inject("C") c: unknown, + @inject("B") b: IB, + @inject("C") c: IC ) { this.b = b; this.c = c; @@ -167,10 +167,10 @@ describe("Planner", () => { const dId = "D"; const container = new Container(); - container.bind(aId).to(A); - container.bind(bId).to(B); - container.bind(cId).to(C); - container.bind(dId).to(D); + container.bind(aId).to(A); + container.bind(bId).to(B); + container.bind(cId).to(C); + container.bind(dId).to(D); const throwErrorFunction = () => { container.get(aId);