Merge branch 'PROWLER-180-azure-add-and-connect-the-provider-new' into PROWLER-184-m365-add-and-connect-the-provider

This commit is contained in:
StylusFrost
2025-10-23 15:01:44 +02:00
committed by GitHub
4 changed files with 472 additions and 635 deletions
-7
View File
@@ -188,10 +188,3 @@ export async function verifySessionValid(page: Page) {
expect(session.refreshToken).toBeTruthy();
return session;
}
export async function deleteProviderIfExists(page: Page, accountId: string) {
const providersPage = new ProvidersPage(page);
if (await providersPage.verifyProviderExists(accountId)) {
await providersPage.actionDeleteProvider(accountId);
}
}
File diff suppressed because it is too large Load Diff
+16 -10
View File
@@ -12,12 +12,14 @@ import {
M365ProviderCredential,
M365_CREDENTIAL_OPTIONS,
} from "./providers-page";
import { ScansPage } from "../scans/scans-page";
import fs from "fs";
test.describe.serial("Add Provider", () => {
test.describe("Add AWS Provider", () => {
test.describe("Add Provider", () => {
test.describe.serial("Add AWS Provider", () => {
// Providers page object
let providersPage: ProvidersPage;
let scansPage: ScansPage;
// Test data from environment variables
const accountId = process.env.E2E_AWS_PROVIDER_ACCOUNT_ID;
const accessKey = process.env.E2E_AWS_PROVIDER_ACCESS_KEY;
@@ -35,7 +37,7 @@ test.describe.serial("Add Provider", () => {
test.beforeEach(async ({ page }) => {
providersPage = new ProvidersPage(page);
// Clean up existing provider to ensure clean test state
await helpers.deleteProviderIfExists(page, accountId);
await providersPage.deleteProviderIfExists(accountId);
});
// Use admin authentication for provider management
@@ -104,7 +106,8 @@ test.describe.serial("Add Provider", () => {
await providersPage.clickNext();
// Wait for redirect to provider page
await providersPage.verifyLoadProviderPageAfterNewProvider();
scansPage = new ScansPage(page);
await scansPage.verifyPageLoaded();
},
);
@@ -172,14 +175,16 @@ test.describe.serial("Add Provider", () => {
await providersPage.clickNext();
// Wait for redirect to provider page
await providersPage.verifyLoadProviderPageAfterNewProvider();
scansPage = new ScansPage(page);
await scansPage.verifyPageLoaded();
},
);
});
test.describe("Add AZURE Provider", () => {
test.describe.serial("Add AZURE Provider", () => {
// Providers page object
let providersPage: ProvidersPage;
let scansPage: ScansPage;
// Test data from environment variables
const subscriptionId = process.env.E2E_AZURE_SUBSCRIPTION_ID;
@@ -198,7 +203,7 @@ test.describe.serial("Add Provider", () => {
test.beforeEach(async ({ page }) => {
providersPage = new ProvidersPage(page);
// Clean up existing provider to ensure clean test state
await helpers.deleteProviderIfExists(page, subscriptionId);
await providersPage.deleteProviderIfExists(subscriptionId);
});
// Use admin authentication for provider management
@@ -254,8 +259,9 @@ test.describe.serial("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();
},
);
});
+28
View File
@@ -0,0 +1,28 @@
import { Page, Locator, expect } from "@playwright/test";
import { BasePage } from "../base-page";
// Scan page
export class ScansPage extends BasePage {
// Main content elements
readonly scanTable: Locator;
constructor(page: Page) {
super(page);
// Main content elements
this.scanTable = page.locator("table");
}
// Navigation methods
async goto(): Promise<void> {
await super.goto("/scans");
}
// Verification methods
async verifyPageLoaded(): Promise<void> {
await expect(this.page).toHaveTitle(/Prowler/);
await expect(this.scanTable).toBeVisible();
await this.waitForPageLoad();
}
}