/
response-builder.test.js
103 lines (80 loc) · 2.3 KB
/
response-builder.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
var bogart = require('../lib/bogart')
, assert = require('assert')
, Q = require('promised-io/lib/promise')
, fs = require('fs')
, path = require('path');
function identity(){};
exports["test ResponseBuilder can be resolved"] = function(beforeExit) {
var resolved = false
, response = new bogart.ResponseBuilder();
response.then(function() {
resolved = true;
});
response.resolve();
beforeExit(function() {
assert.ok(resolved, 'Should have resolved');
});
};
exports["test ResponseBuilder can be rejected"] = function(beforeExit) {
var rejected = false
, response = new bogart.ResponseBuilder();
response.then(identity, function() {
rejected = true;
});
response.reject();
beforeExit(function() {
assert.ok(rejected, 'Should have rejected');
});
};
exports["test ResponseBuilder send string"] = function(beforeExit) {
var response = new bogart.ResponseBuilder()
, msg = 'Hello World'
, written = '';
response.send(msg);
response.then(function(resp) {
return resp.body.forEach(function(data) {
written += data;
});
});
response.end();
beforeExit(function() {
assert.equal(msg, written);
});
};
exports["test ResponseBuilder send buffer"] = function(beforeExit) {
var response = new bogart.ResponseBuilder()
, msg = 'Hello World'
, buf = new Buffer(msg.length)
, written = '';
buf.write(msg);
response.send(buf);
response.end();
response.then(function(resp) {
return resp.body.forEach(function(data) {
written += data;
});
});
beforeExit(function() {
assert.equal(msg, written);
});
};
exports["test ResponseBuilder send binary"] = function(beforeExit) {
var response = new bogart.ResponseBuilder()
, filePath = path.join(__dirname, 'fixtures', 'test.jpg')
, stat = fs.statSync(filePath)
, fileContent = null
, written = new Buffer(stat.size);
fs.readFile(filePath, 'binary', function(err, content) {
fileContent = content;
response.send(content);
});
response.end();
response.then(function(resp) {
return resp.body.forEach(function(chunk) {
written.write(chunk, 'binary');
});
});
beforeExit(function() {
assert.equal(fileContent, written.toString('binary'), 'not equal');
});
};