Skip to content

Commit 5902b5b

Browse files
committed
Merge pull request #26 from cjihrig/19
Add configuration settings, including disabling message truncating
2 parents ec8381a + 7986e1f commit 5902b5b

File tree

2 files changed

+77
-5
lines changed

2 files changed

+77
-5
lines changed

lib/index.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ var internals = {
1313
count: 0
1414
};
1515

16+
exports.settings = {
17+
truncateMessages: true
18+
};
1619

1720
exports.expect = function (value, prefix) {
1821

@@ -269,7 +272,8 @@ internals.addMethod(['throw', 'throws'], function (/* type, message */) {
269272
internals.display = function (value) {
270273

271274
var string = NodeUtil.inspect(value);
272-
if (string.length <= 40) {
275+
276+
if (!exports.settings.truncateMessages || string.length <= 40) {
273277
return string;
274278
}
275279

test/index.js

+72-4
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ describe('expect()', function () {
120120
done();
121121
});
122122

123-
it('asserts on invalid condition (large array)', function (done) {
123+
it('asserts on invalid condition (large array, display truncated)', function (done) {
124124

125125
var exception = false;
126126
try {
@@ -134,7 +134,24 @@ describe('expect()', function () {
134134
done();
135135
});
136136

137-
it('asserts on invalid condition (large object)', function (done) {
137+
it('asserts on invalid condition (large array, display not truncated)', function (done) {
138+
139+
var exception = false;
140+
var origTruncate = Code.settings.truncateMessages;
141+
try {
142+
Code.settings.truncateMessages = false;
143+
Code.expect([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]).to.be.a.string();
144+
}
145+
catch (err) {
146+
Code.settings.truncateMessages = origTruncate;
147+
exception = err;
148+
}
149+
150+
Hoek.assert(exception.message === 'Expected [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ] to be a string but got \'array\'', exception);
151+
done();
152+
});
153+
154+
it('asserts on invalid condition (large object, display truncated)', function (done) {
138155

139156
var exception = false;
140157
try {
@@ -148,7 +165,24 @@ describe('expect()', function () {
148165
done();
149166
});
150167

151-
it('asserts on invalid condition (long object values)', function (done) {
168+
it('asserts on invalid condition (large object, display not truncated)', function (done) {
169+
170+
var exception = false;
171+
var origTruncate = Code.settings.truncateMessages;
172+
try {
173+
Code.settings.truncateMessages = false;
174+
Code.expect({ a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10 }).to.be.a.string();
175+
}
176+
catch (err) {
177+
Code.settings.truncateMessages = origTruncate;
178+
exception = err;
179+
}
180+
181+
Hoek.assert(exception.message === 'Expected { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10 } to be a string but got \'object\'', exception);
182+
done();
183+
});
184+
185+
it('asserts on invalid condition (long object values, display truncated)', function (done) {
152186

153187
var exception = false;
154188
try {
@@ -162,7 +196,24 @@ describe('expect()', function () {
162196
done();
163197
});
164198

165-
it('asserts on invalid condition (long string)', function (done) {
199+
it('asserts on invalid condition (long object values, display not truncated)', function (done) {
200+
201+
var exception = false;
202+
var origTruncate = Code.settings.truncateMessages;
203+
try {
204+
Code.settings.truncateMessages = false;
205+
Code.expect({ a: 12345678901234567890, b: 12345678901234567890 }).to.be.a.string();
206+
}
207+
catch (err) {
208+
Code.settings.truncateMessages = origTruncate;
209+
exception = err;
210+
}
211+
212+
Hoek.assert(exception.message === 'Expected { a: 12345678901234567000, b: 12345678901234567000 } to be a string but got \'object\'', exception);
213+
done();
214+
});
215+
216+
it('asserts on invalid condition (long string, display truncated)', function (done) {
166217

167218
var exception = false;
168219
try {
@@ -176,6 +227,23 @@ describe('expect()', function () {
176227
done();
177228
});
178229

230+
it('asserts on invalid condition (long string, display not truncated)', function (done) {
231+
232+
var exception = false;
233+
var origTruncate = Code.settings.truncateMessages;
234+
try {
235+
Code.settings.truncateMessages = false;
236+
Code.expect('{ a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10 }').to.be.a.number();
237+
}
238+
catch (err) {
239+
Code.settings.truncateMessages = origTruncate;
240+
exception = err;
241+
}
242+
243+
Hoek.assert(exception.message === 'Expected \'{ a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10 }\' to be a number but got \'string\'', exception);
244+
done();
245+
});
246+
179247
it('resets flags between chained assertions', function (done) {
180248

181249
var exception = false;

0 commit comments

Comments
 (0)