From c859128537e9e5a8c48f5b5634b446f7a8f2b937 Mon Sep 17 00:00:00 2001 From: Tony Brix Date: Wed, 7 Feb 2018 23:39:22 -0600 Subject: [PATCH] add tests --- spec/core/integration/EnvSpec.js | 66 ++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/spec/core/integration/EnvSpec.js b/spec/core/integration/EnvSpec.js index 58109f8c..c03e3132 100644 --- a/spec/core/integration/EnvSpec.js +++ b/spec/core/integration/EnvSpec.js @@ -2303,6 +2303,9 @@ describe("Env integration", function() { var env = new jasmineUnderTest.Env(), reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']); + // prevent deprecation from being desplayed + spyOn(console, "error"); + reporter.jasmineDone.and.callFake(function(result) { expect(result.deprecationWarnings).toEqual([ jasmine.objectContaining({ message: 'top level deprecation' }) @@ -2341,4 +2344,67 @@ describe("Env integration", function() { env.execute(); }); + + it('should report deprecation stack with an error object', function(done) { + var env = new jasmineUnderTest.Env(), + exceptionFormatter = new jasmineUnderTest.ExceptionFormatter(), + reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']), + topLevelError = new Error('top level deprecation'), + suiteLevelError = new Error('suite level deprecation'), + specLevelError = new Error('spec level deprecation'); + + + + // prevent deprecation from being desplayed + spyOn(console, "error"); + + reporter.jasmineDone.and.callFake(function(result) { + expect(result.deprecationWarnings).toEqual([ + jasmine.objectContaining({ + message: topLevelError.message, + stack: exceptionFormatter.stack(topLevelError) + }) + ]); + + expect(reporter.suiteDone).toHaveBeenCalledWith(jasmine.objectContaining({ + fullName: 'suite', + deprecationWarnings: [ + jasmine.objectContaining({ + message: suiteLevelError.message, + stack: exceptionFormatter.stack(suiteLevelError) + }) + ] + })); + + expect(reporter.specDone).toHaveBeenCalledWith(jasmine.objectContaining({ + fullName: 'suite spec', + deprecationWarnings: [ + jasmine.objectContaining({ + message: specLevelError.message, + stack: exceptionFormatter.stack(specLevelError) + }) + ] + })); + + done(); + }); + + env.addReporter(reporter); + + env.deprecated(topLevelError); + + env.describe('suite', function() { + env.beforeAll(function() { + env.deprecated(suiteLevelError); + }); + + env.it('spec', function() { + env.deprecated(specLevelError); + }); + }); + + console.log(env.topSuite()); + + env.execute(); + }); });