update docs
This commit is contained in:
		
							
								
								
									
										3
									
								
								dist/tapbundle.classes.taptest.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/tapbundle.classes.taptest.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,6 @@ | ||||
| import { TapTools } from './tapbundle.classes.taptools'; | ||||
| import { HrtMeasurement } from 'early'; | ||||
| import { Deferred } from 'smartq'; | ||||
| export declare type TTestStatus = 'success' | 'error' | 'pending' | 'errorAfterSuccess' | 'timeout'; | ||||
| export interface ITestFunction { | ||||
|     (tapTools?: TapTools): Promise<any>; | ||||
| @@ -12,6 +13,8 @@ export declare class TapTest { | ||||
|     status: TTestStatus; | ||||
|     tapTools: TapTools; | ||||
|     testFunction: ITestFunction; | ||||
|     testDeferred: Deferred<TapTest>; | ||||
|     testPromise: Promise<TapTest>; | ||||
|     /** | ||||
|      * constructor | ||||
|      */ | ||||
|   | ||||
							
								
								
									
										9
									
								
								dist/tapbundle.classes.taptest.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								dist/tapbundle.classes.taptest.js
									
									
									
									
										vendored
									
									
								
							| @@ -8,6 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge | ||||
|     }); | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| const plugins = require("./tapbundle.plugins"); | ||||
| const tapbundle_classes_taptools_1 = require("./tapbundle.classes.taptools"); | ||||
| // imported interfaces | ||||
| const early_1 = require("early"); | ||||
| @@ -16,6 +17,8 @@ class TapTest { | ||||
|      * constructor | ||||
|      */ | ||||
|     constructor(optionsArg) { | ||||
|         this.testDeferred = plugins.smartq.defer(); | ||||
|         this.testPromise = this.testDeferred.promise; | ||||
|         this.description = optionsArg.description; | ||||
|         this.hrtMeasurement = new early_1.HrtMeasurement(); | ||||
|         this.parallel = optionsArg.parallel; | ||||
| @@ -37,14 +40,18 @@ class TapTest { | ||||
|                 this.hrtMeasurement.stop(); | ||||
|                 console.log(`ok ${testKeyArg + 1} - ${this.description} # time=${this.hrtMeasurement.milliSeconds}ms`); | ||||
|                 this.status = 'success'; | ||||
|                 this.testDeferred.resolve(this); | ||||
|             } | ||||
|             catch (err) { | ||||
|                 this.hrtMeasurement.stop(); | ||||
|                 console.log(`not ok ${testKeyArg + 1} - ${this.description} # time=${this.hrtMeasurement.milliSeconds}ms`); | ||||
|                 this.testDeferred.reject(); | ||||
|                 // if the test has already succeeded before | ||||
|                 if (this.status === 'success') { | ||||
|                     this.status = 'errorAfterSuccess'; | ||||
|                     console.log('!!! ALERT !!!: weird behaviour, since test has been already successfull'); | ||||
|                 } | ||||
|                 // if the test is allowed to fail | ||||
|                 if (this.failureAllowed) { | ||||
|                     console.log(`please note: failure allowed!`); | ||||
|                 } | ||||
| @@ -54,4 +61,4 @@ class TapTest { | ||||
|     } | ||||
| } | ||||
| exports.TapTest = TapTest; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwYnVuZGxlLmNsYXNzZXMudGFwdGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3RhcGJ1bmRsZS5jbGFzc2VzLnRhcHRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUNBLDZFQUF1RDtBQUV2RCxzQkFBc0I7QUFDdEIsaUNBQXNDO0FBVXRDO0lBUUU7O09BRUc7SUFDSCxZQUFhLFVBSVo7UUFDQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUE7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHNCQUFjLEVBQUUsQ0FBQTtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUE7UUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUE7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHFDQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFBO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNHLEdBQUcsQ0FBRSxVQUFrQjs7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUMzQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDdEMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO29CQUM5QixNQUFNLElBQUksS0FBSyxDQUFFLGtDQUFrQyxDQUFDLENBQUE7Z0JBQ3RELENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQkFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsV0FBVyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUE7Z0JBQ3RHLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFBO1lBQ3pCLENBQUM7WUFBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUE7Z0JBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxVQUFVLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLFdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFBO2dCQUMxRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsbUJBQW1CLENBQUE7b0JBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUVBQXlFLENBQUMsQ0FBQTtnQkFDeEYsQ0FBQztnQkFDRCxFQUFFLENBQUEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO2dCQUM5QyxDQUFDO2dCQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDbEIsQ0FBQztRQUNILENBQUM7S0FBQTtDQUNGO0FBbERELDBCQWtEQyJ9 | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwYnVuZGxlLmNsYXNzZXMudGFwdGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3RhcGJ1bmRsZS5jbGFzc2VzLnRhcHRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLCtDQUE4QztBQUU5Qyw2RUFBdUQ7QUFFdkQsc0JBQXNCO0FBQ3RCLGlDQUFzQztBQVd0QztJQVVFOztPQUVHO0lBQ0gsWUFBYSxVQUlaO1FBVEQsaUJBQVksR0FBc0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUN4RCxnQkFBVyxHQUFxQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQTtRQVN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUE7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHNCQUFjLEVBQUUsQ0FBQTtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUE7UUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUE7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHFDQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFBO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNHLEdBQUcsQ0FBRSxVQUFrQjs7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUMzQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDdEMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO29CQUM5QixNQUFNLElBQUksS0FBSyxDQUFFLGtDQUFrQyxDQUFDLENBQUE7Z0JBQ3RELENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQkFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsV0FBVyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUE7Z0JBQ3RHLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFBO2dCQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxDQUFDO1lBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDYixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFBO2dCQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsVUFBVSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxXQUFXLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQTtnQkFDMUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtnQkFFMUIsMkNBQTJDO2dCQUMzQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsbUJBQW1CLENBQUE7b0JBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUVBQXlFLENBQUMsQ0FBQTtnQkFDeEYsQ0FBQztnQkFFRCxpQ0FBaUM7Z0JBQ2pDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO29CQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUE7Z0JBQzlDLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNsQixDQUFDO1FBQ0gsQ0FBQztLQUFBO0NBQ0Y7QUExREQsMEJBMERDIn0= | ||||
| @@ -24,16 +24,51 @@ Use TypeScript for best in class instellisense. | ||||
| This package includes | ||||
|  | ||||
| * tap compatible testing framework written in TypeScript | ||||
| * npm package chai | ||||
| * npm package chai-as-promised | ||||
| * npm package @types/tap | ||||
| * npm pacakge @types/chai | ||||
| * npm package @types/chai-as-promised | ||||
| * npm package chai (through smartchai) | ||||
| * npm package chai-as-promised (through smartchai) | ||||
| * npm package chai-string (through smartchai) | ||||
| * npm pacakge @types/chai (through smartchi) | ||||
| * npm package @types/chai-as-promised (through smartchai) | ||||
| * npm package @types/chai-string (through smartchai) | ||||
|  | ||||
| In other words: This pacakge is fully typed :) | ||||
| It also implements its own tap testing engine, that is fully typed. | ||||
|  | ||||
| In other words: This package is fully typed :) | ||||
|  | ||||
|  | ||||
| ### Get started with writing your first test file. | ||||
| ```javascript | ||||
| import {tap, expect} from 'tapbundle' // has typings in place | ||||
|  | ||||
| import * as myAwesomeModuleToTest from '../dist/index' // '../dist/index' is the standard path for npmts modules | ||||
|  | ||||
| tap.test('my awesome description', async (tools) => { // tools are optional parameter | ||||
|   tools.timeout(2000) // test will fail if it takes longer than 2000 millisenconds | ||||
| }) | ||||
|  | ||||
| let myTest2 = tap.test('my awesome test 2', async (tools) => { | ||||
|   myAwsomeModuleToTest.doSomethingAsync() // we don't wait here | ||||
|   await tools.delayFor(3000) // yay. promise based timeouts :) | ||||
|   console.log('This gets logged 3000 ms into the test') | ||||
| }) | ||||
|  | ||||
| tap.test('my awesome test 3', async (tools) => { | ||||
|   expect(true).to.be.true // will not throw | ||||
|   await expect(tools.delayFor(2000)).to.eventuall.be.fulfilled // yay expect promises :) | ||||
|   expect((await myTest2.promise).hrtMeasurement.milliSeconds > 1000).to.be.true // access other tests metadata :) | ||||
| }) | ||||
|  | ||||
| let myTest4 = tap.testParallel('my awesome test 4', async (tools) => { | ||||
|   await tools.delayFor(4000) | ||||
|   console.log('logs to console after 4 seconds into this test') | ||||
| }) | ||||
|  | ||||
| tap.test('my awesome test 5', async () => { | ||||
|   expect(myTest4.status).to.equal('pending') // since this test will likely finish before myTest4. | ||||
| }) | ||||
|  | ||||
| tap.start() // start the test, will automtically plan tests for you (so the tap parser knows when tests exit bofore they are finished) | ||||
|  | ||||
| ``` | ||||
|  | ||||
| For further information read the linked docs at the top of this README. | ||||
|   | ||||
| @@ -1,8 +1,10 @@ | ||||
| import * as plugins from './tapbundle.plugins' | ||||
| import { tapCreator } from './tapbundle.tapcreator' | ||||
| import { TapTools } from './tapbundle.classes.taptools' | ||||
|  | ||||
| // imported interfaces | ||||
| import { HrtMeasurement } from 'early' | ||||
| import { Deferred } from 'smartq' | ||||
|  | ||||
| // interfaces | ||||
| export type TTestStatus = 'success' | 'error' | 'pending' | 'errorAfterSuccess' | 'timeout' | ||||
| @@ -20,6 +22,8 @@ export class TapTest { | ||||
|   status: TTestStatus | ||||
|   tapTools: TapTools | ||||
|   testFunction: ITestFunction | ||||
|   testDeferred: Deferred<TapTest> = plugins.smartq.defer() | ||||
|   testPromise: Promise<TapTest> = this.testDeferred.promise | ||||
|   /** | ||||
|    * constructor | ||||
|    */ | ||||
| @@ -49,13 +53,19 @@ export class TapTest { | ||||
|       this.hrtMeasurement.stop() | ||||
|       console.log(`ok ${testKeyArg + 1} - ${this.description} # time=${this.hrtMeasurement.milliSeconds}ms`) | ||||
|       this.status = 'success' | ||||
|       this.testDeferred.resolve(this) | ||||
|     } catch (err) { | ||||
|       this.hrtMeasurement.stop() | ||||
|       console.log(`not ok ${testKeyArg + 1} - ${this.description} # time=${this.hrtMeasurement.milliSeconds}ms`) | ||||
|       this.testDeferred.reject() | ||||
|  | ||||
|       // if the test has already succeeded before | ||||
|       if (this.status === 'success') { | ||||
|         this.status = 'errorAfterSuccess' | ||||
|         console.log('!!! ALERT !!!: weird behaviour, since test has been already successfull') | ||||
|       } | ||||
|  | ||||
|       // if the test is allowed to fail | ||||
|       if (this.failureAllowed) { | ||||
|         console.log(`please note: failure allowed!`) | ||||
|       } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user