'use strict';

var Runnable = require('./runnable'); var inherits = require('./utils').inherits;

/**

* 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);

/**

* 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;

};