1 | "use strict";
|
2 |
|
3 | var request = require('supertest'),
|
4 | canned = require("../"),
|
5 | expect = require("chai").expect;
|
6 |
|
7 | describe("CRUD API", function() {
|
8 |
|
9 | var server;
|
10 |
|
11 | beforeEach(function() {
|
12 | server = canned().init(__dirname + "/fixtures/responses.js");
|
13 | });
|
14 |
|
15 | it("should return all stored canned responses", function(done) {
|
16 | request(server)
|
17 | .get('/__canned_responses__/data')
|
18 | .expect('Content-Type', /json/)
|
19 | .expect(200, [
|
20 | { verb : "GET", url : "/people", resp : [ { name : "Euge" }, { name : "Bob" } ] },
|
21 | { verb : "GET", url : "/people/1", resp : { name : "Euge", address : "1234 Main St." } },
|
22 | { verb : "POST", url : "/people", resp : { name : "Bob", id : 10 } },
|
23 | { verb : "PUT", url : "/people/10", resp : { name : "NotBob", id : 10 } },
|
24 | { verb : "DELETE", url : "/people/10", resp : {} }
|
25 | ], done);
|
26 | });
|
27 |
|
28 | it("should add a new canned response", function(done) {
|
29 | var cannedWidgetsIndex = [ { id : "foo" }, { id : "bar" } ];
|
30 |
|
31 |
|
32 | request(server)
|
33 | .post('/__canned_responses__/data')
|
34 | .send({ verb: 'GET', url : "/widgets", resp : cannedWidgetsIndex })
|
35 | .end(function(err, res) {
|
36 | expect(res.status).to.equal(200);
|
37 | expect(res.body).to.deep.equal({
|
38 | verb: 'GET',
|
39 | url : "/widgets",
|
40 | resp : cannedWidgetsIndex,
|
41 | id : encodeURIComponent("GET-/widgets")
|
42 | });
|
43 |
|
44 |
|
45 | request(server)
|
46 | .get('/widgets')
|
47 | .expect(200, cannedWidgetsIndex, done);
|
48 | });
|
49 | });
|
50 |
|
51 | it("should delete an existing canned response", function(done) {
|
52 |
|
53 | request(server)
|
54 | .del('/__canned_responses__/data/' + encodeURIComponent("GET-/people"))
|
55 | .end(function(err, res) {
|
56 | expect(res.status).to.equal(200);
|
57 |
|
58 |
|
59 | request(server)
|
60 | .get('/people')
|
61 | .expect(404, done);
|
62 | });
|
63 | });
|
64 | });
|
65 |
|
66 | describe("Actual canned responses", function() {
|
67 |
|
68 | var server;
|
69 |
|
70 | before(function() {
|
71 | server = canned().init(__dirname + "/fixtures/responses.js");
|
72 | });
|
73 |
|
74 | describe("should respond with a 200 when there is a match", function(){
|
75 |
|
76 | it("GET", function(done) {
|
77 | request(server)
|
78 | .get('/people')
|
79 | .expect('Content-Type', /json/)
|
80 | .expect(200, [ { name : "Euge" }, { name : "Bob" } ], done);
|
81 | });
|
82 |
|
83 | it("POST", function(done) {
|
84 | request(server)
|
85 | .post('/people')
|
86 | .send({ name : "Bob" })
|
87 | .expect('Content-Type', /json/)
|
88 | .expect(200, { name : "Bob", id : 10 }, done);
|
89 | });
|
90 |
|
91 | it("PUT", function(done) {
|
92 | request(server)
|
93 | .put('/people/10')
|
94 | .send({ name : "NotBob" })
|
95 | .expect('Content-Type', /json/)
|
96 | .expect(200, { name : "NotBob", id : 10 }, done);
|
97 | });
|
98 |
|
99 | it("DELTE", function(done) {
|
100 | request(server)
|
101 | .del('/people/10')
|
102 | .expect('Content-Type', /json/)
|
103 | .expect(200, { }, done);
|
104 | });
|
105 | });
|
106 |
|
107 | it("should respond with a 404 when there is no match", function(done) {
|
108 | request(server)
|
109 | .get('/not_here')
|
110 | .expect(404, done);
|
111 | });
|
112 |
|
113 |
|
114 | });
|
115 |
|