From 965973f9d06d50c68e54a5af729ec13f6f617b3f Mon Sep 17 00:00:00 2001 From: Piotr Kaminski Date: Sun, 5 Oct 2014 00:58:39 -0700 Subject: [PATCH] Fix globalOptions overwrite. --- src/raven.js | 4 ++-- test/raven.test.js | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/raven.js b/src/raven.js index e131c62eb502..4cad08845ad2 100644 --- a/src/raven.js +++ b/src/raven.js @@ -656,8 +656,8 @@ function send(data) { }, data); // Merge in the tags and extra separately since objectMerge doesn't handle a deep merge - data.tags = objectMerge(globalOptions.tags, data.tags); - data.extra = objectMerge(globalOptions.extra, data.extra); + data.tags = objectMerge(objectMerge({}, globalOptions.tags), data.tags); + data.extra = objectMerge(objectMerge({}, globalOptions.extra), data.extra); // Send along our own collected metadata with extra data.extra = objectMerge({ diff --git a/test/raven.test.js b/test/raven.test.js index f724d61b545c..4b4e8c2b0b3b 100644 --- a/test/raven.test.js +++ b/test/raven.test.js @@ -897,6 +897,11 @@ describe('globals', function() { tags: {tag1: 'value1', tag2: 'value2'}, extra: {'session:duration': 100} }]); + assert.deepEqual(globalOptions, { + logger: 'javascript', + site: 'THE BEST', + tags: {tag1: 'value1'} + }); }); it('should merge in global extra', function() { @@ -930,6 +935,11 @@ describe('globals', function() { event_id: 'abc123', extra: {key1: 'value1', key2: 'value2', 'session:duration': 100} }]); + assert.deepEqual(globalOptions, { + logger: 'javascript', + site: 'THE BEST', + extra: {key1: 'value1'} + }); }); it('should let dataCallback override everything', function() {