fix(frontend): remove test types from base tsconfig for CI build

The base tsconfig.json had types: ["vitest/globals", "@testing-library/jest-dom/vitest"]
which are devDependencies only installed during development. CI production
builds with npm ci --production don't include these, causing TS2688 errors.

Solution:

Remove types array from tsconfig.json (let TS auto-discover available types)
Simplify tsconfig.build.json to only exclude test files
Add triple-slash type references to test setup file
Add typecheck config to vitest.config.ts
This ensures:

Production builds work without devDependencies
Test files still have proper type definitions
No JSX.IntrinsicElements errors from missing React types
This commit is contained in:
GitHub Actions
2026-01-25 21:26:47 +00:00
parent 8612aa52e1
commit 0cd93ceb79
18 changed files with 111 additions and 91 deletions

View File

@@ -65,7 +65,7 @@ export default function DNSProviderForm({
setPropagationTimeout(provider.propagation_timeout)
setPollingInterval(provider.polling_interval)
setIsDefault(provider.is_default)
setUseMultiCredentials((provider as any).use_multi_credentials || false)
setUseMultiCredentials((provider as { use_multi_credentials?: boolean }).use_multi_credentials || false)
setCredentials({}) // Don't pre-fill credentials (they're encrypted)
} else {
resetForm()
@@ -91,7 +91,7 @@ export default function DNSProviderForm({
// Prefer dynamic fields from API if available
if (dynamicFields) {
return {
type: dynamicFields.type as any,
type: dynamicFields.type as DNSProviderTypeInfo['type'],
name: dynamicFields.name,
fields: [
...dynamicFields.required_fields.map(f => ({ ...f, required: true })),
@@ -118,7 +118,7 @@ export default function DNSProviderForm({
const data: DNSProviderRequest = {
name: name || 'Test',
provider_type: providerType as any,
provider_type: providerType as DNSProviderRequest['provider_type'],
credentials,
propagation_timeout: propagationTimeout,
polling_interval: pollingInterval,
@@ -130,10 +130,11 @@ export default function DNSProviderForm({
success: result.success,
message: result.message || result.error || t('dnsProviders.testSuccess'),
})
} catch (error: any) {
} catch (error: unknown) {
const err = error as { response?: { data?: { error?: string } }; message?: string }
setTestResult({
success: false,
message: error.response?.data?.error || error.message || t('dnsProviders.testFailed'),
message: err.response?.data?.error || err.message || t('dnsProviders.testFailed'),
})
}
}
@@ -144,7 +145,7 @@ export default function DNSProviderForm({
const data: DNSProviderRequest = {
name,
provider_type: providerType as any,
provider_type: providerType as DNSProviderRequest['provider_type'],
credentials,
propagation_timeout: propagationTimeout,
polling_interval: pollingInterval,
@@ -348,7 +349,7 @@ export default function DNSProviderForm({
try {
await enableMultiCredsMutation.mutateAsync(provider.id)
setUseMultiCredentials(true)
} catch (error: any) {
} catch (error: unknown) {
console.error('Failed to enable multi-credentials:', error)
}
} else if (!checked && useMultiCredentials && existingCredentials?.length) {