'use strict'; const Test = require('supertest').Test; class EggTest extends Test { /** * Unexpectations: * * .unexpectHeader('Content-Type') * .unexpectHeader('Content-Type', fn) * * @return {EggTest} * @api public */ unexpectHeader(name, b) { if (typeof b === 'function') { this.end(b); } // header if (typeof name === 'string') { this._asserts.push(this._unexpectHeader.bind(this, name)); } return this; } /** * Expectations: * * .expectHeader('Content-Type') * .expectHeader('Content-Type', fn) * * @return {EggTest} * @api public */ expectHeader(name, b) { if (typeof b === 'function') { this.end(b); } // header if (typeof name === 'string') { this._asserts.push(this._expectHeader.bind(this, name)); } return this; } _unexpectHeader(name, res) { const actual = res.headers[name.toLowerCase()]; if (actual) { return new Error('unexpected "' + name + '" header field, got "' + actual + '"'); } } _expectHeader(name, res) { const actual = res.headers[name.toLowerCase()]; if (!actual) { return new Error('expected "' + name + '" header field'); } } } module.exports = EggTest;