feat: add full Zonemaster stack with Docker and Spanish UI

- 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>
This commit is contained in:
2026-04-21 08:19:24 +02:00
commit 8d4eaa1489
1567 changed files with 204155 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
import {test, expect} from './global-setup';
import {goToHome, setLang, showOptions} from './utils/app.utils';
test.describe('Zonemaster test FR19 - [The GUI should be able to run the test with at least one name server as input]', () => {
test.beforeEach(async ({page}) => {
await goToHome(page);
await setLang(page, 'en');
await page.waitForLoadState('networkidle');
await showOptions(page);
});
test('should NOT display progress bar when we add a NS ip', async ({page}) => {
await expect(page.locator('.zm-domain-test__progress-bar')).toHaveCount(0);
await page.locator('input[name="domain"]').first().focus();
await page.keyboard.type('progress.afNiC.Fr');
await page.locator('input[name="nameservers[0][ip]"]').first().focus();
await page.keyboard.type('192.134.4.1');
await page.keyboard.press('Enter');
await expect(page.locator('input[name="nameservers[0][ns]"]:invalid')).toHaveCount(1);
await expect(page.locator('.zm-domain-test__progress-bar')).toHaveCount(0);
});
test('should display progress bar when we add a NS name', async ({page}) => {
await expect(page.locator('.zm-domain-test__progress-bar')).toHaveCount(0);
await page.locator('input[name="domain"]').first().focus();
await page.keyboard.type('progress.afNiC.Fr');
await page.locator('input[name="nameservers[0][ns]"]').first().focus();
await page.keyboard.type('ns1.nic.fr');
await page.keyboard.press('Enter');
await expect(page.locator('.zm-domain-test__progress-bar')).toHaveCount(1);
});
});