import { test, expect } from '@playwright/test'; import { isValidMacAddress, isValidPrivateIPV4 } from '../../utils/utils.js'; test.describe('Network & Services - Network - WAN', () => { test.beforeEach(async ({ page }) => { await page.goto('/network/wan', { waitUntil: 'networkidle' }); }); test('Title', async ({ page }) => { expect(await page.title()).toBe('Difuse - Network - WAN'); }); test('Card Header Title', async ({ page }) => { const title = await page.locator('.card-header-title'); expect(await title).toBeTruthy(); }); test('IPv4 Info Tables', async ({ page }) => { const rows = await page.$$('table > tbody > tr'); for (let i = 0; i < rows.length && i < 6; i++) { const row = rows[i]; const cells = await row.$$('td'); if (cells.length === 2) { const label = await cells[0].textContent(); const value = await cells[1].textContent(); console.log(label + ' : ' + value); if (label === 'Protocol') { expect(value).toBe('DHCPv4'); } else if (label === 'Uptime') { expect(typeof parseInt(value)).toBe('number'); } else if (label === 'MAC') { expect(isValidMacAddress(value)).toBeTruthy(); } else if (label === 'RX' || label === 'TX') { expect(typeof parseInt(value)).toBe('number'); } else if (label === 'IPv4') { expect(isValidPrivateIPV4(value)).toBe(true); } } } }); test('Restart WAN Interface', async ({ page }) => { const restartButton = await page.locator('#restartWAN'); const visible = await restartButton.isVisible(); expect(visible).toBeTruthy(); }); test('Stop WAN Interface', async ({ page }) => { const stopWAN = await page.locator('#stopWAN'); const visible = await stopWAN.isVisible(); expect(visible).toBeTruthy(); }); test('Disable WAN Interface', async ({ page }) => { const disableWAN = await page.locator('#disableWAN'); const visible = await disableWAN.isVisible(); expect(visible).toBeTruthy(); }); });