From eab5ec0fc7179067a7cde0c4500333aa985db502 Mon Sep 17 00:00:00 2001 From: mohamed amr Date: Thu, 2 Mar 2017 18:24:17 +0200 Subject: [PATCH] test(errorHandlingConfig): add test for errorHandlingConfig() to be independent of minErr Closes #15770 --- test/AngularSpec.js | 25 +++++++++++++++++++++++++ test/minErrSpec.js | 9 ++------- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/test/AngularSpec.js b/test/AngularSpec.js index e67b8782eb50..5e9ef2167429 100644 --- a/test/AngularSpec.js +++ b/test/AngularSpec.js @@ -7,6 +7,7 @@ Float32Array, Float64Array, */ describe('angular', function() { var element, document; + var originalObjectMaxDepthInErrorMessage = minErrConfig.objectMaxDepth; beforeEach(function() { document = window.document; @@ -14,6 +15,30 @@ describe('angular', function() { afterEach(function() { dealoc(element); + minErrConfig.objectMaxDepth = originalObjectMaxDepthInErrorMessage; + }); + + describe('errorHandlingConfig', function() { + it('should get default objectMaxDepth', function() { + expect(errorHandlingConfig().objectMaxDepth).toBe(5); + }); + + it('should set objectMaxDepth', function() { + errorHandlingConfig({objectMaxDepth: 3}); + expect(errorHandlingConfig().objectMaxDepth).toBe(3); + }); + + it('should not change objectMaxDepth when undefined is supplied', function() { + errorHandlingConfig({objectMaxDepth: undefined}); + expect(errorHandlingConfig().objectMaxDepth).toBe(originalObjectMaxDepthInErrorMessage); + }); + + they('should set objectMaxDepth to NaN when $prop is supplied', + [NaN, null, true, false, -1, 0], function(maxDepth) { + errorHandlingConfig({objectMaxDepth: maxDepth}); + expect(errorHandlingConfig().objectMaxDepth).toBeNaN(); + } + ); }); describe('case', function() { diff --git a/test/minErrSpec.js b/test/minErrSpec.js index cc38354e8cbc..62f78c2c3ad1 100644 --- a/test/minErrSpec.js +++ b/test/minErrSpec.js @@ -78,32 +78,27 @@ describe('minErr', function() { var myError = testError('26', 'a when objectMaxDepth is default=5 is {0}', a); expect(myError.message).toMatch(/a when objectMaxDepth is default=5 is {"b":{"c":{"d":{"e":{"f":"..."}}}}}/); - expect(errorHandlingConfig().objectMaxDepth).toBe(5); errorHandlingConfig({objectMaxDepth: 1}); myError = testError('26', 'a when objectMaxDepth is set to 1 is {0}', a); expect(myError.message).toMatch(/a when objectMaxDepth is set to 1 is {"b":"..."}/); - expect(errorHandlingConfig().objectMaxDepth).toBe(1); errorHandlingConfig({objectMaxDepth: 2}); myError = testError('26', 'a when objectMaxDepth is set to 2 is {0}', a); expect(myError.message).toMatch(/a when objectMaxDepth is set to 2 is {"b":{"c":"..."}}/); - expect(errorHandlingConfig().objectMaxDepth).toBe(2); errorHandlingConfig({objectMaxDepth: undefined}); myError = testError('26', 'a when objectMaxDepth is set to undefined is {0}', a); expect(myError.message).toMatch(/a when objectMaxDepth is set to undefined is {"b":{"c":"..."}}/); - expect(errorHandlingConfig().objectMaxDepth).toBe(2); }); they('should handle arguments that are objects and ignore max depth when objectMaxDepth = $prop', [NaN, null, true, false, -1, 0], function(maxDepth) { - var a = {b: {c: {d: 1}}}; + var a = {b: {c: {d: {e: {f: {g: 1}}}}}}; errorHandlingConfig({objectMaxDepth: maxDepth}); var myError = testError('26', 'a is {0}', a); - expect(myError.message).toMatch(/a is {"b":{"c":{"d":1}}}/); - expect(errorHandlingConfig().objectMaxDepth).toBeNaN(); + expect(myError.message).toMatch(/a is {"b":{"c":{"d":{"e":{"f":{"g":1}}}}}}/); } );