Committed harmony on SAML. Streamlined the tests even further.
This commit is contained in:
		| @ -1,28 +1,43 @@ | ||||
| import { expect } from "@wdio/globals"; | ||||
| import { | ||||
|     clickButton, | ||||
|     setFormGroup, | ||||
|     setSearchSelect, | ||||
|     setTextInput, | ||||
|     setTypeCreate, | ||||
| } from "pageobjects/controls.js"; | ||||
|  | ||||
| import ProviderWizardView from "../pageobjects/provider-wizard.page.js"; | ||||
| import ProvidersListPage from "../pageobjects/providers-list.page.js"; | ||||
| import { randomId } from "../utils/index.js"; | ||||
| import { login } from "../utils/login.js"; | ||||
| import { | ||||
|     simpleLDAPProviderForm, | ||||
|     simpleOAuth2ProviderForm, | ||||
|     simpleRadiusProviderForm, | ||||
| } from "./shared-sequences.js"; | ||||
|  | ||||
| async function reachTheProvider() { | ||||
|     await ProvidersListPage.logout(); | ||||
|     await login(); | ||||
|     await ProvidersListPage.open(); | ||||
|     await expect(await ProvidersListPage.pageHeader()).toHaveText("Providers"); | ||||
|     await expect(await containedMessages()).not.toContain("Successfully created provider."); | ||||
|  | ||||
|     await ProvidersListPage.startWizardButton.click(); | ||||
|     await ProviderWizardView.wizardTitle.waitForDisplayed(); | ||||
|     await expect(await ProviderWizardView.wizardTitle).toHaveText("New provider"); | ||||
| } | ||||
|  | ||||
| const containedMessages = async () => | ||||
|     await (async () => { | ||||
|         const messages = []; | ||||
|         for await (const alert of $("ak-message-container").$$("ak-message")) { | ||||
|             messages.push(await alert.$("p.pf-c-alert__title").getText()); | ||||
|         } | ||||
|         return messages; | ||||
|     })(); | ||||
|  | ||||
| const hasProviderSuccessMessage = async () => | ||||
|     await browser.waitUntil( | ||||
|         async () => (await containedMessages()).includes("Successfully created provider."), | ||||
|         { timeout: 1000, timeoutMsg: "Expected to see provider success message." }, | ||||
|     ); | ||||
|  | ||||
| type FieldDesc = [(..._: unknown) => Promise<void>, ...unknown]; | ||||
|  | ||||
| async function fillOutFields(fields: FieldDesc[]) { | ||||
|     for (const field of fields) { | ||||
|         const thefunc = field[0]; | ||||
| @ -33,64 +48,44 @@ async function fillOutFields(fields: FieldDesc[]) { | ||||
|  | ||||
| describe("Configure Oauth2 Providers", () => { | ||||
|     it("Should configure a simple OAuth2 Provider", async () => { | ||||
|         const newProviderName = `New OAuth2 Provider - ${randomId()}`; | ||||
|  | ||||
|         await reachTheProvider(); | ||||
|  | ||||
|         await $("ak-wizard-page-type-create").waitForDisplayed(); | ||||
|  | ||||
|         // prettier-ignore | ||||
|         await fillOutFields([ | ||||
|             [setTypeCreate, "selectProviderType", "OAuth2/OpenID Provider"], | ||||
|             [clickButton, "Next"], | ||||
|             [setTextInput, "name", newProviderName], | ||||
|             [setSearchSelect, "authorizationFlow", "default-provider-authorization-explicit-consent"], | ||||
|         ]); | ||||
|  | ||||
|         await fillOutFields(simpleOAuth2ProviderForm()); | ||||
|         await ProviderWizardView.pause(); | ||||
|         await ProviderWizardView.nextButton.click(); | ||||
|         await hasProviderSuccessMessage(); | ||||
|     }); | ||||
| }); | ||||
|  | ||||
| describe("Configure LDAP Providers", () => { | ||||
|     it("Should configure a simple LDAP Provider", async () => { | ||||
|         const newProviderName = `New LDAP Provider - ${randomId()}`; | ||||
|  | ||||
|         await reachTheProvider(); | ||||
|         await $("ak-wizard-page-type-create").waitForDisplayed(); | ||||
|  | ||||
|         // prettier-ignore | ||||
|         await fillOutFields([ | ||||
|             [setTypeCreate, "selectProviderType", "LDAP Provider"], | ||||
|             [clickButton, "Next"], | ||||
|             [setTextInput, "name", newProviderName], | ||||
|             [setFormGroup, /Flow settings/, "open"], | ||||
|             // This will never not weird me out. | ||||
|             [setSearchSelect, "authorizationFlow", "default-authentication-flow"], | ||||
|             [setSearchSelect, "invalidationFlow", "default-invalidation-flow"], | ||||
|         ]); | ||||
|  | ||||
|         await fillOutFields(simpleLDAPProviderForm()); | ||||
|         await ProviderWizardView.pause(); | ||||
|         await ProviderWizardView.nextButton.click(); | ||||
|         await hasProviderSuccessMessage(); | ||||
|     }); | ||||
| }); | ||||
|  | ||||
| describe("Configure Radius Providers", () => { | ||||
|     it("Should configure a simple Radius Provider", async () => { | ||||
|         const newProviderName = `New Radius Provider - ${randomId()}`; | ||||
|  | ||||
|         await reachTheProvider(); | ||||
|         await $("ak-wizard-page-type-create").waitForDisplayed(); | ||||
|  | ||||
|         // prettier-ignore | ||||
|         await fillOutFields([ | ||||
|             [setTypeCreate, "selectProviderType", "Radius Provider"], | ||||
|             [clickButton, "Next"], | ||||
|             [setTextInput, "name", newProviderName], | ||||
|             [setSearchSelect, "authorizationFlow", "default-authentication-flow"], | ||||
|         ]); | ||||
|  | ||||
|         await fillOutFields(simpleRadiusProviderForm()); | ||||
|         await ProviderWizardView.pause(); | ||||
|         await ProviderWizardView.nextButton.click(); | ||||
|         await hasProviderSuccessMessage(); | ||||
|     }); | ||||
| }); | ||||
|  | ||||
| describe("Configure SAML Providers", () => { | ||||
|     it("Should configure a simple Radius Provider", async () => { | ||||
|         await reachTheProvider(); | ||||
|         await $("ak-wizard-page-type-create").waitForDisplayed(); | ||||
|         await fillOutFields(simpleRadiusProviderForm()); | ||||
|         await ProviderWizardView.pause(); | ||||
|         await ProviderWizardView.nextButton.click(); | ||||
|         await hasProviderSuccessMessage(); | ||||
|     }); | ||||
| }); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Ken Sternberg
					Ken Sternberg