Source: Error/OutOfOrderCallError.js

'use strict';

var ArgumentsString = require('./ArgumentsString.js');
var FunctionCallsString = require('./FunctionCallsString.js');

/**
 * Error thrown when an {@link ExpectedCall} is called out of order.
 * @memberof Errors
 */
class OutOfOrderCallError extends Error {
  /**
   * Creates a new {@link OutOfOrderCallError}
   * @param {Mock} mock {@link Mock} that was called.
   * @param {object[]} args Arguments of the unexpected call.
   * @param {ExpectedCall[]} calls Expected calls.
   */
  constructor(mock, args, calls) {
    super('Out of order function call ' +
      mock.name +
      '(' + new ArgumentsString(args) + ')' +
      new FunctionCallsString(calls));
  }
}

module.exports = OutOfOrderCallError;