| 'use strict'; |
| /** |
| * @module Context |
| */ |
| /** |
| * Expose `Context`. |
| */ |
| |
| module.exports = Context; |
| |
| /** |
| * Initialize a new `Context`. |
| * |
| * @private |
| */ |
| function Context() {} |
| |
| /** |
| * Set or get the context `Runnable` to `runnable`. |
| * |
| * @private |
| * @param {Runnable} runnable |
| * @return {Context} context |
| */ |
| Context.prototype.runnable = function(runnable) { |
| if (!arguments.length) { |
| return this._runnable; |
| } |
| this.test = this._runnable = runnable; |
| return this; |
| }; |
| |
| /** |
| * Set or get test timeout `ms`. |
| * |
| * @private |
| * @param {number} ms |
| * @return {Context} self |
| */ |
| Context.prototype.timeout = function(ms) { |
| if (!arguments.length) { |
| return this.runnable().timeout(); |
| } |
| this.runnable().timeout(ms); |
| return this; |
| }; |
| |
| /** |
| * Set test timeout `enabled`. |
| * |
| * @private |
| * @param {boolean} enabled |
| * @return {Context} self |
| */ |
| Context.prototype.enableTimeouts = function(enabled) { |
| if (!arguments.length) { |
| return this.runnable().enableTimeouts(); |
| } |
| this.runnable().enableTimeouts(enabled); |
| return this; |
| }; |
| |
| /** |
| * Set or get test slowness threshold `ms`. |
| * |
| * @private |
| * @param {number} ms |
| * @return {Context} self |
| */ |
| Context.prototype.slow = function(ms) { |
| if (!arguments.length) { |
| return this.runnable().slow(); |
| } |
| this.runnable().slow(ms); |
| return this; |
| }; |
| |
| /** |
| * Mark a test as skipped. |
| * |
| * @private |
| * @throws Pending |
| */ |
| Context.prototype.skip = function() { |
| this.runnable().skip(); |
| }; |
| |
| /** |
| * Set or get a number of allowed retries on failed tests |
| * |
| * @private |
| * @param {number} n |
| * @return {Context} self |
| */ |
| Context.prototype.retries = function(n) { |
| if (!arguments.length) { |
| return this.runnable().retries(); |
| } |
| this.runnable().retries(n); |
| return this; |
| }; |