mirror of
https://github.com/Xevion/rdap.git
synced 2025-12-08 16:08:10 -06:00
test: add comprehensive testing infrastructure with critical bug fixes
- Add Vitest testing framework with 88 passing tests across 4 test files - Fix critical entity validator bug (service array index) - Implement validator architecture with 'matched but invalid' state support - Add strict IPv4/IPv6 validation with detailed error messages - Add case-insensitive domain and ASN matching - Add explicit validator priority ordering (url→json→tld→ip→domain) - Add integration tests with real IANA registry validation - Add AutnumCard component for AS number display - Update dependencies: prettier 2.8.1→2.8.8 Test coverage: - helpers.test.ts: IPv4/IPv6 CIDR matching (27 tests) - helpers.asn.test.ts: ASN range validation (22 tests) - rdap.test.ts: Type detection with edge cases (36 tests) - rdap.integration.test.ts: Real IANA registry tests (3 tests) Bug fixes: - Entity validator now correctly uses service[1] for tags (0=email, 1=tags, 2=urls) - IPv4 validation rejects octets >255 with specific error messages - IPv6 validation checks for invalid hex chars and multiple :: - Domain regex supports multi-label domains (a.b.c.d.example.net) - Type detection priority prevents URL/JSON false matches as domains
This commit is contained in:
@@ -14,17 +14,25 @@ const Index: NextPage = () => {
|
||||
const [detectedType, setDetectedType] = useState<Maybe<TargetType>>(
|
||||
Maybe.nothing()
|
||||
);
|
||||
const [response, setResponse] = useState<Maybe<MetaParsedGeneric>>(Maybe.nothing());
|
||||
const [response, setResponse] = useState<Maybe<MetaParsedGeneric>>(
|
||||
Maybe.nothing()
|
||||
);
|
||||
const [isLoading, setLoading] = useState<boolean>(false);
|
||||
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>rdap.xevion.dev</title>
|
||||
<meta name="description" content="A custom, private RDAP lookup client built by Xevion." />
|
||||
<meta
|
||||
name="description"
|
||||
content="A custom, private RDAP lookup client built by Xevion."
|
||||
/>
|
||||
<meta property="og:url" content="https://rdap.xevion.dev" />
|
||||
<meta property="og:title" content="RDAP | by Xevion.dev" />
|
||||
<meta property="og:description" content="A custom, private RDAP lookup client built by Xevion." />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="A custom, private RDAP lookup client built by Xevion."
|
||||
/>
|
||||
<meta property="og:site_name" content="rdap.xevion.dev" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
@@ -34,8 +42,17 @@ const Index: NextPage = () => {
|
||||
/>
|
||||
</Head>
|
||||
<nav className="bg-zinc-850 px-5 py-4 shadow-sm">
|
||||
<span className="text-white text-xl font-medium" style={{ fontSize: "larger" }}>
|
||||
<a href="https://github.com/Xevion/rdap">rdap</a><a href={"https://xevion.dev"} className="text-zinc-400 hover:animate-pulse">.xevion.dev</a>
|
||||
<span
|
||||
className="text-xl font-medium text-white"
|
||||
style={{ fontSize: "larger" }}
|
||||
>
|
||||
<a href="https://github.com/Xevion/rdap">rdap</a>
|
||||
<a
|
||||
href={"https://xevion.dev"}
|
||||
className="text-zinc-400 hover:animate-pulse"
|
||||
>
|
||||
.xevion.dev
|
||||
</a>
|
||||
</span>
|
||||
</nav>
|
||||
<div className="mx-auto max-w-screen-sm px-5 lg:max-w-screen-md xl:max-w-screen-lg">
|
||||
|
||||
Reference in New Issue
Block a user