fix(service-integrations): resolve type errors and test failures

- Fix CreateAppInput nullable types for integration fields
- Add type casts in IntegrationWidget renderer dispatching
- Guard decryptAppIntegration against missing fields in test mocks
This commit is contained in:
2026-03-25 22:19:56 +03:00
parent 55e220bc07
commit 44bbf7b410
3 changed files with 20 additions and 11 deletions
@@ -5,7 +5,15 @@
import ProgressRenderer from './ProgressRenderer.svelte';
import AlertBannerRenderer from './AlertBannerRenderer.svelte';
import ChartRenderer from './ChartRenderer.svelte';
import type { IntegrationData } from '$lib/server/integrations/types.js';
import type {
IntegrationData,
StatCardData,
GaugeData,
ListData,
ProgressData,
AlertBannerData,
ChartData
} from '$lib/server/integrations/types.js';
interface Props {
config: {
@@ -61,17 +69,17 @@
</div>
{:else if integrationData}
{#if integrationData.renderer === 'stat-card'}
<StatCardRenderer data={integrationData.data} />
<StatCardRenderer data={integrationData.data as StatCardData} />
{:else if integrationData.renderer === 'gauge'}
<GaugeRenderer data={integrationData.data} />
<GaugeRenderer data={integrationData.data as GaugeData} />
{:else if integrationData.renderer === 'list'}
<ListRenderer data={integrationData.data} />
<ListRenderer data={integrationData.data as ListData} />
{:else if integrationData.renderer === 'progress'}
<ProgressRenderer data={integrationData.data} />
<ProgressRenderer data={integrationData.data as ProgressData} />
{:else if integrationData.renderer === 'alert-banner'}
<AlertBannerRenderer data={integrationData.data} />
<AlertBannerRenderer data={integrationData.data as AlertBannerData} />
{:else if integrationData.renderer === 'chart'}
<ChartRenderer data={integrationData.data} />
<ChartRenderer data={integrationData.data as ChartData} />
{:else}
<div class="p-4 text-sm text-muted-foreground">Unknown renderer: {integrationData.renderer}</div>
{/if}