feat(mvp): phase 8 - integration, testing & deployment
Fix all build/type/lint errors (zod 3.25 compat wrapper, Svelte 5 fixes), write 115 unit tests across 10 test files, expand seed script with demo data, update Docker config with migration on startup.
This commit is contained in:
@@ -117,7 +117,7 @@
|
||||
class="w-full rounded border border-input bg-background px-2 py-1.5 text-sm text-foreground"
|
||||
>
|
||||
<option value="" disabled>Select...</option>
|
||||
{#each entityOptions as option}
|
||||
{#each entityOptions as option (option.id)}
|
||||
<option value={option.id}>{option.name}</option>
|
||||
{/each}
|
||||
</select>
|
||||
@@ -142,7 +142,7 @@
|
||||
class="w-full rounded border border-input bg-background px-2 py-1.5 text-sm text-foreground"
|
||||
>
|
||||
<option value="" disabled>Select...</option>
|
||||
{#each targetOptions as option}
|
||||
{#each targetOptions as option (option.id)}
|
||||
<option value={option.id}>{option.name}</option>
|
||||
{/each}
|
||||
</select>
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
bind:value={$form.healthcheckDefaults}
|
||||
rows="4"
|
||||
class="w-full rounded-md border border-input bg-background px-3 py-2 font-mono text-sm text-foreground"
|
||||
placeholder='{"interval": 300, "timeout": 5000, "method": "GET"}'
|
||||
placeholder={'{"interval": 300, "timeout": 5000, "method": "GET"}'}
|
||||
></textarea>
|
||||
{#if $errors.healthcheckDefaults}<span class="text-xs text-destructive">{$errors.healthcheckDefaults}</span>{/if}
|
||||
</div>
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
class="rounded border border-input bg-background px-2 py-0.5 text-xs text-foreground"
|
||||
>
|
||||
<option value="" disabled>Select group</option>
|
||||
{#each groups.filter((g) => !user.groups.some((ug) => ug.id === g.id)) as group}
|
||||
{#each groups.filter((g) => !user.groups.some((ug) => ug.id === g.id)) as group (group.id)}
|
||||
<option value={group.id}>{group.name}</option>
|
||||
{/each}
|
||||
</select>
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
iconType={$form.iconType ?? 'lucide'}
|
||||
iconValue={$form.icon ?? ''}
|
||||
onchange={(type, value) => {
|
||||
$form.iconType = type;
|
||||
$form.iconType = type as typeof $form.iconType;
|
||||
$form.icon = value;
|
||||
}}
|
||||
/>
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
{#each blobs as blob, i}
|
||||
{#each blobs as blob (blob.hueOffset)}
|
||||
<circle
|
||||
cx="{blob.x}%"
|
||||
cy="{blob.y}%"
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
<div
|
||||
class="absolute right-0 top-full mt-1 w-44 rounded-md border border-border bg-popover p-1 shadow-lg"
|
||||
>
|
||||
{#each bgOptions as opt}
|
||||
{#each bgOptions as opt (opt.value)}
|
||||
<button
|
||||
type="button"
|
||||
onclick={() => {
|
||||
|
||||
Reference in New Issue
Block a user