UNPKG

2.73 kBJavaScriptView Raw
1'use strict';
2
3const frisby = require('../src/frisby');
4const mocks = require('./fixtures/http_mocks');
5
6const testHost = 'http://api.example.com';
7
8describe('Frisby', function() {
9
10 it('expectStatus should match', function(doneFn) {
11 mocks.use(['getUser1']);
12
13 frisby.fetch(testHost + '/users/1')
14 .expect('status', 200)
15 .done(doneFn);
16 });
17
18 it('expectHeader should match exactly', function(doneFn) {
19 mocks.use(['getUser1']);
20
21 frisby.fetch(testHost + '/users/1')
22 .expect('header', 'Content-Type', 'application/json')
23 .done(doneFn);
24 });
25
26 it('expectHeader should match regardless of case', function(doneFn) {
27 mocks.use(['getUser1']);
28
29 frisby.fetch(testHost + '/users/1')
30 .expect('header', 'conTent-tYpe', 'application/json')
31 .done(doneFn);
32 });
33
34 it('expectHeader should match with regex', function(doneFn) {
35 mocks.use(['getUser1']);
36
37 frisby.fetch(testHost + '/users/1')
38 .expect('header', 'Content-Type', /json/)
39 .done(doneFn);
40 });
41
42 it('expectHeader should not match with bad regex', function(doneFn) {
43 mocks.use(['getUser1']);
44
45 frisby.fetch(testHost + '/users/1')
46 .expectNot('header', 'Content-Type', /jsonx/)
47 .done(doneFn);
48 });
49
50 it('expectHeader should only check for header existence when third argument is not supplied', function(doneFn) {
51 mocks.use(['getUser1']);
52
53 frisby.fetch(testHost + '/users/1')
54 .expect('header', 'Content-Type')
55 .done(doneFn);
56 });
57
58 it('expectHeader should fail check for header existence when third argument is not supplied and header is not present', function(doneFn) {
59 mocks.use(['getUser1']);
60
61 frisby.fetch(testHost + '/users/1')
62 .expectNot('header', 'Custom-Header')
63 .done(doneFn);
64 });
65
66 it('expectHeader should match array header', function(doneFn) {
67 mocks.use(['arrayHeader']);
68
69 frisby.fetch(testHost + '/array-header')
70 .expect('header', 'array', 'one')
71 .expect('header', 'array', /one|two/)
72 .done(doneFn);
73 });
74
75 it('expectHeader should not match array header', function(doneFn) {
76 mocks.use(['arrayHeader']);
77
78 frisby.fetch(testHost + '/array-header')
79 .expectNot('header', 'array', 'three')
80 .expectNot('header', 'array', /three|four/)
81 .done(doneFn);
82 });
83
84 it('expectBodyContains should match string', function(doneFn) {
85 mocks.use(['getContent']);
86
87 frisby.fetch(testHost + '/contents/1')
88 .expect('bodyContains', 'something')
89 .done(doneFn);
90 });
91
92 it('expectBodyContains should match regex', function(doneFn) {
93 mocks.use(['getContent']);
94
95 frisby.fetch(testHost + '/contents/1')
96 .expect('bodyContains', /something/)
97 .done(doneFn);
98 });
99
100});