From e9ca697c3b4bab3882016b8aafbeb4014fb2fe34 Mon Sep 17 00:00:00 2001 From: jearhe <0verme7753@gmail.com> Date: Wed, 19 Aug 2026 15:08:42 +0800 Subject: [PATCH] fix(schema-diff): keep compare action reachable --- .../src/components/diff/SchemaDiffDialog.vue | 8 +++++++- .../diff/__tests__/SchemaDiffDialog.spec.ts | 13 +++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/components/diff/SchemaDiffDialog.vue b/apps/desktop/src/components/diff/SchemaDiffDialog.vue index c95ae7e4d1..dbdf8fd75a 100644 --- a/apps/desktop/src/components/diff/SchemaDiffDialog.vue +++ b/apps/desktop/src/components/diff/SchemaDiffDialog.vue @@ -870,10 +870,16 @@ const targetConnectionInfo = computed(() => { -
+ +
{ it("lets the deploy confirm dialog body shrink so a long destructive statement can't push the footer buttons off-screen", () => { expect(dialogSource).toContain('
'); }); + + it("lets the config step scroll vertically so the Compare button stays reachable when 'compare specific tables' is enabled", () => { + // Regression for #6627: the "compare specific tables" feature (#6533/#6540) grows the + // config step (table multi-select + same-name match). Under a fixed-height dialog that + // step used to be clipped (`overflow-hidden`), pushing the Compare button below the + // visible area with no way to scroll to it. The container must scroll on all steps + // except the result step, which relies on splitpanes to manage its own height. + expect(dialogSource).toContain("step === 'result' ? 'overflow-hidden' : 'overflow-y-auto'"); + // The config step must not be flex-shrunk (which would swallow its height and suppress + // the scrollbar); only then does the taller-than-dialog content actually overflow and + // become reachable via scrolling. + expect(dialogSource).toMatch(/