1 | 'use strict';
|
2 |
|
3 | const frisby = require('../src/frisby');
|
4 | const mocks = require('./fixtures/http_mocks');
|
5 |
|
6 | const testHost = 'http://api.example.com';
|
7 |
|
8 | describe('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 | });
|