guest-network: fixes for dhcp leases
This commit is contained in:
parent
e87dc83fbc
commit
0436480a44
1 changed files with 67 additions and 74 deletions
|
@ -2,89 +2,82 @@ import { expect, test } from '@playwright/test';
|
||||||
import { isValidCidr, isValidMacAddress, clickSelect2Dropdown, hasToastText, sleep } from '../../utils/utils.js';
|
import { isValidCidr, isValidMacAddress, clickSelect2Dropdown, hasToastText, sleep } from '../../utils/utils.js';
|
||||||
|
|
||||||
test.describe('Network & Services - Network - Guest LAN', () => {
|
test.describe('Network & Services - Network - Guest LAN', () => {
|
||||||
test.beforeEach(async ({ page }) => {
|
test.beforeEach(async ({ page }) => {
|
||||||
await page.goto('/network/guest-lan', { waitUntil: 'networkidle' });
|
await page.goto('/network/guest-lan', { waitUntil: 'networkidle' });
|
||||||
await page.waitForFunction(async () => {
|
await page.waitForFunction(async () => {
|
||||||
await sleep(1000);
|
await sleep(1000);
|
||||||
const element = document.querySelector('.lan-netmask-select');
|
const element = document.querySelector('.lan-netmask-select');
|
||||||
return element && element.classList.contains('select2-hidden-accessible');
|
return element && element.classList.contains('select2-hidden-accessible');
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
test('Title', async ({ page }) => {
|
test('Title', async ({ page }) => {
|
||||||
const title = await page.title();
|
const title = await page.title();
|
||||||
expect(title).toBe('Difuse - Network - Guest LAN');
|
expect(title).toBe('Difuse - Network - Guest LAN');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Info Table', async ({ page }) => {
|
test('Info Table', async ({ page }) => {
|
||||||
const rows = await page.$$('table > tbody > tr');
|
const rows = await page.$$('table > tbody > tr');
|
||||||
|
|
||||||
for (const row of rows) {
|
for (const row of rows) {
|
||||||
const cells = await row.$$('td');
|
const cells = await row.$$('td');
|
||||||
if (cells.length === 2) {
|
if (cells.length === 2) {
|
||||||
const label = await cells[0].textContent();
|
const label = await cells[0].textContent();
|
||||||
const value = await cells[1].textContent();
|
const value = await cells[1].textContent();
|
||||||
|
|
||||||
if (label === 'Protocol') {
|
if (label === 'Protocol') {
|
||||||
expect(value).toBe('Static Address');
|
expect(value).toBe('Static Address');
|
||||||
} else if (label === 'Uptime') {
|
} else if (label === 'Uptime') {
|
||||||
expect(typeof parseInt(value)).toBe('number');
|
expect(typeof parseInt(value)).toBe('number');
|
||||||
} else if (label === 'MAC') {
|
} else if (label === 'MAC') {
|
||||||
expect(isValidMacAddress(value)).toBeTruthy();
|
expect(isValidMacAddress(value)).toBeTruthy();
|
||||||
} else if (label === 'RX' || label === 'TX') {
|
} else if (label === 'RX' || label === 'TX') {
|
||||||
expect(typeof parseInt(value)).toBe('number');
|
expect(typeof parseInt(value)).toBe('number');
|
||||||
} else if (label === 'IPv4') {
|
} else if (label === 'IPv4') {
|
||||||
expect(isValidCidr(value)).toBeTruthy();
|
expect(isValidCidr(value)).toBeTruthy();
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test('DHCP Toggle', async ({ page }) => {
|
||||||
|
const dhcpCb = await page.$('.dhcp-cb');
|
||||||
|
const isChecked = await dhcpCb.isChecked();
|
||||||
|
|
||||||
|
if (isChecked) {
|
||||||
|
expect(await page.isVisible('label:has-text("DHCP Start")')).toBeTruthy();
|
||||||
|
} else {
|
||||||
|
await dhcpCb.check();
|
||||||
|
expect(await page.isVisible('label:has-text("DHCP Start1")')).toBeTruthy();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test.describe('Bad IPv4 Form Submits', () => {
|
||||||
|
test('Bad IPv4', async ({ page }) => {
|
||||||
|
const ip = await page.getByPlaceholder('192.168.1.1');
|
||||||
|
await ip.fill('1.1.1.1.1.1.1.1.1.1.1');
|
||||||
|
await page.click('button.button.green:has-text("Save")');
|
||||||
|
expect(await hasToastText(page, 'Invalid IP Address')).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('DHCP Toggle', async ({ page }) => {
|
test('Bad Netmask', async ({ page }) => {
|
||||||
const dhcpCb = await page.$('.dhcp-cb');
|
await clickSelect2Dropdown(page, '.lan-netmask-select');
|
||||||
const isChecked = await dhcpCb.isChecked();
|
await page.getByRole('searchbox', { name: 'Search' }).fill('15151515515151515');
|
||||||
|
await page.keyboard.press('Enter');
|
||||||
if(isChecked) {
|
await page.click('button.button.green:has-text("Save")');
|
||||||
expect(await page.isVisible('label:has-text("DHCP Start")')).toBeTruthy();
|
expect(await hasToastText(page, 'Invalid Netmask')).toBeTruthy();
|
||||||
} else {
|
|
||||||
await dhcpCb.check();
|
|
||||||
expect(await page.isVisible('label:has-text("DHCP Start1")')).toBeTruthy();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test.describe('Bad IPv4 Form Submits', () => {
|
test('Bad DHCP Start', async ({ page }) => {
|
||||||
test('Bad IPv4', async ({ page }) => {
|
await page.locator('#dhcpStart').fill('55555555555555');
|
||||||
const ip = await page.getByPlaceholder('192.168.1.1');
|
await page.click('button.button.green:has-text("Save")');
|
||||||
await ip.fill('1.1.1.1.1.1.1.1.1.1.1');
|
expect(await hasToastText(page, 'Invalid DHCP Range')).toBeTruthy();
|
||||||
await page.click('button.button.green:has-text("Save")');
|
|
||||||
expect(await hasToastText(page, 'Invalid IP Address')).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('Bad Netmask', async ({ page }) => {
|
|
||||||
await clickSelect2Dropdown(page, '.lan-netmask-select');
|
|
||||||
await page.getByRole('searchbox', {name: 'Search'}).fill('15151515515151515');
|
|
||||||
await page.keyboard.press('Enter');
|
|
||||||
await page.click('button.button.green:has-text("Save")');
|
|
||||||
expect(await hasToastText(page, 'Invalid Netmask')).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('Bad DHCP Start', async ({ page }) => {
|
|
||||||
await page.locator('#dhcpStart').fill('55555555555555');
|
|
||||||
await page.click('button.button.green:has-text("Save")');
|
|
||||||
expect(await hasToastText(page, 'Invalid DHCP Range')).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('Bad DHCP Max Leases', async ({ page }) => {
|
|
||||||
await page.locator('#dhcpMax').fill('55555555555555');
|
|
||||||
await page.click('button.button.green:has-text("Save")');
|
|
||||||
expect(await hasToastText(page, 'Invalid DHCP Range')).toBeTruthy();
|
|
||||||
});
|
|
||||||
|
|
||||||
/* Hayzam - Fix This */
|
|
||||||
// test('Bad DHCP Leasetime', async ({ page }) => {
|
|
||||||
// await page.locator('#leaseTime').fill('55555555555555');
|
|
||||||
// await page.click('button.button.green:has-text("Save")');
|
|
||||||
// expect(await hasToastText(page, 'Invalid Lease Time')).toBeTruthy();
|
|
||||||
// });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('Bad DHCP Max Leases', async ({ page }) => {
|
||||||
|
await page.locator('#dhcpMax').fill('55555555555555');
|
||||||
|
await page.click('button.button.green:has-text("Save")');
|
||||||
|
expect(await hasToastText(page, 'Invalid DHCP Range')).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue