mirror of
https://github.com/ansible/awx.git
synced 2026-03-21 19:07:39 -02:30
add e2e test for auth form rendering after tab switch
This commit is contained in:
40
awx/ui/test/e2e/objects/configuration.js
Normal file
40
awx/ui/test/e2e/objects/configuration.js
Normal 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,
|
||||||
|
};
|
||||||
24
awx/ui/test/e2e/objects/dashboard.js
Normal file
24
awx/ui/test/e2e/objects/dashboard.js
Normal 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,
|
||||||
|
};
|
||||||
@@ -17,7 +17,8 @@ const navigation = {
|
|||||||
inventoryScripts: 'i[class$="fa-code"]',
|
inventoryScripts: 'i[class$="fa-code"]',
|
||||||
notifications: 'i[class$="fa-bell"]',
|
notifications: 'i[class$="fa-bell"]',
|
||||||
managementJobs: 'i[class$="fa-wrench"]',
|
managementJobs: 'i[class$="fa-wrench"]',
|
||||||
instanceGroups: 'i[class$="fa-server"]'
|
instanceGroups: 'i[class$="fa-server"]',
|
||||||
|
settings: 'i[class$="fa-cog"]',
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
61
awx/ui/test/e2e/tests/test-configuration-ldap-fields.js
Normal file
61
awx/ui/test/e2e/tests/test-configuration-ldap-fields.js
Normal 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();
|
||||||
|
},
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user