Chai plugin for testing HTTP response set-cookie header and it's also support supertest.
const chai = require('chai');
const expect = chai.expect;
chai.use(require('chai-http'));
chai.use(require('chai-expected-cookie'));
response = ...
expect(response).to.containCookie({
name: 'key_1',
});
expect(response).to.not.containCookie({
name: 'key_2',
});
expect(response).to.containCookie({
name: 'key_3',
value: 'vk_3'
});
expect(response).to.containCookie({
name: 'key_4',
attrs: {
path: '/path'
}
});
expect(response).to.containCookie({
name: 'key_5',
hasAttrs: [
'httponly'
]
});
expected(response).to.containCookie({
name: 'key_6',
value: 'vk_6',
attrs: {
path: '/path'
},
hasAttrs: [
'httponly'
]
});
const chai = require('chai');
const expect = chai.expect;
chai.use(require('chai-http'));
chai.use(require('chai-expected-cookie'));
const express = require('express');
const app = express();
chai.request(app)
.get('/items')
.end(function(err, response) {
expect(response).to.containCookie({
name: 'key_1',
});
expect(response).to.not.containCookie({
name: 'key_2',
});
expect(response).to.containCookie({
name: 'key_3',
value: 'vk_3'
});
expect(response).to.containCookie({
name: 'key_4',
attrs: {
path: '/path'
}
});
expect(response).to.containCookie({
name: 'key_5',
hasAttrs: [
'httponly'
]
});
expected(response).to.containCookie({
name: 'key_6',
value: 'vk_6',
attrs: {
path: '/path'
},
hasAttrs: [
'httponly'
]
});
});
assert cookies with defined criteria is set.