Add DNS diagnostics across dataplane and client
This commit is contained in:
@@ -12,6 +12,7 @@ const panel = fs.readFileSync(path.join(root, 'src/web/features/diagnostics/Conn
|
||||
const model = fs.readFileSync(path.join(root, 'src/web/features/diagnostics/connectivityResult.ts'), 'utf8');
|
||||
const customServiceAction = fs.readFileSync(path.join(root, 'src/web/features/diagnostics/customServiceAction.ts'), 'utf8');
|
||||
const boundary = fs.readFileSync(path.join(root, 'src/web/features/diagnostics/index.ts'), 'utf8');
|
||||
const dns = fs.readFileSync(path.join(root, 'src/web/features/diagnostics/DnsDiagnosticsSection.tsx'), 'utf8');
|
||||
|
||||
const ip = { source: 'cloudflare', address: '198.51.100.10', extra: true };
|
||||
const site = { id: 'google', status: 'available', httpStatus: 204, latencyMs: 120 };
|
||||
@@ -122,3 +123,19 @@ test('network identity is one stable compact row for Direct and VPN', () => {
|
||||
assert.match(panel, /else if \(path\.network == null\) status = \['is-muted', '—'\][\s\S]*if \(!status && !identity && !location\) status = \['is-error', 'Нет ответа'\]/);
|
||||
assert.doesNotMatch(panel, /traceroute|tracepath/);
|
||||
});
|
||||
|
||||
test('DNS diagnostics reuse the drawer owner, canonical settings and independent row refresh', () => {
|
||||
assert.match(panel, /<DnsDiagnosticsSection[\s\S]*settings=\{settings\}[\s\S]*updateSettings=\{updateSettings\}/);
|
||||
assert.match(panel, /<DnsDiagnosticsSection[\s\S]*loadCatalog=\{loadDnsDiagnosticsCatalog\}[\s\S]*runDiagnostics=\{runDnsDiagnostics\}/);
|
||||
assert.match(dns, /<select[\s\S]*id="client-dns-domain"[\s\S]*value=\{activeDomainId\}/);
|
||||
assert.match(dns, /setCache\(\(current\)[\s\S]*mergeRow\(previous\[row\.resolver\.id\], row\)/);
|
||||
assert.match(dns, /function preserveAddresses[\s\S]*ipv4: previous\.ipv4, ipv6: previous\.ipv6/);
|
||||
assert.match(dns, /aria-busy=\{running\}/);
|
||||
assert.match(dns, /<Refresh label=\{`Проверить: \$\{item\.label\}`\}[\s\S]*onClick=\{\(\) => void run\(item\.id\)\}/);
|
||||
assert.match(dns, /updateSettings\([\s\S]*customDnsDomains/);
|
||||
assert.match(dns, /updateSettings\([\s\S]*customDnsResolvers/);
|
||||
assert.match(dns, /settings\.customDnsDomains\.length >= MAX_CUSTOM_DNS_DOMAINS/);
|
||||
assert.match(dns, /settings\.customDnsResolvers\.length >= MAX_CUSTOM_DNS_RESOLVERS/);
|
||||
assert.match(dns, /<b>A<\/b>[\s\S]*<b>AAAA<\/b>/);
|
||||
assert.match(dns, /Разные ответы могут быть нормой для CDN/);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user