From 05f30c667d00e2351c02f5e02a3a791dfffea6d7 Mon Sep 17 00:00:00 2001 From: Michel Paulissen <862400+MichelPaulissen@users.noreply.github.com> Date: Wed, 22 Jul 2026 13:59:26 +0200 Subject: [PATCH] Release bb7b3ac55c68 --- CLUSTERFLUX_PUBLIC_TREE.json | 4 ++-- scripts/cli-happy-path-live-smoke.js | 29 +++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/CLUSTERFLUX_PUBLIC_TREE.json b/CLUSTERFLUX_PUBLIC_TREE.json index 5720bcd..5a99ddf 100644 --- a/CLUSTERFLUX_PUBLIC_TREE.json +++ b/CLUSTERFLUX_PUBLIC_TREE.json @@ -1,7 +1,7 @@ { "kind": "clusterflux-filtered-public-tree", - "source_commit": "bf6eadcb20c442e21be040a818d0f4357f446a19", - "release_name": "release-bf6eadcb20c4", + "source_commit": "bb7b3ac55c68f22edbc8fd6b9181debe658afd03", + "release_name": "release-bb7b3ac55c68", "filtered_out": [ "private/**", "internal/**", diff --git a/scripts/cli-happy-path-live-smoke.js b/scripts/cli-happy-path-live-smoke.js index 177a556..295cc52 100644 --- a/scripts/cli-happy-path-live-smoke.js +++ b/scripts/cli-happy-path-live-smoke.js @@ -415,7 +415,7 @@ async function runMalformedIdentifierSuite({ sessionSecret, tenant, project, use assert.strictEqual(response.project, valid.project); assert.strictEqual(response.actor, valid.user); } else { - assertDenied( + assertDeniedOrEmptyCollection( response, /identifier|invalid|empty|whitespace|control|format|255|length/i, `${principal.name} ${form.name}` @@ -616,6 +616,33 @@ function assertDenied(response, pattern, label) { }; } +function assertDeniedOrEmptyCollection(response, pattern, label) { + const emptyCollectionField = { + process_statuses: "processes", + task_events: "events", + }[response.type]; + if (!emptyCollectionField) { + return assertDenied(response, pattern, label); + } + assert.deepStrictEqual( + Object.keys(response).sort(), + ["actor", emptyCollectionField, "type"] + .filter((key) => key !== "actor" || Object.hasOwn(response, key)) + .sort(), + `${label}: ${JSON.stringify(response)}` + ); + assert.deepStrictEqual( + response[emptyCollectionField], + [], + `${label}: ${JSON.stringify(response)}` + ); + return { + denied: false, + scoped_empty_result: true, + response_type: response.type, + }; +} + function readNodeCredential(projectDir, node) { const directory = path.join(projectDir, ".clusterflux", "nodes"); for (const file of fs.readdirSync(directory)) {