| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 'use strict';
- var Runnable = require('./runnable');
- const {inherits, constants} = require('./utils');
- const {MOCHA_ID_PROP_NAME} = constants;
- /**
- * Expose `Hook`.
- */
- module.exports = Hook;
- /**
- * Initialize a new `Hook` with the given `title` and callback `fn`
- *
- * @class
- * @extends Runnable
- * @param {String} title
- * @param {Function} fn
- */
- function Hook(title, fn) {
- Runnable.call(this, title, fn);
- this.type = 'hook';
- }
- /**
- * Inherit from `Runnable.prototype`.
- */
- inherits(Hook, Runnable);
- /**
- * Resets the state for a next run.
- */
- Hook.prototype.reset = function () {
- Runnable.prototype.reset.call(this);
- delete this._error;
- };
- /**
- * Get or set the test `err`.
- *
- * @memberof Hook
- * @public
- * @param {Error} err
- * @return {Error}
- */
- Hook.prototype.error = function (err) {
- if (!arguments.length) {
- err = this._error;
- this._error = null;
- return err;
- }
- this._error = err;
- };
- /**
- * Returns an object suitable for IPC.
- * Functions are represented by keys beginning with `$$`.
- * @private
- * @returns {Object}
- */
- Hook.prototype.serialize = function serialize() {
- return {
- $$currentRetry: this.currentRetry(),
- $$fullTitle: this.fullTitle(),
- $$isPending: Boolean(this.isPending()),
- $$titlePath: this.titlePath(),
- ctx:
- this.ctx && this.ctx.currentTest
- ? {
- currentTest: {
- title: this.ctx.currentTest.title,
- [MOCHA_ID_PROP_NAME]: this.ctx.currentTest.id
- }
- }
- : {},
- duration: this.duration,
- file: this.file,
- parent: {
- $$fullTitle: this.parent.fullTitle(),
- [MOCHA_ID_PROP_NAME]: this.parent.id
- },
- state: this.state,
- title: this.title,
- type: this.type,
- [MOCHA_ID_PROP_NAME]: this.id
- };
- };
|