125 lines
5.5 KiB
TypeScript
125 lines
5.5 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import { ADMIN_USERNAME, ADMIN_PASSWORD } from '../constants';
|
|
|
|
test.describe('QueryLog', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
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'));
|
|
});
|
|
|
|
test('Search of queryLog should work correctly', async ({ page }) => {
|
|
await page.route('/control/querylog', async (route) => {
|
|
await route.fulfill({
|
|
status: 200,
|
|
contentType: 'application/json',
|
|
body: JSON.stringify(
|
|
{
|
|
"data": [
|
|
{
|
|
"answer": [
|
|
{
|
|
"type": "A",
|
|
"value": "77.88.44.242",
|
|
"ttl": 294
|
|
},
|
|
{
|
|
"type": "A",
|
|
"value": "5.255.255.242",
|
|
"ttl": 294
|
|
},
|
|
{
|
|
"type": "A",
|
|
"value": "77.88.55.242",
|
|
"ttl": 294
|
|
}
|
|
],
|
|
"answer_dnssec": false,
|
|
"cached": false,
|
|
"client": "127.0.0.1",
|
|
"client_info": {
|
|
"whois": {},
|
|
"name": "localhost",
|
|
"disallowed_rule": "127.0.0.1",
|
|
"disallowed": false
|
|
},
|
|
"client_proto": "",
|
|
"elapsedMs": "78.163167",
|
|
"question": {
|
|
"class": "IN",
|
|
"name": "ya.ru",
|
|
"type": "A"
|
|
},
|
|
"reason": "NotFilteredNotFound",
|
|
"rules": [],
|
|
"status": "NOERROR",
|
|
"time": "2024-07-17T16:02:37.500662+02:00",
|
|
"upstream": "https://dns10.quad9.net:443/dns-query"
|
|
},
|
|
{
|
|
"answer": [
|
|
{
|
|
"type": "A",
|
|
"value": "77.88.55.242",
|
|
"ttl": 351
|
|
},
|
|
{
|
|
"type": "A",
|
|
"value": "77.88.44.242",
|
|
"ttl": 351
|
|
},
|
|
{
|
|
"type": "A",
|
|
"value": "5.255.255.242",
|
|
"ttl": 351
|
|
}
|
|
],
|
|
"answer_dnssec": false,
|
|
"cached": false,
|
|
"client": "127.0.0.1",
|
|
"client_info": {
|
|
"whois": {},
|
|
"name": "localhost",
|
|
"disallowed_rule": "127.0.0.1",
|
|
"disallowed": false
|
|
},
|
|
"client_proto": "",
|
|
"elapsedMs": "5051.070708",
|
|
"question": {
|
|
"class": "IN",
|
|
"name": "ya.ru",
|
|
"type": "A"
|
|
},
|
|
"reason": "NotFilteredNotFound",
|
|
"rules": [],
|
|
"status": "NOERROR",
|
|
"time": "2024-07-17T16:02:37.4983+02:00",
|
|
"upstream": "https://dns10.quad9.net:443/dns-query"
|
|
}
|
|
],
|
|
"oldest": "2024-07-17T16:02:37.4983+02:00"
|
|
}
|
|
),
|
|
});
|
|
});
|
|
|
|
await page.goto('/#logs');
|
|
|
|
await page.getByTestId('querylog_search').fill('127.0.0.1');
|
|
|
|
const [request] = await Promise.all([
|
|
page.waitForRequest((req) => req.url().includes('/control/querylog')),
|
|
]);
|
|
|
|
if (request) {
|
|
expect(request.url()).toContain('search=127.0.0.1');
|
|
expect(await page.getByTestId('querylog_cell').first().isVisible()).toBe(true);
|
|
}
|
|
});
|
|
});
|