68 lines
2.1 KiB
JavaScript
68 lines
2.1 KiB
JavaScript
describe("Custom object formatters", function() {
|
|
var env;
|
|
|
|
beforeEach(function() {
|
|
env = new jasmineUnderTest.Env();
|
|
env.configure({random: false});
|
|
});
|
|
|
|
it("scopes custom object formatters to a spec", function(done) {
|
|
env.it('a spec with custom pretty-printer', function() {
|
|
env.addCustomObjectFormatter(function(obj) { return 'custom(' + obj + ')'; });
|
|
env.expect(42).toBeUndefined();
|
|
});
|
|
|
|
env.it('a spec without custom pretty-printer', function() {
|
|
env.expect(42).toBeUndefined();
|
|
});
|
|
|
|
var specResults = [];
|
|
var specDone = function(result) {
|
|
specResults.push(result);
|
|
};
|
|
var expectations = function() {
|
|
expect(specResults[0].failedExpectations[0].message).toEqual("Expected custom(42) to be undefined.");
|
|
expect(specResults[1].failedExpectations[0].message).toEqual("Expected 42 to be undefined.");
|
|
done();
|
|
};
|
|
env.addReporter({ specDone:specDone });
|
|
|
|
env.execute(null, expectations);
|
|
});
|
|
|
|
it("scopes custom object formatters to a suite", function(done) {
|
|
env.it('a spec without custom pretty-printer', function() {
|
|
env.expect(42).toBeUndefined();
|
|
});
|
|
|
|
env.describe('with custom pretty-printer', function() {
|
|
env.beforeEach(function() {
|
|
env.addCustomObjectFormatter(function(obj) { return 'custom(' + obj + ')'; });
|
|
});
|
|
|
|
env.it('a spec', function() {
|
|
env.expect(42).toBeUndefined();
|
|
});
|
|
});
|
|
|
|
var specResults = [];
|
|
var specDone = function(result) {
|
|
specResults.push(result);
|
|
};
|
|
var expectations = function() {
|
|
expect(specResults[0].failedExpectations[0].message).toEqual("Expected 42 to be undefined.");
|
|
expect(specResults[1].failedExpectations[0].message).toEqual("Expected custom(42) to be undefined.");
|
|
done();
|
|
};
|
|
env.addReporter({ specDone:specDone });
|
|
|
|
env.execute(null, expectations);
|
|
});
|
|
|
|
it("throws an exception if you try to add a custom object formatter outside a runable", function() {
|
|
expect(function() {
|
|
env.addCustomObjectFormatter(function() {});
|
|
}).toThrowError('Custom object formatters must be added in a before function or a spec')
|
|
});
|
|
});
|