Skip to content

Commit 543cdd1

Browse files
Merge pull request #171 from oriontech-me/validate/playground-shareable-url-stable
test(playground): mark playground-shareable-url as @stable
2 parents 1a04c0e + 6e5bad7 commit 543cdd1

3 files changed

Lines changed: 9 additions & 18 deletions

File tree

QA-CHECKLIST.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@
453453

454454
#### 9.3 Advanced Playground Features
455455
- [x] Playground fullscreen mode → `playground/playground-fullscreen.spec.ts`
456-
- [-] Shareable Playground — URL generation validated (switch enables sharing, href matches /playground/uuid) → `playground/playground-shareable-url.spec.ts`
456+
- [x] Shareable Playground — URL generation validated (switch enables sharing, href matches /playground/uuid) → `playground/playground-shareable-url.spec.ts`
457457
- [!] Voice mode (voice assistant) → `ui-ux/voice-assistant.spec.ts` (**all tests unconditionally skipped — spec is a stub**)
458458
- [x] Stop button in Playground → `core-functionality/playground/stop-button-playground.spec.ts`
459459

docs/core-functionality/playground/playground-shareable-url.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ When `isPublished` becomes `true`, Langflow renders a `<a href="/playground/{uui
1515

1616
## Tags
1717

18-
`@release` `@playground`
18+
`@release` `@playground` `@stable`
1919

2020
## Validation criterion
2121

@@ -28,7 +28,8 @@ When `isPublished` becomes `true`, Langflow renders a `<a href="/playground/{uui
2828

2929
## External dependencies
3030

31-
- `src/frontend/src/components/core/flowToolbarComponent/components/deploy-dropdown.tsx``publish-button`, `shareable-playground`, `publish-switch` test IDs and `isPublished` toggle logic. Any rename of these test IDs or change to the `ENABLE_PUBLISH` feature flag will break this test.
31+
- `src/frontend/src/components/core/flowToolbarComponent/components/deploy-dropdown.tsx` — owns the `publish-button`, `shareable-playground`, and `publish-switch` test IDs as well as the `isPublished` toggle. Renaming any of these test IDs or removing the `ENABLE_PUBLISH` feature flag will break this test.
32+
- The `publish-switch` and `shareable-playground` items are gated by `hasIO` (`useFlowStore.hasIO`); the flow under test must contain at least one Chat Input or Chat Output. The setup uses `setupPlayground()` which builds a Chat Input → Chat Output flow, so this contract is satisfied without depending on any starter template.
3233
- The `publish-switch` uses `e.stopPropagation()` to keep the dropdown open after clicking — if this is removed, the dropdown closes and subsequent assertions will fail.
3334

3435
## Last validated

tests/tests-automations/regression/core-functionality/playground/playground-shareable-url.spec.ts

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect, test } from "../../../../fixtures/fixtures";
2-
import { awaitBootstrapTest } from "../../../../helpers/other/await-bootstrap-test";
2+
import { setupPlayground } from "../../../../helpers/flows/setup-playground";
33

44
test.describe("Playground — Shareable URL Generation", () => {
55
test.describe.configure({ mode: "serial" });
@@ -18,21 +18,11 @@ test.describe("Playground — Shareable URL Generation", () => {
1818
});
1919

2020
test(
21-
"Simple Agent shareable playground URL is generated when publishing is enabled",
22-
{ tag: ["@release", "@playground"] },
21+
"Shareable playground URL is generated when publishing is enabled",
22+
{ tag: ["@release", "@playground", "@stable"] },
2323
async ({ page }) => {
24-
await test.step("load Simple Agent template", async () => {
25-
await awaitBootstrapTest(page);
26-
await page.getByTestId("side_nav_options_all-templates").click();
27-
await page.getByRole("heading", { name: "Simple Agent" }).first().click();
28-
await expect(
29-
page.getByTestId("canvas_controls_dropdown"),
30-
).toBeVisible({ timeout: 30000 });
31-
32-
const flowUrl = page.url();
33-
const flowIdMatch = flowUrl.match(/\/flow\/([0-9a-f-]{36})/);
34-
expect(flowIdMatch, `Could not extract flow ID from URL: ${flowUrl}`).not.toBeNull();
35-
createdFlowId = flowIdMatch![1];
24+
await test.step("create blank Chat Input → Chat Output flow", async () => {
25+
createdFlowId = await setupPlayground(page);
3626
});
3727

3828
await test.step("open Share dropdown and verify initial state", async () => {

0 commit comments

Comments
 (0)