Some checks failed
Build and Push Docker Images (Trusted) / build-and-push (., docker/caddy/Dockerfile, caddy) (push) Has been cancelled
Build and Push Docker Images (Trusted) / build-and-push (., docker/l4-port-manager/Dockerfile, l4-port-manager) (push) Has been cancelled
Build and Push Docker Images (Trusted) / build-and-push (., docker/web/Dockerfile, web) (push) Has been cancelled
Tests / test (push) Has been cancelled
63 lines
2.4 KiB
TypeScript
Executable File
63 lines
2.4 KiB
TypeScript
Executable File
import { describe, it, expect } from 'vitest';
|
|
import { isDomainCoveredByWildcard, isDomainCoveredByCert } from '@/src/lib/cert-domain-match';
|
|
|
|
describe('isDomainCoveredByWildcard', () => {
|
|
it('wildcard *.example.com covers sub.example.com', () => {
|
|
expect(isDomainCoveredByWildcard('sub.example.com', ['*.example.com'])).toBe(true);
|
|
});
|
|
|
|
it('wildcard *.example.com does not cover example.com itself', () => {
|
|
expect(isDomainCoveredByWildcard('example.com', ['*.example.com'])).toBe(false);
|
|
});
|
|
|
|
it('wildcard *.example.com does not cover deep subdomain sub.sub.example.com', () => {
|
|
expect(isDomainCoveredByWildcard('sub.sub.example.com', ['*.example.com'])).toBe(false);
|
|
});
|
|
|
|
it('wildcard *.example.com does not cover unrelated.com', () => {
|
|
expect(isDomainCoveredByWildcard('unrelated.com', ['*.example.com'])).toBe(false);
|
|
});
|
|
|
|
it('returns false when no wildcards present', () => {
|
|
expect(isDomainCoveredByWildcard('sub.example.com', ['example.com', 'other.com'])).toBe(false);
|
|
});
|
|
|
|
it('wildcard *.domain.de covers app.domain.de', () => {
|
|
expect(isDomainCoveredByWildcard('app.domain.de', ['*.domain.de'])).toBe(true);
|
|
});
|
|
|
|
it('does not match partial suffix (notexample.com)', () => {
|
|
expect(isDomainCoveredByWildcard('notexample.com', ['*.example.com'])).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe('isDomainCoveredByCert', () => {
|
|
const certDomains = ['domain.de', '*.domain.de'];
|
|
|
|
it('exact match: domain.de is covered', () => {
|
|
expect(isDomainCoveredByCert('domain.de', certDomains)).toBe(true);
|
|
});
|
|
|
|
it('wildcard match: sub.domain.de is covered', () => {
|
|
expect(isDomainCoveredByCert('sub.domain.de', certDomains)).toBe(true);
|
|
});
|
|
|
|
it('deep subdomain: a.b.domain.de is NOT covered', () => {
|
|
expect(isDomainCoveredByCert('a.b.domain.de', certDomains)).toBe(false);
|
|
});
|
|
|
|
it('unrelated domain is NOT covered', () => {
|
|
expect(isDomainCoveredByCert('other.com', certDomains)).toBe(false);
|
|
});
|
|
|
|
it('works with only wildcard (no explicit base)', () => {
|
|
expect(isDomainCoveredByCert('sub.example.com', ['*.example.com'])).toBe(true);
|
|
expect(isDomainCoveredByCert('example.com', ['*.example.com'])).toBe(false);
|
|
});
|
|
|
|
it('works with only explicit domain (no wildcard)', () => {
|
|
expect(isDomainCoveredByCert('example.com', ['example.com'])).toBe(true);
|
|
expect(isDomainCoveredByCert('sub.example.com', ['example.com'])).toBe(false);
|
|
});
|
|
});
|