f2ba927d34
- Added SCIM to the list of available providers - Fixed ForwardProxy so that its mode is set correctly. (This is a special case in the committer; I'm unhappy with that.) - Fixed the commit messages so that: - icons are set correctly (Success, Danger, Working) - icons are colored correctly according to state - commit message includes a `data-commit-state` field so tests can find it! - Merged the application wizard tests into a single test pass - Isolated common parts of the application wizard tests to reduce unnecessary repetition. All application tests are the same until you reach the provider section anyway. - Fixed the unit tests so they're finding the right error messages and are enabled to display them correctly. - Moved the test Form handlers into their own folder so they're not cluttering up the Pages folder.
74 lines
2.1 KiB
TypeScript
74 lines
2.1 KiB
TypeScript
import AdminPage from "./admin.page.js";
|
|
import ApplicationForm from "./forms/application.form.js";
|
|
import LdapForm from "./forms/ldap.form.js";
|
|
import OauthForm from "./forms/oauth.form.js";
|
|
import TransparentProxyForm from "./forms/transparent-proxy.form.js";
|
|
import ForwardProxyForm from "./forms/forward-proxy.form.js";
|
|
import SamlForm from "./forms/saml.form.js";
|
|
import ScimForm from "./forms/scim.form.js";
|
|
import { $ } from "@wdio/globals";
|
|
|
|
/**
|
|
* sub page containing specific selectors and methods for a specific page
|
|
*/
|
|
|
|
class ApplicationWizardView extends AdminPage {
|
|
/**
|
|
* define selectors using getter methods
|
|
*/
|
|
|
|
ldap = LdapForm;
|
|
oauth = OauthForm;
|
|
transparentProxy = TransparentProxyForm;
|
|
forwardProxy = ForwardProxyForm;
|
|
saml = SamlForm;
|
|
scim = ScimForm;
|
|
app = ApplicationForm;
|
|
|
|
get wizardTitle() {
|
|
return $(">>>ak-wizard-frame .pf-c-wizard__header h1.pf-c-title");
|
|
}
|
|
|
|
get providerList() {
|
|
return $(">>>ak-application-wizard-authentication-method-choice");
|
|
}
|
|
|
|
get nextButton() {
|
|
return $(">>>ak-wizard-frame footer button.pf-m-primary");
|
|
}
|
|
|
|
async getProviderType(type: string) {
|
|
return await this.providerList.$(`>>>input[value="${type}"]`);
|
|
}
|
|
|
|
get successMessage() {
|
|
return $('>>>[data-commit-state="success"]')
|
|
}
|
|
}
|
|
|
|
type Pair = [string, string];
|
|
|
|
// Define a getter for each provider type in the radio button collection.
|
|
|
|
const providerValues: Pair[] = [
|
|
["oauth2provider", "oauth2Provider"],
|
|
["ldapprovider", "ldapProvider"],
|
|
["proxyprovider-proxy", "proxyProviderProxy"],
|
|
["proxyprovider-forwardsingle", "proxyProviderForwardsingle"],
|
|
["radiusprovider", "radiusProvider"],
|
|
["samlprovider", "samlProvider"],
|
|
["scimprovider", "scimProvider"],
|
|
];
|
|
|
|
providerValues.forEach(([value, name]: Pair) => {
|
|
Object.defineProperties(ApplicationWizardView.prototype, {
|
|
[name]: {
|
|
get: function () {
|
|
return this.providerList.$(`>>>input[value="${value}"]`);
|
|
},
|
|
},
|
|
});
|
|
});
|
|
|
|
export default new ApplicationWizardView();
|