c77a471d5e
Anyway, this was a very stupid bug, because by definition function definition arguments don't have uses, they're being defined, not implemented. Fixed, conf fixed to compensate, and consequences conquered.
168 lines
6.9 KiB
TypeScript
168 lines
6.9 KiB
TypeScript
import ApplicationWizardView from "../pageobjects/application-wizard.page.js";
|
|
import ApplicationsListPage from "../pageobjects/applications-list.page.js";
|
|
import { randomId } from "../utils/index.js";
|
|
import { login } from "../utils/login.js";
|
|
import { expect } from "@wdio/globals";
|
|
|
|
async function reachTheProvider(title: string) {
|
|
const newPrefix = randomId();
|
|
|
|
await ApplicationsListPage.logout();
|
|
await login();
|
|
await ApplicationsListPage.open();
|
|
await expect(await ApplicationsListPage.pageHeader).toHaveText("Applications");
|
|
|
|
await ApplicationsListPage.startWizardButton.click();
|
|
await ApplicationWizardView.wizardTitle.waitForDisplayed();
|
|
await expect(await ApplicationWizardView.wizardTitle).toHaveText("New application");
|
|
|
|
await ApplicationWizardView.app.name.setValue(`${title} - ${newPrefix}`);
|
|
await ApplicationWizardView.app.uiSettings.scrollIntoView();
|
|
await ApplicationWizardView.app.uiSettings.click();
|
|
await ApplicationWizardView.app.launchUrl.scrollIntoView();
|
|
await ApplicationWizardView.app.launchUrl.setValue("http://example.goauthentik.io");
|
|
|
|
await ApplicationWizardView.nextButton.click();
|
|
return await ApplicationWizardView.pause();
|
|
}
|
|
|
|
async function getCommitMessage() {
|
|
await ApplicationWizardView.successMessage.waitForDisplayed();
|
|
return await ApplicationWizardView.successMessage;
|
|
}
|
|
|
|
const SUCCESS_MESSAGE = "Your application has been saved";
|
|
const EXPLICIT_CONSENT = "default-provider-authorization-explicit-consent";
|
|
|
|
describe("Configure Applications with the Application Wizard", () => {
|
|
it("Should configure a simple LDAP Application", async () => {
|
|
await reachTheProvider("New LDAP Application");
|
|
|
|
await ApplicationWizardView.providerList.waitForDisplayed();
|
|
await ApplicationWizardView.ldapProvider.scrollIntoView();
|
|
await ApplicationWizardView.ldapProvider.click();
|
|
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await ApplicationWizardView.ldap.setBindFlow("default-authentication-flow");
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await expect(getCommitMessage()).toHaveText(SUCCESS_MESSAGE);
|
|
});
|
|
|
|
it("Should configure a simple Oauth2 Application", async () => {
|
|
await reachTheProvider("New Oauth2 Application");
|
|
|
|
await ApplicationWizardView.providerList.waitForDisplayed();
|
|
await ApplicationWizardView.oauth2Provider.scrollIntoView();
|
|
await ApplicationWizardView.oauth2Provider.click();
|
|
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await ApplicationWizardView.oauth.setAuthorizationFlow(EXPLICIT_CONSENT);
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await expect(getCommitMessage()).toHaveText(SUCCESS_MESSAGE);
|
|
});
|
|
|
|
it("Should configure a simple SAML Application", async () => {
|
|
await reachTheProvider("New SAML Application");
|
|
|
|
await ApplicationWizardView.providerList.waitForDisplayed();
|
|
await ApplicationWizardView.samlProvider.scrollIntoView();
|
|
await ApplicationWizardView.samlProvider.click();
|
|
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await ApplicationWizardView.saml.setAuthorizationFlow(EXPLICIT_CONSENT);
|
|
await ApplicationWizardView.saml.acsUrl.setValue("http://example.com:8000/");
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await expect(getCommitMessage()).toHaveText(SUCCESS_MESSAGE);
|
|
});
|
|
|
|
it("Should configure a simple SCIM Application", async () => {
|
|
await reachTheProvider("New SCIM Application");
|
|
|
|
await ApplicationWizardView.providerList.waitForDisplayed();
|
|
await ApplicationWizardView.scimProvider.scrollIntoView();
|
|
await ApplicationWizardView.scimProvider.click();
|
|
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await ApplicationWizardView.scim.url.setValue("http://example.com:8000/");
|
|
await ApplicationWizardView.scim.token.setValue("a-very-basic-token");
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await expect(getCommitMessage()).toHaveText(SUCCESS_MESSAGE);
|
|
});
|
|
|
|
it("Should configure a simple Radius Application", async () => {
|
|
await reachTheProvider("New Radius Application");
|
|
|
|
await ApplicationWizardView.providerList.waitForDisplayed();
|
|
await ApplicationWizardView.radiusProvider.scrollIntoView();
|
|
await ApplicationWizardView.radiusProvider.click();
|
|
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await ApplicationWizardView.radius.setAuthenticationFlow("default-authentication-flow");
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await expect(getCommitMessage()).toHaveText(SUCCESS_MESSAGE);
|
|
});
|
|
|
|
it("Should configure a simple Transparent Proxy Application", async () => {
|
|
await reachTheProvider("New Transparent Proxy Application");
|
|
|
|
await ApplicationWizardView.providerList.waitForDisplayed();
|
|
await ApplicationWizardView.proxyProviderProxy.scrollIntoView();
|
|
await ApplicationWizardView.proxyProviderProxy.click();
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await ApplicationWizardView.transparentProxy.setAuthorizationFlow(EXPLICIT_CONSENT);
|
|
await ApplicationWizardView.transparentProxy.externalHost.setValue(
|
|
"http://external.example.com",
|
|
);
|
|
await ApplicationWizardView.transparentProxy.internalHost.setValue(
|
|
"http://internal.example.com",
|
|
);
|
|
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await expect(getCommitMessage()).toHaveText(SUCCESS_MESSAGE);
|
|
});
|
|
|
|
it("Should configure a simple Forward Proxy Application", async () => {
|
|
await reachTheProvider("New Forward Proxy Application");
|
|
|
|
await ApplicationWizardView.providerList.waitForDisplayed();
|
|
await ApplicationWizardView.proxyProviderForwardsingle.scrollIntoView();
|
|
await ApplicationWizardView.proxyProviderForwardsingle.click();
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await ApplicationWizardView.forwardProxy.setAuthorizationFlow(EXPLICIT_CONSENT);
|
|
await ApplicationWizardView.forwardProxy.externalHost.setValue(
|
|
"http://external.example.com",
|
|
);
|
|
|
|
await ApplicationWizardView.nextButton.click();
|
|
await ApplicationWizardView.pause();
|
|
|
|
await expect(getCommitMessage()).toHaveText(SUCCESS_MESSAGE);
|
|
});
|
|
});
|