egg-mock
Version:
mock server for egg
66 lines (55 loc) • 1.27 kB
JavaScript
;
const Test = require('supertest').Test;
class EggTest extends Test {
/**
* Unexpectations:
*
* .unexpectHeader('Content-Type')
* .unexpectHeader('Content-Type', fn)
*
* @return {EggTest}
* @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}
* @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;