frisby
Version:
Frisby.js v2.0: REST API Endpoint Testing built on Jasmine
101 lines (74 loc) • 2.73 kB
JavaScript
;
const frisby = require('../src/frisby');
const mocks = require('./fixtures/http_mocks');
const testHost = 'http://api.example.com';
describe('Frisby', function() {
it('expectStatus should match', function(doneFn) {
mocks.use(['getUser1']);
frisby.fetch(testHost + '/users/1')
.expect('status', 200)
.done(doneFn);
});
it('expectHeader should match exactly', function(doneFn) {
mocks.use(['getUser1']);
frisby.fetch(testHost + '/users/1')
.expect('header', 'Content-Type', 'application/json')
.done(doneFn);
});
it('expectHeader should match regardless of case', function(doneFn) {
mocks.use(['getUser1']);
frisby.fetch(testHost + '/users/1')
.expect('header', 'conTent-tYpe', 'application/json')
.done(doneFn);
});
it('expectHeader should match with regex', function(doneFn) {
mocks.use(['getUser1']);
frisby.fetch(testHost + '/users/1')
.expect('header', 'Content-Type', /json/)
.done(doneFn);
});
it('expectHeader should not match with bad regex', function(doneFn) {
mocks.use(['getUser1']);
frisby.fetch(testHost + '/users/1')
.expectNot('header', 'Content-Type', /jsonx/)
.done(doneFn);
});
it('expectHeader should only check for header existence when third argument is not supplied', function(doneFn) {
mocks.use(['getUser1']);
frisby.fetch(testHost + '/users/1')
.expect('header', 'Content-Type')
.done(doneFn);
});
it('expectHeader should fail check for header existence when third argument is not supplied and header is not present', function(doneFn) {
mocks.use(['getUser1']);
frisby.fetch(testHost + '/users/1')
.expectNot('header', 'Custom-Header')
.done(doneFn);
});
it('expectHeader should match array header', function(doneFn) {
mocks.use(['arrayHeader']);
frisby.fetch(testHost + '/array-header')
.expect('header', 'array', 'one')
.expect('header', 'array', /one|two/)
.done(doneFn);
});
it('expectHeader should not match array header', function(doneFn) {
mocks.use(['arrayHeader']);
frisby.fetch(testHost + '/array-header')
.expectNot('header', 'array', 'three')
.expectNot('header', 'array', /three|four/)
.done(doneFn);
});
it('expectBodyContains should match string', function(doneFn) {
mocks.use(['getContent']);
frisby.fetch(testHost + '/contents/1')
.expect('bodyContains', 'something')
.done(doneFn);
});
it('expectBodyContains should match regex', function(doneFn) {
mocks.use(['getContent']);
frisby.fetch(testHost + '/contents/1')
.expect('bodyContains', /something/)
.done(doneFn);
});
});