Improved readability of matcher-related deprecations
* Include stack traces. This makes it easier to find the matcher that needs to be updated, particularly when it comes from a library rather than the user's own code. * Show each deprecation only once unless `config.verboseDeprecations` is set. Since matchers are often added in a global `beforeEach`, logging deprecations every time can be overwhelming.
This commit is contained in:
committed by
Steve Gravrock
parent
90d6f9d73c
commit
9aed55bb91
@@ -148,22 +148,33 @@ describe('Custom Async Matchers (Integration)', function() {
|
||||
env.execute();
|
||||
});
|
||||
|
||||
it('logs a deprecation warning if the matcher factory takes two arguments', function (done) {
|
||||
it('logs a deprecation once per matcher if the matcher factory takes two arguments', function (done) {
|
||||
var matcherFactory = function (matchersUtil, customEqualityTesters) {
|
||||
return { compare: function () {} };
|
||||
};
|
||||
|
||||
spyOn(env, 'deprecated');
|
||||
|
||||
env.it('a spec', function() {
|
||||
env.beforeEach(function() {
|
||||
env.addAsyncMatchers({toBeFoo: matcherFactory});
|
||||
env.addAsyncMatchers({toBeBar: matcherFactory});
|
||||
});
|
||||
|
||||
env.it('a spec', function() {});
|
||||
env.it('another spec', function() {});
|
||||
|
||||
function jasmineDone() {
|
||||
expect(env.deprecated).toHaveBeenCalledWith('The matcher factory for "toBeFoo" ' +
|
||||
'accepts custom equality testers, but this parameter will no longer be passed ' +
|
||||
'in a future release. ' +
|
||||
'See <https://jasmine.github.io/tutorials/upgrading_to_4.0> for details.');
|
||||
expect(env.deprecated).toHaveBeenCalledWith(jasmine.stringMatching(
|
||||
'The matcher factory for "toBeFoo" accepts custom equality testers, ' +
|
||||
'but this parameter will no longer be passed in a future release. ' +
|
||||
'See <https://jasmine.github.io/tutorials/upgrading_to_4.0> for details.'
|
||||
));
|
||||
expect(env.deprecated).toHaveBeenCalledWith(jasmine.stringMatching(
|
||||
'The matcher factory for "toBeBar" accepts custom equality testers, ' +
|
||||
'but this parameter will no longer be passed in a future release. ' +
|
||||
'See <https://jasmine.github.io/tutorials/upgrading_to_4.0> for details.'
|
||||
));
|
||||
expect(env.deprecated).toHaveBeenCalledTimes(2);
|
||||
done();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user