import { test, expect } from '@playwright/test'; test.describe('Network & Services - Network - DHCP', () => { test.describe('General Settings Tab', () => { test.beforeEach(async ({ page }) => { await page.goto('/network/dhcp', { waitUntil: 'networkidle' }); await page.waitForSelector('#general-tab-dndh'); const generalSettingsTab = await page.locator('#general-tab-dndh'); await generalSettingsTab.click(); await page.waitForTimeout(3000); }); test('Title', async ({ page }) => { expect(await page.title()).toBe('Difuse - Network - DHCP'); }); test('Card Header Title', async ({ page }) => { const title = await page.locator('.card-header-title'); expect(await title).toBeTruthy(); }); test('Allocate IPs Sequentially', async ({ page }) => { const label = await page.$('#general-form label:has-text("Allocate IPs Sequentially")'); expect(label).toBeTruthy(); const switchField = await page.locator('#general-form .sequential_ip'); const switchFieldIsVisible = await switchField.isVisible(); expect(switchFieldIsVisible).toBeTruthy(); }); test('Authoritative ', async ({ page }) => { const label = await page.$('#general-form label:has-text("Authoritative")'); expect(label).toBeTruthy(); const switchField = await page.locator('#general-form .authoritative'); const switchFieldIsVisible = await switchField.isVisible(); expect(switchFieldIsVisible).toBeTruthy(); }); test('Hijack DNS ', async ({ page }) => { const label = await page.$('#general-form label:has-text("Hijack DNS")'); expect(label).toBeTruthy(); const switchField = await page.locator('#general-form .hijackdns'); const switchFieldIsVisible = await switchField.isVisible(); expect(switchFieldIsVisible).toBeTruthy(); }); test('Save Button', async ({ page }) => { const button = page.locator('#general-form button.button.green:has-text("Save")'); expect(button).toBeTruthy(); }); }); test.describe('Static Leases Tab', () => { test.beforeEach(async ({ page }) => { await page.goto('/network/dhcp', { waitUntil: 'networkidle' }); await page.waitForSelector('#static-tab-dndh'); const generalSettingsTab = await page.locator('#static-tab-dndh'); await generalSettingsTab.click(); await page.waitForTimeout(3000); }); test('Static Leases', async ({ page }) => { const label = await page.locator('#content-static span:has-text("Static Leases")'); const visible = await label.isVisible(); expect(visible).toBeTruthy(); }); test('Static Leases Table Visible', async ({ page }) => { const filterField = await page.locator('#sl-filter-field'); const filterFieldIsVisible = await filterField.isVisible(); const filterType = await page.locator('#sl-filter-type'); const filterTypeIsVisible = await filterType.isVisible(); const filterValue = await page.locator('#sl-filter-value'); const filterValueIsVisible = await filterValue.isVisible(); const ClearFilter = await page.locator('#sl-filter-clear'); const ClearFilterIsVisible = await ClearFilter.isVisible(); expect(filterFieldIsVisible && filterTypeIsVisible && filterValueIsVisible && ClearFilterIsVisible).toBe(true); const table = await page.locator('#static-leases-t'); const tableIsVisible = await table.isVisible(); expect(tableIsVisible).toBe(true); }); test('Static Leases Add Button', async ({ page }) => { const addButton = await page.locator('#addNewStatic'); const visible = await addButton.isVisible(); expect(visible).toBeTruthy(); }); test('Active DHCPv4 Leases', async ({ page }) => { const label = await page.locator('#content-static span:has-text("Active DHCPv4 Leases")'); const visible = await label.isVisible(); expect(visible).toBeTruthy(); }); test('Active DHCPv4 Leases Table Visible', async ({ page }) => { const filterField = await page.locator('#\\34-filter-field'); const filterFieldIsVisible = await filterField.isVisible(); const filterType = await page.locator('#\\34-filter-type'); const filterTypeIsVisible = await filterType.isVisible(); const filterValue = await page.locator('#\\34-filter-value'); const filterValueIsVisible = await filterValue.isVisible(); const ClearFilter = await page.locator('#\\34-filter-clear'); const ClearFilterIsVisible = await ClearFilter.isVisible(); expect(filterFieldIsVisible && filterTypeIsVisible && filterValueIsVisible && ClearFilterIsVisible).toBe(true); const table = await page.locator('#active-leases-t'); const tableIsVisible = await table.isVisible(); expect(tableIsVisible).toBe(true); }); test('Active DHCPv6 Leases', async ({ page }) => { const label = await page.locator('#content-static span:has-text("Active DHCPv6 Leases")'); const visible = await label.isVisible(); expect(visible).toBeTruthy(); }); test('Active DHCPv6 Leases Table Visible', async ({ page }) => { const filterField = await page.locator('#\\36-filter-field'); const filterFieldIsVisible = await filterField.isVisible(); const filterType = await page.locator('#\\36-filter-type'); const filterTypeIsVisible = await filterType.isVisible(); const filterValue = await page.locator('#\\36-filter-value'); const filterValueIsVisible = await filterValue.isVisible(); const ClearFilter = await page.locator('#\\36-filter-clear'); const ClearFilterIsVisible = await ClearFilter.isVisible(); expect(filterFieldIsVisible && filterTypeIsVisible && filterValueIsVisible && ClearFilterIsVisible).toBe(true); const table = await page.locator('#active-6leases-t'); const tableIsVisible = await table.isVisible(); expect(tableIsVisible).toBe(true); }); }); });