-
-
- {selectedNode.type === "trigger"
- ? "Trigger"
- : `Step ${selectedNode.index + 1}`}
-
- {selectedNode.type === "trigger" ? (
-
- updateFormState({
- ...formState,
- trigger: { on: triggerType },
- })
- }
- options={TRIGGER_TYPES}
- value={formState.trigger.on}
- />
- ) : selectedStep ? (
- {
- const next = { ...selectedStep, action };
- if (action === "call_webhook" && !next.method) {
- next.method = "POST";
+
+
+
+
+ {selectedNode.type === "trigger"
+ ? "Trigger"
+ : `Step ${selectedNode.index + 1}`}
+
+ {selectedNode.type === "trigger" ? (
+
+ updateFormState({
+ ...formState,
+ trigger: { on: triggerType },
+ })
}
- updateStep(selectedNode.index, next);
- }}
- options={ACTION_TYPES}
- value={selectedStep.action}
- />
- ) : null}
-
-
- {selectedNode.type === "step" && selectedStep ? (
+ options={TRIGGER_TYPES}
+ value={formState.trigger.on}
+ />
+ ) : selectedStep ? (
+ {
+ const next = { ...selectedStep, action };
+ if (action === "call_webhook" && !next.method) {
+ next.method = "POST";
+ }
+ updateStep(selectedNode.index, next);
+ }}
+ options={ACTION_TYPES}
+ value={selectedStep.action}
+ />
+ ) : null}
+
+
+ {selectedNode.type === "step" && selectedStep ? (
+
+ ) : null}
- ) : null}
-
+
-
-
-
-
+
- {selectedNode.type === "trigger" ? (
-
-
- updateFormState({ ...formState, trigger })
+
+ {selectedNode.type === "trigger" ? (
+
+
+ updateFormState({ ...formState, trigger })
+ }
+ trigger={formState.trigger}
+ />
+
+ ) : selectedStep ? (
+ removeStep(selectedNode.index)}
+ onUpdate={(updated) =>
+ updateStep(selectedNode.index, updated)
}
- trigger={formState.trigger}
+ showHeader={false}
+ step={selectedStep}
+ triggerType={formState.trigger.on}
/>
-
- ) : selectedStep ? (
- removeStep(selectedNode.index)}
- onUpdate={(updated) =>
- updateStep(selectedNode.index, updated)
- }
- showHeader={false}
- step={selectedStep}
- triggerType={formState.trigger.on}
- />
- ) : null}
-
-
+ ) : null}
+
+
+
) : null}
diff --git a/desktop/tests/e2e/workflows.spec.ts b/desktop/tests/e2e/workflows.spec.ts
index 0259dbc1e..2b83a579c 100644
--- a/desktop/tests/e2e/workflows.spec.ts
+++ b/desktop/tests/e2e/workflows.spec.ts
@@ -160,6 +160,8 @@ test("opens node configuration in a contextual inspector", async ({ page }) => {
await dialog.getByRole("button", { name: "Add step" }).click();
await page.getByRole("menuitem", { name: "Send Message" }).click();
+ const triggerNode = dialog.getByRole("button", { name: /^Trigger:/ });
+ const stepNode = dialog.getByRole("button", { name: /^Step 1:/ });
await expect(inspector.getByLabel("Step ID")).toHaveValue("step_1");
await expect(inspector.getByLabel("Action")).toHaveAttribute(
"data-value",
@@ -167,6 +169,22 @@ test("opens node configuration in a contextual inspector", async ({ page }) => {
);
await expect(inspector.getByLabel("Message text")).toBeVisible();
await expect(dialog.getByText("End", { exact: true })).toBeVisible();
+ await expect(triggerNode).toHaveAttribute("aria-pressed", "false");
+ await expect(stepNode).toHaveAttribute("aria-pressed", "true");
+ expect(
+ await triggerNode.evaluate(
+ (element) => getComputedStyle(element).outlineColor,
+ ),
+ ).not.toBe(
+ await stepNode.evaluate(
+ (element) => getComputedStyle(element).outlineColor,
+ ),
+ );
+ await expect
+ .poll(() =>
+ inspector.evaluate((element) => getComputedStyle(element).padding),
+ )
+ .toBe("16px");
await inspector.getByLabel("Action").click();
await page.getByRole("menuitem", { name: "Send DM" }).click();
@@ -176,7 +194,6 @@ test("opens node configuration in a contextual inspector", async ({ page }) => {
);
await expect(inspector.getByLabel("To (pubkey)")).toBeVisible();
- const stepNode = dialog.getByRole("button", { name: /^Step 1:/ });
await inspector.getByLabel("Name (optional)").fill("Notify deployer");
await expect(stepNode).toContainText("Notify deployer");
await expect(stepNode).toContainText("Send DM");