53 lines
1.9 KiB
TypeScript
53 lines
1.9 KiB
TypeScript
import { test, expect, type Page } from '@playwright/test';
|
|
import { ADMIN_USERNAME, ADMIN_PASSWORD } from '../constants';
|
|
|
|
test.describe('DNS Settings', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
// Login before each test
|
|
await page.goto('/login.html');
|
|
await page.getByTestId('username').click();
|
|
await page.getByTestId('username').fill(ADMIN_USERNAME);
|
|
await page.getByTestId('password').click();
|
|
await page.getByTestId('password').fill(ADMIN_PASSWORD);
|
|
await page.keyboard.press('Tab');
|
|
await page.getByTestId('sign_in').click();
|
|
await page.waitForURL((url) => !url.href.endsWith('/login.html'));
|
|
});
|
|
|
|
const runDNSSettingsTest = async (page: Page, address: string) => {
|
|
await page.goto('/#dns');
|
|
|
|
const currentDns = await page.getByTestId('upstream_dns').inputValue();
|
|
|
|
await page.getByTestId('upstream_dns').fill(address);
|
|
await page.getByTestId('dns_upstream_test').click();
|
|
|
|
await page.waitForTimeout(2000);
|
|
|
|
await expect(page.getByTestId('upstream_dns')).toHaveValue(address);
|
|
|
|
await page.getByTestId('upstream_dns').fill(currentDns);
|
|
await page.getByTestId('dns_upstream_save').click({ force: true });
|
|
};
|
|
|
|
test('test for Default DNS', async ({ page }) => {
|
|
await runDNSSettingsTest(page, 'https://dns10.quad9.net/dns-query');
|
|
});
|
|
|
|
test('test for Plain DNS', async ({ page }) => {
|
|
await runDNSSettingsTest(page, '94.140.14.140');
|
|
});
|
|
|
|
test('test for DNS-over-HTTPS', async ({ page }) => {
|
|
await runDNSSettingsTest(page, 'https://unfiltered.adguard-dns.com/dns-query');
|
|
});
|
|
|
|
test('test for DNS-over-TLS', async ({ page }) => {
|
|
await runDNSSettingsTest(page, 'tls://unfiltered.adguard-dns.com');
|
|
});
|
|
|
|
test('test for DNS-over-QUIC', async ({ page }) => {
|
|
await runDNSSettingsTest(page, 'quic://unfiltered.adguard-dns.com');
|
|
});
|
|
});
|