fix(core): update
This commit is contained in:
		| @@ -5,6 +5,7 @@ export type TExecutionType = 'sync' | 'async'; | ||||
| export class Assertion { | ||||
|   executionMode: TExecutionType; | ||||
|   baseReference: any; | ||||
|   propertyDrillDown: string[] = []; | ||||
|   private notSetting = false; | ||||
|   private timeoutSetting = 0; | ||||
|   constructor(baseReferenceArg: any, executionModeArg: TExecutionType) { | ||||
| @@ -12,6 +13,14 @@ export class Assertion { | ||||
|     this.executionMode = executionModeArg; | ||||
|   } | ||||
|  | ||||
|   private getObjectToTestReference() { | ||||
|     let returnObjectToTestReference = this.baseReference; | ||||
|     for (const property of this.propertyDrillDown) { | ||||
|       returnObjectToTestReference = returnObjectToTestReference[property]; | ||||
|     } | ||||
|     return returnObjectToTestReference; | ||||
|   } | ||||
|  | ||||
|   public get not() { | ||||
|     this.notSetting = true; | ||||
|     return this; | ||||
| @@ -64,9 +73,9 @@ export class Assertion { | ||||
|  | ||||
|   public toBeTypeofString() { | ||||
|     return this.runCheck(() => { | ||||
|       if (typeof this.baseReference !== 'string') { | ||||
|       if (typeof this.getObjectToTestReference() !== 'string') { | ||||
|         throw new Error( | ||||
|           `Assertion failed: ${this.baseReference} is not of type string, but typeof ${typeof this | ||||
|           `Assertion failed: ${this.baseReference} with drill down ${this.propertyDrillDown} is not of type string, but typeof ${typeof this | ||||
|             .baseReference}` | ||||
|         ); | ||||
|       } | ||||
| @@ -75,9 +84,9 @@ export class Assertion { | ||||
|  | ||||
|   public toBeTypeofNumber() { | ||||
|     return this.runCheck(() => { | ||||
|       if (typeof this.baseReference !== 'number') { | ||||
|       if (typeof this.getObjectToTestReference() !== 'number') { | ||||
|         throw new Error( | ||||
|           `Assertion failed: ${this.baseReference} is not of type string, but typeof ${typeof this | ||||
|           `Assertion failed: ${this.baseReference} with drill down ${this.propertyDrillDown} is not of type string, but typeof ${typeof this | ||||
|             .baseReference}` | ||||
|         ); | ||||
|       } | ||||
| @@ -86,9 +95,9 @@ export class Assertion { | ||||
|  | ||||
|   public toBeTypeofBoolean() { | ||||
|     return this.runCheck(() => { | ||||
|       if (typeof this.baseReference !== 'boolean') { | ||||
|       if (typeof this.getObjectToTestReference() !== 'boolean') { | ||||
|         throw new Error( | ||||
|           `Assertion failed: ${this.baseReference} is not of type string, but typeof ${typeof this | ||||
|           `Assertion failed: ${this.baseReference} with drill down ${this.propertyDrillDown} is not of type string, but typeof ${typeof this | ||||
|             .baseReference}` | ||||
|         ); | ||||
|       } | ||||
| @@ -97,90 +106,90 @@ export class Assertion { | ||||
|  | ||||
|   public toEqual(comparisonObject: any) { | ||||
|     return this.runCheck(() => { | ||||
|       const result = plugins.fastDeepEqual(this.baseReference, comparisonObject); | ||||
|       const result = plugins.fastDeepEqual(this.getObjectToTestReference(), comparisonObject); | ||||
|       if (!result) { | ||||
|         throw new Error(`${this.baseReference} does not equal ${comparisonObject}`); | ||||
|         throw new Error(`${this.baseReference} with drill down ${this.propertyDrillDown} does not equal ${comparisonObject}`); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   public toBeTrue() { | ||||
|     return this.runCheck(() => { | ||||
|       const result = typeof this.baseReference === 'boolean' && this.baseReference === true; | ||||
|       const result = typeof this.getObjectToTestReference() === 'boolean' && this.getObjectToTestReference() === true; | ||||
|       if (!result) { | ||||
|         throw new Error(`${this.baseReference} is not true or not of type boolean`); | ||||
|         throw new Error(`${this.baseReference} with drill down ${this.propertyDrillDown} is not true or not of type boolean`); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   public toBeFalse() { | ||||
|     return this.runCheck(() => { | ||||
|       const result = typeof this.baseReference === 'boolean' && this.baseReference === false; | ||||
|       const result = typeof this.getObjectToTestReference() === 'boolean' && this.getObjectToTestReference() === false; | ||||
|       if (!result) { | ||||
|         throw new Error(`${this.baseReference} is not false or not of type boolean`); | ||||
|         throw new Error(`${this.baseReference} with drill down ${this.propertyDrillDown} is not false or not of type boolean`); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   public toBeInstanceOf(classArg: any) { | ||||
|     return this.runCheck(() => { | ||||
|       const result = this.baseReference instanceof classArg; | ||||
|       const result = this.getObjectToTestReference() instanceof classArg; | ||||
|       if (!result) { | ||||
|         throw new Error(`${this.baseReference} is not an instance of ${classArg}`); | ||||
|         throw new Error(`${this.baseReference} with drill down ${this.propertyDrillDown} is not an instance of ${classArg}`); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   public toHaveProperty(propertyArg: string) { | ||||
|     return this.runCheck(() => { | ||||
|       const result = !!this.baseReference[propertyArg]; | ||||
|       const result = !!this.getObjectToTestReference()[propertyArg]; | ||||
|       if (!result) { | ||||
|         throw new Error(`${this.baseReference} does not have property ${propertyArg}`); | ||||
|         throw new Error(`${this.baseReference} with drill down ${this.propertyDrillDown} does not have property ${propertyArg}`); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   public toBeGreaterThan(numberArg: number) { | ||||
|     return this.runCheck(() => { | ||||
|       const result = this.baseReference > numberArg; | ||||
|       const result = this.getObjectToTestReference() > numberArg; | ||||
|       if (!result) { | ||||
|         throw new Error(`${this.baseReference} is not greater than ${numberArg}`); | ||||
|         throw new Error(`${this.baseReference} with drill down ${this.propertyDrillDown} is not greater than ${numberArg}`); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   public toBeLessThan(numberArg: number) { | ||||
|     return this.runCheck(() => { | ||||
|       const result = this.baseReference < numberArg; | ||||
|       const result = this.getObjectToTestReference() < numberArg; | ||||
|       if (!result) { | ||||
|         throw new Error(`${this.baseReference} is not less than ${numberArg}`); | ||||
|         throw new Error(`${this.baseReference} with drill down ${this.propertyDrillDown} is not less than ${numberArg}`); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   public toBeNull() { | ||||
|     return this.runCheck(() => { | ||||
|       const result = this.baseReference === null; | ||||
|       const result = this.getObjectToTestReference() === null; | ||||
|       if (!result) { | ||||
|         throw new Error(`${this.baseReference} is not null`); | ||||
|         throw new Error(`${this.baseReference} with drill down ${this.propertyDrillDown} is not null`); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   public toBeUndefined() { | ||||
|     return this.runCheck(() => { | ||||
|       const result = this.baseReference === undefined; | ||||
|       const result = this.getObjectToTestReference() === undefined; | ||||
|       if (!result) { | ||||
|         throw new Error(`${this.baseReference} is not undefined`); | ||||
|         throw new Error(`${this.baseReference} with drill down ${this.propertyDrillDown} is not undefined`); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   public toBeNullOrUndefined() { | ||||
|     return this.runCheck(() => { | ||||
|       const result = this.baseReference === null || this.baseReference === undefined; | ||||
|       const result = this.getObjectToTestReference() === null || this.getObjectToTestReference() === undefined; | ||||
|       if (!result) { | ||||
|         throw new Error(`${this.baseReference} is not null or undefined`); | ||||
|         throw new Error(`${this.baseReference} with drill down ${this.propertyDrillDown} is not null or undefined`); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
| @@ -188,11 +197,16 @@ export class Assertion { | ||||
|   public toContain(itemArg: any) { | ||||
|     return this.runCheck(() => { | ||||
|       const result = | ||||
|         this.baseReference instanceof Array && | ||||
|         this.baseReference.includes(itemArg); | ||||
|         this.getObjectToTestReference() instanceof Array && | ||||
|         this.getObjectToTestReference().includes(itemArg); | ||||
|       if (!result) { | ||||
|         throw new Error(`${this.baseReference} is not contain ${itemArg}`); | ||||
|         throw new Error(`${this.baseReference} with drill down ${this.propertyDrillDown} is not contain ${itemArg}`); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   public property(propertyNameArg: string) { | ||||
|     this.propertyDrillDown.push(propertyNameArg); | ||||
|     return this; | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user