add e2e test for auth form rendering after tab switch

This commit is contained in:
Jake McDermott 2018-04-09 11:06:32 -04:00
parent 8134110e6f
commit 27e8e55d15
No known key found for this signature in database
GPG Key ID: 3B02CAD476EECB35
4 changed files with 127 additions and 1 deletions

View File

@ -0,0 +1,40 @@
import breadcrumb from './sections/breadcrumb';
import header from './sections/header';
import navigation from './sections/navigation';
const sections = {
header,
navigation,
breadcrumb,
};
const commands = [{
load () {
this.api.url('data:,'); // https://github.com/nightwatchjs/nightwatch/issues/1724
return this.navigate();
},
selectSubcategory (name) {
const spinny = 'div.spinny';
const select = '#configure-dropdown-nav';
const arrow = `${select} + span span[class$="arrow"]`;
const option = `//li[contains(text(), "${name}")]`;
this.api.waitForElementVisible(arrow);
this.api.click(arrow);
this.api.useXpath();
this.api.waitForElementVisible(option);
this.api.click(option);
this.api.useCss();
return this;
},
}];
module.exports = {
url () {
return `${this.api.globals.launch_url}/#/configuration`;
},
sections,
commands,
};

View File

@ -0,0 +1,24 @@
import breadcrumb from './sections/breadcrumb';
import header from './sections/header';
import navigation from './sections/navigation';
const sections = {
header,
navigation,
breadcrumb,
};
const commands = [{
load () {
this.api.url('data:,'); // https://github.com/nightwatchjs/nightwatch/issues/1724
return this.navigate();
}
}];
module.exports = {
url () {
return `${this.api.globals.launch_url}/#/home`;
},
sections,
commands,
};

View File

@ -17,7 +17,8 @@ const navigation = {
inventoryScripts: 'i[class$="fa-code"]',
notifications: 'i[class$="fa-bell"]',
managementJobs: 'i[class$="fa-wrench"]',
instanceGroups: 'i[class$="fa-server"]'
instanceGroups: 'i[class$="fa-server"]',
settings: 'i[class$="fa-cog"]',
}
};

View File

@ -0,0 +1,61 @@
module.exports = {
'expected LDAP codemirror fields are rendered when returning from another tab': client => {
const authTab = '#auth_tab';
const authView = 'div[ui-view="auth"]';
const ldapForm = '#configuration_ldap_template_form';
const systemTab = '#system_tab';
const systemView = 'div[ui-view="system"]';
const { navigation } = client.page.dashboard().section;
const configuration = client.page.configuration();
client.login();
client.waitForAngular();
navigation
.waitForElementVisible('@settings')
.click('@settings');
configuration.waitForElementVisible(authView);
configuration.waitForElementVisible(systemTab);
configuration.click(systemTab);
configuration.waitForElementNotVisible(authView);
configuration.waitForElementVisible(systemView);
configuration.waitForElementVisible(authTab);
configuration.click(authTab);
configuration.waitForElementNotVisible(systemView);
configuration.waitForElementVisible(authView);
configuration.selectSubcategory('LDAP');
configuration.waitForElementVisible(ldapForm);
const expectedCodemirrorFields = [
'AUTH_LDAP_USER_SEARCH',
'AUTH_LDAP_GROUP_SEARCH',
'AUTH_LDAP_USER_ATTR_MAP',
'AUTH_LDAP_GROUP_TYPE_PARAMS',
'AUTH_LDAP_USER_FLAGS_BY_GROUP',
'AUTH_LDAP_ORGANIZATION_MAP',
'AUTH_LDAP_TEAM_MAP',
];
const ldapCodeMirrors = `${ldapForm} div[class^="CodeMirror"] textarea`;
client.elements('css selector', ldapCodeMirrors, ({ value }) => {
client.assert.equal(value.length, expectedCodemirrorFields.length);
});
expectedCodemirrorFields.forEach(fieldName => {
const codemirror = `#cm-${fieldName}-container div[class^="CodeMirror"]`;
configuration.expect.element(codemirror).visible;
configuration.expect.element(codemirror).enabled;
});
client.end();
},
};