fix(query): preserve PG notices for statements without results
This commit is contained in:
1 parent
9c22856285
commit
20e026eea9
3 files changed
+75
-24
No files matched your search
+8
-2
@@ -71,11 +71,17 @@ test("view switcher exposes a messages button with a count badge", () => {
|
||||
test("ContentArea wires server messages into the switcher and the messages view", () => {
|
||||
const contentArea = source(contentAreaPath);
|
||||
|
||||
assert.match(contentArea, /resultMessageCount = computed\(\(\) => props\.activeTab\.result\?\.messages\?\.length \?\? 0\)/);
|
||||
// Messages are aggregated across every statement result of the run so a
|
||||
// message-only statement (e.g. a PostgreSQL DO block) keeps its notices even
|
||||
// when a later statement owns the active result.
|
||||
assert.match(contentArea, /const resultMessages = computed<QueryMessage\[\]>\(\(\) => \{/);
|
||||
assert.match(contentArea, /props\.activeTab\.results\?\.length \? props\.activeTab\.results : props\.activeTab\.result \? \[props\.activeTab\.result\] : \[\]/);
|
||||
assert.match(contentArea, /results\.flatMap\(\(result\) => result\.messages \?\? \[\]\)/);
|
||||
assert.match(contentArea, /resultMessageCount = computed\(\(\) => resultMessages\.value\.length\)/);
|
||||
assert.match(contentArea, /canShowMessagesOutput = computed\(\(\) => resultMessageCount\.value > 0\)/);
|
||||
assert.equal((contentArea.match(/:can-show-messages="canShowMessagesOutput"/g) ?? []).length, 2);
|
||||
assert.equal((contentArea.match(/:message-count="resultMessageCount"/g) ?? []).length, 2);
|
||||
assert.match(contentArea, /<QueryMessagesView v-else-if="activeOutputView === 'messages'"[\s\S]*:messages="activeTab\.result\?\.messages \?\? \[\]"/);
|
||||
assert.match(contentArea, /<QueryMessagesView v-else-if="activeOutputView === 'messages'"[\s\S]*:messages="resultMessages"/);
|
||||
// Results with no result set auto-switch via the shared default-view helper.
|
||||
assert.match(contentArea, /import \{ defaultViewForResult \} from "@\/lib\/query\/queryResultDefaultView"/);
|
||||
assert.match(contentArea, /emit\("update:activeOutputView", props\.activeTab\.id, result \? defaultViewForResult\(result\) : "summary"\)/);
|
||||
|
||||
Reference in new issue
Block a user