google_tag-8.x-1.x-dev/tests/src/Nightwatch/Tests/userInterfaceTest.js
tests/src/Nightwatch/Tests/userInterfaceTest.js
module.exports = {
'@tags': ['google_tag'],
before(browser) {
browser
.drupalInstall({
setupFile: `${__dirname}/../TestNoConfigSiteInstallTestScript.php`,
})
.drupalCreateUser({
name: 'user',
password: '123',
permissions: ['administer google_tag_container'],
})
.drupalLogin({ name: 'user', password: '123' });
},
after(browser) {
browser.drupalUninstall();
},
'can be configured with one measurement ID': (browser) => {
browser
.drupalRelativeURL('/admin/config/services/google-tag')
.waitForElementVisible('body', 1000)
.setValue('[name="accounts[0][value]"]', 'G-XXXXXX')
.execute(() =>
document.querySelector('[name="accounts[0][value]"]').blur(),
)
.pause(75)
.click('[data-drupal-selector="edit-submit"]')
.assert.containsText('body', 'The configuration options have been saved.')
.assert.googleTagExists()
.assert.dataLayerContains(['config', 'G-XXXXXX'])
.drupalLogAndEnd({ onlyOnError: false });
},
'can be configured with multiple measurement IDs': (browser) => {
browser
.drupalRelativeURL('/admin/config/services/google-tag')
.waitForElementVisible('body', 1000)
.click('[value="Add another ID"]')
.waitForElementVisible('[name="accounts[1][value]"]', 1000)
.setValue('[name="accounts[1][value]"]', 'UA-XXXXXX')
.execute(() =>
document.querySelector('[name="accounts[1][value]"]').blur(),
)
.pause(75)
.click('[data-drupal-selector="edit-submit"]')
.assert.containsText('body', 'The configuration options have been saved.')
.assert.googleTagExists()
.assert.dataLayerContains(['config', 'G-XXXXXX'])
.assert.dataLayerContains(['config', 'UA-XXXXXX'])
.drupalLogAndEnd({ onlyOnError: false });
},
'can configure conditions': (browser) => {
browser
.drupalRelativeURL('/admin/config/services/google-tag')
.waitForElementVisible('body', 1000)
.click('[href="#edit-conditions-user-role"]')
.click('[name="conditions[user_role][roles][anonymous]"]')
.click('[data-drupal-selector="edit-submit"]')
.assert.containsText('body', 'The configuration options have been saved.')
.assert.not.googleTagExists()
.assert.not.dataLayerContains(['config', 'G-XXXXXX'])
.assert.not.dataLayerContains(['config', 'UA-XXXXXX'])
.drupalRelativeURL('/user/logout')
.click('[data-drupal-selector="edit-submit"]')
.drupalRelativeURL('/test-page')
.assert.googleTagExists()
.assert.dataLayerContains(['config', 'G-XXXXXX'])
.assert.dataLayerContains(['config', 'UA-XXXXXX'])
.drupalLogAndEnd({ onlyOnError: false });
},
};
