fix: simplify E2E test descriptions and enhance navigation functions for DNS providers and certificates

This commit is contained in:
GitHub Actions
2026-02-12 13:04:24 +00:00
parent 26dd7f5d96
commit bcd08eb1cb
5 changed files with 103 additions and 74 deletions
@@ -1,5 +1,5 @@
/**
* Multi-Feature Workflows E2E Tests (Phase 6.7)
* Multi-Feature Workflows E2E Tests
*
* Tests for complex workflows that span multiple features,
* testing real-world usage scenarios and feature interactions.
@@ -58,6 +58,20 @@ const SELECTORS = {
loadingSpinner: '[data-testid="loading"], .loading, .spinner',
};
async function navigateToDnsProviders(page: import('@playwright/test').Page): Promise<void> {
const providersResponse = waitForAPIResponse(page, /\/api\/v1\/dns-providers/);
await page.goto('/dns/providers');
await providersResponse;
await waitForLoadingComplete(page);
}
async function navigateToCertificates(page: import('@playwright/test').Page): Promise<void> {
const certsResponse = waitForAPIResponse(page, /\/api\/v1\/certificates/);
await page.goto('/certificates');
await certsResponse;
await waitForLoadingComplete(page);
}
test.describe('Multi-Feature Workflows E2E', () => {
// ===========================================================================
// Group A: Complete Host Setup Workflow (5 tests)
@@ -212,17 +226,19 @@ test.describe('Multi-Feature Workflows E2E', () => {
}) => {
await loginUser(page, adminUser);
const dnsProvider = generateDnsProvider();
await test.step('Create DNS provider', async () => {
const dnsProvider = generateDnsProvider();
await testData.createDNSProvider({
name: dnsProvider.name,
providerType: dnsProvider.provider_type,
credentials: dnsProvider.credentials,
});
});
await page.goto('/dns-providers');
await waitForLoadingComplete(page);
await expect(page.getByText(dnsProvider.name)).toBeVisible();
await test.step('Verify DNS provider appears in list', async () => {
await navigateToDnsProviders(page);
await waitForResourceInUI(page, dnsProvider.name);
});
});
@@ -233,24 +249,24 @@ test.describe('Multi-Feature Workflows E2E', () => {
}) => {
await loginUser(page, adminUser);
const dnsProvider = generateDnsProvider();
await test.step('Create DNS provider first', async () => {
const dnsProvider = generateDnsProvider();
await testData.createDNSProvider({
name: dnsProvider.name,
providerType: dnsProvider.provider_type,
credentials: dnsProvider.credentials,
});
});
await page.goto('/dns-providers');
await waitForLoadingComplete(page);
await expect(page.getByText(dnsProvider.name)).toBeVisible();
await test.step('Confirm DNS provider is available', async () => {
await navigateToDnsProviders(page);
await waitForResourceInUI(page, dnsProvider.name);
});
await test.step('Navigate to certificates', async () => {
await page.goto('/certificates');
await waitForLoadingComplete(page);
const content = page.locator('main, .content').first();
await expect(content).toBeVisible();
await navigateToCertificates(page);
await expect(page.getByRole('main')).toBeVisible();
});
});
@@ -269,15 +285,16 @@ test.describe('Multi-Feature Workflows E2E', () => {
forwardPort: proxyInput.forwardPort,
});
const proxiesResponse = waitForAPIResponse(page, /\/api\/v1\/proxy-hosts/);
await page.goto('/proxy-hosts');
await proxiesResponse;
await waitForLoadingComplete(page);
await waitForResourceInUI(page, proxy.domain);
});
await test.step('Navigate to certificates', async () => {
await page.goto('/certificates');
await waitForLoadingComplete(page);
const content = page.locator('main, .content').first();
await expect(content).toBeVisible();
await navigateToCertificates(page);
await expect(page.getByRole('main')).toBeVisible();
});
});
@@ -288,13 +305,11 @@ test.describe('Multi-Feature Workflows E2E', () => {
await loginUser(page, adminUser);
await test.step('Navigate to certificates', async () => {
await page.goto('/certificates');
await waitForLoadingComplete(page);
await navigateToCertificates(page);
});
await test.step('Verify certificate management page', async () => {
const content = page.locator('main, .content').first();
await expect(content).toBeVisible();
await expect(page.getByRole('main')).toBeVisible();
});
});
});