Skip to content

Commit

Permalink
Add dataLayerName check before push in event. (#20551)
Browse files Browse the repository at this point in the history
* Add dataLayerName check before push in event.

* Update browser test after data layer name check change.
  • Loading branch information
dewen authored and GatsbyJS Bot committed Jan 14, 2020
1 parent d6a74d6 commit f170f47
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,23 @@ describe(`onRouteUpdate`, () => {

expect(window.dataLayer).toHaveLength(1)
})

it(`registers new data layer variable if dataLayerName is specified`, () => {
const { onRouteUpdate } = getAPI(() => {
process.env.NODE_ENV = `production`
})
const dataLayerName = `fooBarDataLater`
window[dataLayerName] = []

onRouteUpdate(
{},
{
dataLayerName,
}
)

jest.runAllTimers()

expect(window[dataLayerName]).toHaveLength(1)
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ exports.onRouteUpdate = (_, pluginOptions) => {
) {
// wrap inside a timeout to ensure the title has properly been changed
setTimeout(() => {
window.dataLayer.push({ event: `gatsby-route-change` })
let data = pluginOptions.dataLayerName
? window[pluginOptions.dataLayerName]
: window.dataLayer

data.push({ event: `gatsby-route-change` })
}, 50)
}
}

0 comments on commit f170f47

Please sign in to comment.