test(ui): refactor ProvidersPage and enhance M365 provider tests

- Refactored the ProvidersPage class to improve the structure and clarity of provider data and credential handling for AWS, AZURE, and M365 providers.
- Introduced new methods for filling provider details and credentials, ensuring better organization and maintainability of the test code.
- Updated M365 provider tests to utilize the new structure, including verification of credential pages and improved error handling during provider management.
- Enhanced the test setup to ensure a clean state by deleting existing providers before each test.
This commit is contained in:
StylusFrost
2025-10-23 15:10:13 +02:00
parent f6f25d1191
commit 670d9a8f87
2 changed files with 682 additions and 427 deletions
File diff suppressed because it is too large Load Diff
+15 -9
View File
@@ -1,5 +1,4 @@
import { test } from "@playwright/test";
import * as helpers from "../helpers";
import {
ProvidersPage,
AWSProviderData,
@@ -13,7 +12,6 @@ import {
M365_CREDENTIAL_OPTIONS,
} from "./providers-page";
import { ScansPage } from "../scans/scans-page";
import fs from "fs";
test.describe("Add Provider", () => {
test.describe.serial("Add AWS Provider", () => {
@@ -266,9 +264,10 @@ test.describe("Add Provider", () => {
);
});
test.describe("Add M365 Provider", () => {
test.describe.serial("Add M365 Provider", () => {
// Providers page object
let providersPage: ProvidersPage;
let scansPage: ScansPage;
// Test data from environment variables
const domainId = process.env.E2E_M365_DOMAIN_ID;
@@ -286,7 +285,7 @@ test.describe("Add Provider", () => {
test.beforeEach(async ({ page }) => {
providersPage = new ProvidersPage(page);
// Clean up existing provider to ensure clean test state
await helpers.deleteProviderIfExists(page, domainId);
await providersPage.deleteProviderIfExists(domainId);
});
// Use admin authentication for provider management
@@ -344,6 +343,8 @@ test.describe("Add Provider", () => {
await providersPage.selectM365CredentialsType(
M365_CREDENTIAL_OPTIONS.M365_CREDENTIALS,
);
// Verify M365 credentials page is loaded
await providersPage.verifyM365CredentialsPageLoaded();
// Fill static credentials details
@@ -354,8 +355,9 @@ test.describe("Add Provider", () => {
await providersPage.verifyLaunchScanPageLoaded();
await providersPage.clickNext();
// Wait for redirect to provider page
await providersPage.verifyLoadProviderPageAfterNewProvider();
// Wait for redirect to scan page
scansPage = new ScansPage(page);
await scansPage.verifyPageLoaded();
},
);
@@ -414,7 +416,9 @@ test.describe("Add Provider", () => {
await providersPage.selectM365CredentialsType(
M365_CREDENTIAL_OPTIONS.M365_CERTIFICATE_CREDENTIALS,
);
await providersPage.verifyM365CredentialsPageLoaded();
// Verify M365 certificate credentials page is loaded
await providersPage.verifyM365CertificateCredentialsPageLoaded();
// Fill static credentials details
await providersPage.fillM365CertificateCredentials(m365Credentials);
@@ -424,9 +428,11 @@ test.describe("Add Provider", () => {
await providersPage.verifyLaunchScanPageLoaded();
await providersPage.clickNext();
// Wait for redirect to provider page
await providersPage.verifyLoadProviderPageAfterNewProvider();
// Wait for redirect to scan page
scansPage = new ScansPage(page);
await scansPage.verifyPageLoaded();
},
);
});
});