- Clone all 5 Zonemaster component repos (LDNS, Engine, CLI, Backend, GUI) - Dockerfile.backend: 8-stage multi-stage build LDNS→Engine→CLI→Backend - Dockerfile.gui: Astro static build served via nginx - docker-compose.yml: backend (internal) + frontend (port 5353) - nginx.conf: root redirects to /es/, /api/ proxied to backend - zonemaster-gui/config.ts: defaultLanguage set to 'es' (Spanish) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
33 lines
1.4 KiB
TypeScript
33 lines
1.4 KiB
TypeScript
import { test, expect } from './global-setup';
|
|
|
|
import { setLang } from './utils/app.utils';
|
|
|
|
test.describe('Zonemaster test FR25 - [Should be able to export the result in multiple formats (HTML, CSV, JSON, TEXT)]', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/');
|
|
await setLang(page, 'en');
|
|
await page.waitForLoadState('networkidle');
|
|
});
|
|
|
|
test('should have an export button', async ({ page }) => {
|
|
await page.locator('input[name="domain"]').first().focus();
|
|
|
|
await page.keyboard.type('results.afNiC.Fr');
|
|
await page.keyboard.press('Enter');
|
|
|
|
const exportButton = page.locator('#zmExportButton');
|
|
const exportContent = page.locator('#zmExportDialog');
|
|
|
|
await expect(exportButton).toBeVisible({ timeout: 10000 });
|
|
await expect(exportButton).toHaveText('Export');
|
|
await expect(exportContent).toBeHidden();
|
|
await exportButton.click();
|
|
await expect(exportContent).toBeVisible({ timeout: 1000 });
|
|
|
|
await expect(page.locator('#zmExportDialog button:nth-child(1)')).toHaveText('JSON');
|
|
await expect(page.locator('#zmExportDialog button:nth-child(2)')).toHaveText('HTML');
|
|
await expect(page.locator('#zmExportDialog button:nth-child(3)')).toHaveText('CSV');
|
|
await expect(page.locator('#zmExportDialog button:nth-child(4)')).toHaveText('Text');
|
|
});
|
|
});
|