UNPKG

1.65 kBJavaScriptView Raw
1import { expect } from 'chai';
2import sinon from 'sinon';
3
4import header from '../../../src/middleware/header';
5
6describe('header', () => {
7 let res;
8 let req;
9 let next;
10
11 beforeEach(() => {
12 req = {};
13 res = {
14 setHeader: sinon.spy(),
15 };
16 next = {
17 request: sinon.spy(),
18 error: sinon.spy(),
19 };
20 });
21
22 it('should call next request', (done) => {
23 const app = header()(next);
24 app.request(req, res).then(() => {
25 expect(next.request).to.be.calledWith(req, res);
26 done();
27 });
28 });
29
30 it('should call res.setHeader', (done) => {
31 const app = header('foo', 'bar')(next);
32 app.request(req, res).then(() => {
33 expect(res.setHeader).to.be.calledWith('foo', 'bar');
34 done();
35 });
36 });
37
38 it('should call function argument', (done) => {
39 const handler = sinon.spy(() => 'bar');
40 const app = header('foo', handler)(next);
41 app.request(req, res).then(() => {
42 expect(handler).to.be.calledWith(req);
43 expect(res.setHeader).to.be.calledWith('foo', 'bar');
44 done();
45 });
46 });
47
48 it('should not call setHeader if value is falsy', (done) => {
49 const app = header('foo', false)(next);
50 app.request(req, res).then(() => {
51 expect(res.setHeader).to.not.have.been.called;
52 done();
53 });
54 });
55
56 it('should call next error', (done) => {
57 const err = new Error();
58 const handler = () => {
59 throw err;
60 };
61 const app = header('foo', handler)(next);
62 app.request(req, res).then(() => {
63 expect(next.error).to.be.calledWith(err, req, res);
64 expect(res.setHeader).to.not.have.been.called;
65 done();
66 });
67 });
68});