module.exports = {

/**
 * ### config.includeStack
 *
 * User configurable property, influences whether stack trace
 * is included in Assertion error message. Default of false
 * suppresses stack trace in the error message.
 *
 *     chai.config.includeStack = true;  // enable stack on error
 *
 * @param {Boolean}
 * @api public
 */

includeStack: false,

/**
 * ### config.showDiff
 *
 * User configurable property, influences whether or not
 * the `showDiff` flag should be included in the thrown
 * AssertionErrors. `false` will always be `false`; `true`
 * will be true when the assertion has requested a diff
 * be shown.
 *
 * @param {Boolean}
 * @api public
 */

showDiff: true,

/**
 * ### config.truncateThreshold
 *
 * User configurable property, sets length threshold for actual and
 * expected values in assertion errors. If this threshold is exceeded, for
 * example for large data structures, the value is replaced with something
 * like `[ Array(3) ]` or `{ Object (prop1, prop2) }`.
 *
 * Set it to zero if you want to disable truncating altogether.
 *
 * This is especially userful when doing assertions on arrays: having this
 * set to a reasonable large value makes the failure messages readily
 * inspectable.
 *
 *     chai.config.truncateThreshold = 0;  // disable truncating
 *
 * @param {Number}
 * @api public
 */

truncateThreshold: 40,

/**
 * ### config.useProxy
 *
 * User configurable property, defines if chai will use a Proxy to throw
 * an error when a non-existent property is read, which protects users
 * from typos when using property-based assertions.
 *
 * Set it to false if you want to disable this feature.
 *
 *     chai.config.useProxy = false;  // disable use of Proxy
 *
 * This feature is automatically disabled regardless of this config value
 * in environments that don't support proxies.
 *
 * @param {Boolean}
 * @api public
 */

useProxy: true,

/**
 * ### config.proxyExcludedKeys
 *
 * User configurable property, defines which properties should be ignored
 * instead of throwing an error if they do not exist on the assertion.
 * This is only applied if the environment Chai is running in supports proxies and
 * if the `useProxy` configuration setting is enabled.
 * By default, `then` and `inspect` will not throw an error if they do not exist on the
 * assertion object because the `.inspect` property is read by `util.inspect` (for example, when
 * using `console.log` on the assertion object) and `.then` is necessary for promise type-checking.
 *
 *     // By default these keys will not throw an error if they do not exist on the assertion object
 *     chai.config.proxyExcludedKeys = ['then', 'inspect'];
 *
 * @param {Array}
 * @api public
 */

proxyExcludedKeys: ['then', 'catch', 'inspect', 'toJSON']

};