fix: remove any types, dead code, unused exports; add comprehensive tests
- Fix handleRotate bug ignoring Result from rotateSealedSecret() - Fix dead code branch in useControllerHealth - Replace all `any` types with `unknown` + type guards - Delete unused functions/exports (452 lines removed) - Add 18 new test files covering all hooks, libs, and components - 233 tests passing, zero tsc errors, zero lint issues Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+4
-36
@@ -27,7 +27,7 @@ export interface ControllerHealthStatus {
|
||||
/**
|
||||
* Build the controller proxy URL
|
||||
*/
|
||||
export function getControllerProxyURL(config: PluginConfig, path: string): string {
|
||||
function getControllerProxyURL(config: PluginConfig, path: string): string {
|
||||
const { controllerNamespace, controllerName, controllerPort } = config;
|
||||
return `/api/v1/namespaces/${controllerNamespace}/services/http:${controllerName}:${controllerPort}/proxy${path}`;
|
||||
}
|
||||
@@ -77,38 +77,6 @@ export async function fetchPublicCertificate(
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify that a SealedSecret can be decrypted by the controller
|
||||
*
|
||||
* @param config Plugin configuration
|
||||
* @param sealedSecretYaml YAML or JSON of the SealedSecret
|
||||
* @returns Result containing verification status or error message
|
||||
*/
|
||||
export async function verifySealedSecret(
|
||||
config: PluginConfig,
|
||||
sealedSecretYaml: string
|
||||
): AsyncResult<boolean, string> {
|
||||
const url = getControllerProxyURL(config, '/v1/verify');
|
||||
|
||||
const result = await tryCatchAsync(async () => {
|
||||
const response = await fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: sealedSecretYaml,
|
||||
});
|
||||
|
||||
return response.ok;
|
||||
});
|
||||
|
||||
if (result.ok === false) {
|
||||
return Err(`Verification failed: ${result.error.message}`);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rotate (re-encrypt) a SealedSecret with the current active key
|
||||
*
|
||||
@@ -218,14 +186,14 @@ export async function checkControllerHealth(
|
||||
version,
|
||||
latencyMs,
|
||||
});
|
||||
} catch (error: any) {
|
||||
} catch (error: unknown) {
|
||||
const latencyMs = Date.now() - startTime;
|
||||
|
||||
// Determine error type
|
||||
let errorMessage = 'Controller unreachable';
|
||||
if (error.name === 'AbortError') {
|
||||
if (error instanceof Error && error.name === 'AbortError') {
|
||||
errorMessage = 'Request timed out after 5 seconds';
|
||||
} else if (error.message) {
|
||||
} else if (error instanceof Error) {
|
||||
errorMessage = error.message;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user