UNPKG

beelzebub

Version:
362 lines (236 loc) 9.85 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>$beforeAll - Documentation</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.js"></script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc.css"> </head> <body> <input type="checkbox" id="nav-trigger" class="nav-trigger" /> <label for="nav-trigger" class="navicon-button x"> <div class="navicon"></div> </label> <label for="nav-trigger" class="overlay"></label> <nav> <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BzTasks.html">BzTasks</a><ul class='methods'><li data-type='method'><a href="BzTasks.html#$addSubTasks">$addSubTasks</a></li><li data-type='method'><a href="BzTasks.html#$defineTaskVars">$defineTaskVars</a></li><li data-type='method'><a href="BzTasks.html#$getGlobalVars">$getGlobalVars</a></li><li data-type='method'><a href="BzTasks.html#$getName">$getName</a></li><li data-type='method'><a href="BzTasks.html#$getRunning">$getRunning</a></li><li data-type='method'><a href="BzTasks.html#$getStatsSummary">$getStatsSummary</a></li><li data-type='method'><a href="BzTasks.html#$getSubTask">$getSubTask</a></li><li data-type='method'><a href="BzTasks.html#$getSubTasks">$getSubTasks</a></li><li data-type='method'><a href="BzTasks.html#$getTask">$getTask</a></li><li data-type='method'><a href="BzTasks.html#$getTaskFlatList">$getTaskFlatList</a></li><li data-type='method'><a href="BzTasks.html#$getTaskTree">$getTaskTree</a></li><li data-type='method'><a href="BzTasks.html#$getVarDefsForTaskName">$getVarDefsForTaskName</a></li><li data-type='method'><a href="BzTasks.html#$hasRunBefore">$hasRunBefore</a></li><li data-type='method'><a href="BzTasks.html#$hasSubTask">$hasSubTask</a></li><li data-type='method'><a href="BzTasks.html#$hasTask">$hasTask</a></li><li data-type='method'><a href="BzTasks.html#$isRoot">$isRoot</a></li><li data-type='method'><a href="BzTasks.html#$parallel">$parallel</a></li><li data-type='method'><a href="BzTasks.html#$printHelp">$printHelp</a></li><li data-type='method'><a href="BzTasks.html#$register">$register</a></li><li data-type='method'><a href="BzTasks.html#$run">$run</a></li><li data-type='method'><a href="BzTasks.html#$sequence">$sequence</a></li><li data-type='method'><a href="BzTasks.html#$setDefault">$setDefault</a></li><li data-type='method'><a href="BzTasks.html#$setGlobalVars">$setGlobalVars</a></li><li data-type='method'><a href="BzTasks.html#$setName">$setName</a></li><li data-type='method'><a href="BzTasks.html#$setSubTask">$setSubTask</a></li><li data-type='method'><a href="BzTasks.html#$setSubTasks">$setSubTasks</a></li><li data-type='method'><a href="BzTasks.html#$setTaskHelpDocs">$setTaskHelpDocs</a></li><li data-type='method'><a href="BzTasks.html#$useAsRoot">$useAsRoot</a></li></ul></li></ul><h3>Interfaces</h3><ul><li><a href="BzTasks_$afterAll.html">$afterAll</a></li><li><a href="BzTasks_$afterEach.html">$afterEach</a></li><li><a href="BzTasks_$beforeAll.html">$beforeAll</a></li><li><a href="BzTasks_$beforeEach.html">$beforeEach</a></li><li><a href="BzTasks_$init.html">$init</a></li></ul> </nav> <div id="main"> <h1 class="page-title">$beforeAll</h1> <section> <header> <h2> <span class="ancestors"><a href="BzTasks.html">BzTasks</a>#</span> $beforeAll </h2> </header> <article> <div class="container-overview"> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="bzTasks.js.html">bzTasks.js</a>, <a href="bzTasks.js.html#line349">line 349</a> </li></ul></dd> </dl> <div class="description"><p>This needs to be Extented</p></div> <h3>Example</h3> <pre class="prettyprint"><code> let Beelzebub = require('../../'); let bz = Beelzebub(options || { verbose: true }); class MySubBaseTasks1 extends Beelzebub.Tasks { _delay (message, delay = 100) { return new Promise((resolve, reject) => { setTimeout(() => { this.logger.log(message); resolve(); }, delay); }); } $init () { this.logger.log('MySubBaseTasks1 init'); } // generator function * $beforeAll () { yield this._delay('MySubBaseTasks1 beforeAll'); } // generator function * $afterAll () { return this._delay('MySubBaseTasks1 afterAll'); } // generator function * $beforeEach (taskInfo) { return this._delay(`MySubBaseTasks1 beforeEach - ${taskInfo.task}`); } // generator function * $afterEach (taskInfo) { yield this._delay(`MySubBaseTasks1 afterEach - ${taskInfo.task}`); } taskA1 () { return this._delay('MySubBaseTasks1 taskA1'); } } class MySubBaseTasks2 extends Beelzebub.Tasks { _delay (message, delay = 100) { return new Promise((resolve, reject) => { setTimeout(() => { this.logger.log(message); resolve(); }, delay); }); } $init () { this.logger.log('MySubBaseTasks2 init'); } // generator function * $beforeAll () { yield this._delay('MySubBaseTasks2 beforeAll'); } // generator function * $afterAll () { return this._delay('MySubBaseTasks2 afterAll'); } // generator function * $beforeEach (taskInfo) { return this._delay(`MySubBaseTasks2 beforeEach - ${taskInfo.task}`); } // generator function * $afterEach (taskInfo) { yield this._delay(`MySubBaseTasks2 afterEach - ${taskInfo.task}`); } taskA2 () { return this._delay('MySubBaseTasks2 taskA2'); } } class MyBaseTasks extends Beelzebub.Tasks { _delay (message, delay = 100) { return new Promise((resolve, reject) => { setTimeout(() => { this.logger.log(message); resolve(); }, delay); }); } $init () { this.logger.log('MyBaseTasks init'); // see subtasksSimple or Advanced for details on adding sub tasks this.$addSubTasks(MySubBaseTasks1); } // returns promise $beforeAll () { return this._delay('MyBaseTasks beforeAll').then(() => { return this.$addSubTasks(MySubBaseTasks2); }); } // returns promise $afterAll () { return this._delay('MyBaseTasks afterAll'); } // returns promise $beforeEach (taskInfo) { return this._delay(`MyBaseTasks beforeEach - ${taskInfo.task} ${JSON.stringify(taskInfo.vars)}`); } // returns promise $afterEach (taskInfo) { return this._delay(`MyBaseTasks afterEach - ${taskInfo.task} ${JSON.stringify(taskInfo.vars)}`); } taskA (vars) { return this._delay(`MyBaseTasks taskA - ${vars.hello}`); } taskB (vars) { return this._delay('MyBaseTasks taskB'); } } class MyTasks extends Beelzebub.Tasks { _delay (message, delay = 100) { return new Promise((resolve, reject) => { setTimeout(() => { this.logger.log(message); resolve(); }, delay); }); } $init () { this.logger.log('MyTasks init'); // see subtasksSimple or Advanced for details on adding sub tasks this.$addSubTasks(MyBaseTasks); } // generator function * $beforeEach (taskInfo) { yield this._delay(`MyTasks beforeEach - ${taskInfo.task}`); } // generator function * $afterEach (taskInfo) { yield this._delay(`MyTasks afterEach - ${taskInfo.task}`); } // generator function * $beforeAll () { yield this._delay('MyTasks beforeAll'); } // generator function * $afterAll () { yield this._delay('MyTasks afterAll'); } task1 () { this.logger.log('MyTasks task1'); return this.$sequence({ task: '.MyBaseTasks.taskA', vars: { hello: 'world' } }, '.MyBaseTasks.taskB', '.MyBaseTasks.MySubBaseTasks2.taskA2'); } task2 () { this.logger.log('MyTasks task2'); } _internalFunction () { this.logger.error('this should be ignored'); } } bz.add(MyTasks); let p = bz.run('MyTasks.MyBaseTasks.MySubBaseTasks1.taskA1', 'MyTasks.task1', 'MyTasks.task2'); /* Output: MyTasks init MyBaseTasks init MySubBaseTasks1 init MyTasks beforeAll MyBaseTasks beforeAll MySubBaseTasks2 init MySubBaseTasks1 beforeAll MySubBaseTasks1 beforeEach - taskA1 MySubBaseTasks1 taskA1 MySubBaseTasks1 afterEach - taskA1 MyTasks beforeEach - task1 MyTasks task1 MyBaseTasks beforeEach - taskA {"hello":"world"} MyBaseTasks taskA - world MyBaseTasks afterEach - taskA {"hello":"world"} MyBaseTasks beforeEach - taskB {} MyBaseTasks taskB MyBaseTasks afterEach - taskB {} MySubBaseTasks2 beforeAll MySubBaseTasks2 beforeEach - taskA2 MySubBaseTasks2 taskA2 MySubBaseTasks2 afterEach - taskA2 MyTasks afterEach - task1 MyTasks beforeEach - task2 MyTasks task2 MyTasks afterEach - task2 MySubBaseTasks1 afterAll MySubBaseTasks2 afterAll MyBaseTasks afterAll MyTasks afterAll */ </code></pre> </div> </article> </section> </div> <br class="clear"> <script>prettyPrint();</script> <script src="scripts/linenumber.js"></script> </body> </html>