From 98129df746f6621752d3d5485f3903c7142c87de Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 10 Aug 2026 10:37:47 +0200 Subject: [PATCH 01/17] fix unicorn/no-thenable Signed-off-by: fantonangeli --- .../open-workflow-diagram-editor/tests/core/taskDetails.test.ts | 1 + .../tests/side-panel/NodeDetailsView.test.tsx | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts b/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts index 04132c4e..b551a638 100644 --- a/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts +++ b/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts @@ -271,6 +271,7 @@ describe("getTaskDetails", () => { output: { as: "${ .output }" }, export: { as: "${ .export }" }, timeout: "PT5M", + // eslint-disable-next-line unicorn/no-thenable -- then is a Serverless Workflow Spec field then: "next", }), ); diff --git a/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx b/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx index 423822f7..1fbb91a7 100644 --- a/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx +++ b/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx @@ -36,6 +36,7 @@ describe("NodeDetailsView", () => { task: { call: "http", with: { endpoint: "https://api.example.com" }, + // eslint-disable-next-line unicorn/no-thenable -- then is a Serverless Workflow Spec field then: "continue", }, }); From 04e810c666e9d0952d08359c5b7b8b4719dbabfd Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 10 Aug 2026 12:04:13 +0200 Subject: [PATCH 02/17] remove unused var Signed-off-by: fantonangeli --- .../open-workflow-diagram-editor/src/components/ui/combobox.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/open-workflow-diagram-editor/src/components/ui/combobox.tsx b/packages/open-workflow-diagram-editor/src/components/ui/combobox.tsx index 705bec4f..6e8ecb4e 100644 --- a/packages/open-workflow-diagram-editor/src/components/ui/combobox.tsx +++ b/packages/open-workflow-diagram-editor/src/components/ui/combobox.tsx @@ -267,7 +267,7 @@ function ComboboxChip({ ); } -function ComboboxChipsInput({ className, children, ...props }: ComboboxPrimitive.Input.Props) { +function ComboboxChipsInput({ className, ...props }: ComboboxPrimitive.Input.Props) { return ( Date: Mon, 10 Aug 2026 12:04:33 +0200 Subject: [PATCH 03/17] disabled accessibility checks Signed-off-by: fantonangeli --- .oxlintrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.oxlintrc.json b/.oxlintrc.json index a6f70ead..aadcec62 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -1,6 +1,6 @@ { "$schema": "https://oxc.rs/schema/oxlintrc.json", - "plugins": ["react", "typescript", "import", "jsx-a11y"], + "plugins": ["react", "typescript", "import"], "rules": { "react/react-in-jsx-scope": "off", "typescript/no-unused-vars": ["warn", { "varsIgnorePattern": "^_" }], From 171e0204f9caaaae24cf7a2ca488788a7e1304e0 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 10 Aug 2026 16:22:42 +0200 Subject: [PATCH 04/17] Created an helper to fix React act() warnings Signed-off-by: fantonangeli --- .../stories/README.md | 1 + .../stories/examples/Examples.stories.tsx | 20 +-------- .../features/DiagramEditor.stories.tsx | 26 ++--------- .../features/ValidationErrors.stories.tsx | 10 +---- .../stories/helpers.ts | 44 +++++++++++++++++++ .../stories/use-cases/UseCases.stories.tsx | 15 +------ 6 files changed, 52 insertions(+), 64 deletions(-) create mode 100644 packages/open-workflow-diagram-editor/stories/helpers.ts diff --git a/packages/open-workflow-diagram-editor/stories/README.md b/packages/open-workflow-diagram-editor/stories/README.md index cc6aa845..5b6e1768 100644 --- a/packages/open-workflow-diagram-editor/stories/README.md +++ b/packages/open-workflow-diagram-editor/stories/README.md @@ -25,6 +25,7 @@ This directory contains Storybook stories and documentation. - **`examples/`** - Open Workflow Specification examples - **`use-cases/`** - Real-world use case examples - **`assets/`** - Images and media files used in stories +- **`helpers.ts`** - Shared utilities for creating stories ## Running Storybook diff --git a/packages/open-workflow-diagram-editor/stories/examples/Examples.stories.tsx b/packages/open-workflow-diagram-editor/stories/examples/Examples.stories.tsx index 51967fd6..6c8de18d 100644 --- a/packages/open-workflow-diagram-editor/stories/examples/Examples.stories.tsx +++ b/packages/open-workflow-diagram-editor/stories/examples/Examples.stories.tsx @@ -16,6 +16,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; import { DiagramEditor } from "../features/DiagramEditor"; +import { createWorkflowStory } from "../helpers"; import * as workflows from "./index"; const meta = { @@ -33,25 +34,6 @@ export default meta; type Story = StoryObj; // Constants for shared configuration -const DEFAULT_STORY_ARGS = { - isReadOnly: true, - locale: "en" as const, -} as const; - -/** - * Factory function to create workflow story configurations - * @param workflowContent - The YAML workflow content to display - * @returns Story configuration object - */ -const createWorkflowStory = (workflowContent: string): Story => { - return { - args: { - ...DEFAULT_STORY_ARGS, - content: workflowContent, - }, - }; -}; - // Story definitions using the factory function export const AccumulateRoomReadings: Story = createWorkflowStory(workflows.accumulateRoomReadings); export const AuthenticationOAuth2: Story = createWorkflowStory(workflows.authenticationOAuth2); diff --git a/packages/open-workflow-diagram-editor/stories/features/DiagramEditor.stories.tsx b/packages/open-workflow-diagram-editor/stories/features/DiagramEditor.stories.tsx index 82986458..30949555 100644 --- a/packages/open-workflow-diagram-editor/stories/features/DiagramEditor.stories.tsx +++ b/packages/open-workflow-diagram-editor/stories/features/DiagramEditor.stories.tsx @@ -15,7 +15,7 @@ */ import type { Meta, StoryObj } from "@storybook/react-vite"; - +import { createWorkflowStory } from "../helpers"; import { DiagramEditor } from "./DiagramEditor"; const workflowExample = `document: @@ -107,13 +107,7 @@ const meta = { export default meta; type Story = StoryObj; -export const Component: Story = { - args: { - isReadOnly: true, - locale: "en", - content: workflowExample, - }, -}; +export const Component: Story = createWorkflowStory(workflowExample); /* The two stories below each isolate ONE piece of spec syntax the editor must accept, * and both must render clean (no error badge). @@ -147,19 +141,7 @@ do: roomId: \${ .roomid }`; /* A URI is an RFC 3986 URI-reference, so a relative one is valid and must not error. */ -export const RelativeUriEndpoint: Story = { - args: { - isReadOnly: true, - locale: "en", - content: relativeUriEndpointExample, - }, -}; +export const RelativeUriEndpoint: Story = createWorkflowStory(relativeUriEndpointExample); /* `source` is optional when emitting (runtimes generate it from the workflow) — so omitting it must not error. */ -export const EmitWithoutSource: Story = { - args: { - isReadOnly: true, - locale: "en", - content: emitWithoutSourceExample, - }, -}; +export const EmitWithoutSource: Story = createWorkflowStory(emitWithoutSourceExample); diff --git a/packages/open-workflow-diagram-editor/stories/features/ValidationErrors.stories.tsx b/packages/open-workflow-diagram-editor/stories/features/ValidationErrors.stories.tsx index 388ee58c..1248a6c6 100644 --- a/packages/open-workflow-diagram-editor/stories/features/ValidationErrors.stories.tsx +++ b/packages/open-workflow-diagram-editor/stories/features/ValidationErrors.stories.tsx @@ -16,6 +16,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; import { DiagramEditor } from "./DiagramEditor"; +import { createWorkflowStory } from "../helpers"; const meta = { title: "Features/Validation Errors", @@ -31,15 +32,6 @@ const meta = { export default meta; type Story = StoryObj; -const DEFAULT_STORY_ARGS = { - isReadOnly: true, - locale: "en" as const, -} as const; - -const createWorkflowStory = (content: string): Story => ({ - args: { ...DEFAULT_STORY_ARGS, content }, -}); - export const DocumentError: Story = createWorkflowStory( ` document: diff --git a/packages/open-workflow-diagram-editor/stories/helpers.ts b/packages/open-workflow-diagram-editor/stories/helpers.ts new file mode 100644 index 00000000..04aaa599 --- /dev/null +++ b/packages/open-workflow-diagram-editor/stories/helpers.ts @@ -0,0 +1,44 @@ +/* + * Copyright 2021-Present The Open Workflow Specification Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { StoryObj } from "@storybook/react-vite"; +import type { DiagramEditor } from "./features/DiagramEditor"; + +type Story = StoryObj; + +const DEFAULT_STORY_ARGS = { + isReadOnly: true, + locale: "en" as const, +} as const; + +/** + * Creates a workflow story with default configuration and play function. + * + * @param workflowContent - The workflow YAML/JSON content to display + * @returns A configured Story object + */ +export const createWorkflowStory = (workflowContent: string): Story => { + return { + args: { + ...DEFAULT_STORY_ARGS, + content: workflowContent, + }, + play: async ({ canvas }) => { + // Wait for the start node to be rendered to ensure all async state updates are complete + await canvas.findByTestId("start-node-root-entry-node"); + }, + }; +}; diff --git a/packages/open-workflow-diagram-editor/stories/use-cases/UseCases.stories.tsx b/packages/open-workflow-diagram-editor/stories/use-cases/UseCases.stories.tsx index 27eb2490..a37a64e6 100644 --- a/packages/open-workflow-diagram-editor/stories/use-cases/UseCases.stories.tsx +++ b/packages/open-workflow-diagram-editor/stories/use-cases/UseCases.stories.tsx @@ -16,6 +16,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; import { DiagramEditor } from "../features/DiagramEditor"; +import { createWorkflowStory } from "../helpers"; import * as workflows from "./index"; const meta = { @@ -32,20 +33,6 @@ const meta = { export default meta; type Story = StoryObj; -const DEFAULT_STORY_ARGS = { - isReadOnly: true, - locale: "en" as const, -} as const; - -const createWorkflowStory = (workflowContent: string): Story => { - return { - args: { - ...DEFAULT_STORY_ARGS, - content: workflowContent, - }, - }; -}; - export const AutomatedDataBackup: Story = createWorkflowStory(workflows.automatedDataBackup); export const ManagingEVChargingStations: Story = createWorkflowStory( workflows.managingEVChargingStations, From b5b2e640141410fc30cb838db0631229076c702d Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 10 Aug 2026 16:28:53 +0200 Subject: [PATCH 05/17] Fix __dirname warning in vitest config Signed-off-by: fantonangeli --- packages/open-workflow-diagram-editor/vitest.config.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/open-workflow-diagram-editor/vitest.config.ts b/packages/open-workflow-diagram-editor/vitest.config.ts index 61a34fcc..32a05167 100644 --- a/packages/open-workflow-diagram-editor/vitest.config.ts +++ b/packages/open-workflow-diagram-editor/vitest.config.ts @@ -21,8 +21,7 @@ import { defineConfig } from "vitest/config"; import { storybookTest } from "@storybook/addon-vitest/vitest-plugin"; import { playwright } from "@vitest/browser-playwright"; -const dirname = - typeof __dirname !== "undefined" ? __dirname : path.dirname(fileURLToPath(import.meta.url)); +const dirname = import.meta.dirname ?? path.dirname(fileURLToPath(import.meta.url)); export default defineConfig({ plugins: [tailwindcss()], From 5453e1da41e26210fd595f99633c436ac613fac7 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 10 Aug 2026 16:30:47 +0200 Subject: [PATCH 06/17] removed console.log which is not needed anymore Signed-off-by: fantonangeli --- .../stories/features/DiagramEditorDragNDrop.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/open-workflow-diagram-editor/stories/features/DiagramEditorDragNDrop.tsx b/packages/open-workflow-diagram-editor/stories/features/DiagramEditorDragNDrop.tsx index 0371d07b..12459b22 100644 --- a/packages/open-workflow-diagram-editor/stories/features/DiagramEditorDragNDrop.tsx +++ b/packages/open-workflow-diagram-editor/stories/features/DiagramEditorDragNDrop.tsx @@ -71,9 +71,6 @@ export const DiagramEditorDragNDrop = (props: Omit
Date: Mon, 10 Aug 2026 17:27:13 +0200 Subject: [PATCH 07/17] Suppressed errorlog in DiagramEditorErrorBoundary.stories.tsx Signed-off-by: fantonangeli --- .../DiagramEditorErrorBoundary.stories.tsx | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/open-workflow-diagram-editor/stories/features/DiagramEditorErrorBoundary.stories.tsx b/packages/open-workflow-diagram-editor/stories/features/DiagramEditorErrorBoundary.stories.tsx index 14a72b91..08710d01 100644 --- a/packages/open-workflow-diagram-editor/stories/features/DiagramEditorErrorBoundary.stories.tsx +++ b/packages/open-workflow-diagram-editor/stories/features/DiagramEditorErrorBoundary.stories.tsx @@ -18,6 +18,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite"; import { DiagramEditorErrorBoundary } from "../../src/diagram-editor/error-pages/DiagramEditorErrorBoundary"; import { ColorMode } from "../../src/types/colorMode"; import { useResolvedColorMode } from "../../src/hooks/useResolvedColorMode"; +import { spyOn } from "storybook/test"; type DiagramEditorErrorBoundaryProps = { title?: string; @@ -29,11 +30,29 @@ type DiagramEditorErrorBoundaryStoryProps = DiagramEditorErrorBoundaryProps & { colorMode?: ColorMode; }; -const ThrowError = ({ message = "Test error message" }: { message?: string }) => { +const DEFAULT_ERROR_MESSAGE = "Test error message"; +const CUSTOM_ERROR_MESSAGE = "Custom error details in snippet"; + +const ThrowError = ({ message = DEFAULT_ERROR_MESSAGE }: { message?: string }) => { throw new Error(message); }; const meta = { + beforeEach: () => { + const originalConsoleError = console.error; + + const consoleErrorSpy = spyOn(console, "error").mockImplementation((...args) => { + const error = args[1]; + + if (error instanceof Error && (error.message===DEFAULT_ERROR_MESSAGE || error.message===CUSTOM_ERROR_MESSAGE)) { + return; + } + + originalConsoleError(...args); + }); + + return () => consoleErrorSpy.mockRestore(); + }, title: "Features/DiagramEditorErrorBoundary", component: DiagramEditorErrorBoundary, tags: ["autodocs"], @@ -78,6 +97,6 @@ export const WithErrorCustomMessage: Story = { args: { title: "Custom Error Title", message: "This is a custom error message", - children: , + children: , }, }; From 044b413c536b2c818933c09d4179d48f7937dc64 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Tue, 11 Aug 2026 13:08:38 +0200 Subject: [PATCH 08/17] fix SVG warnings in Edge tests with explicit wrapper Signed-off-by: fantonangeli --- .../tests/react-flow/edges/Edges.test.tsx | 139 ++++++++++-------- 1 file changed, 75 insertions(+), 64 deletions(-) diff --git a/packages/open-workflow-diagram-editor/tests/react-flow/edges/Edges.test.tsx b/packages/open-workflow-diagram-editor/tests/react-flow/edges/Edges.test.tsx index e040d06d..ceb0c56d 100644 --- a/packages/open-workflow-diagram-editor/tests/react-flow/edges/Edges.test.tsx +++ b/packages/open-workflow-diagram-editor/tests/react-flow/edges/Edges.test.tsx @@ -50,17 +50,19 @@ describe("React Flow custom edge types", () => { const Component = component; const { container } = render( - + + + , ); const path = container.querySelector("path.edge-line"); @@ -158,18 +160,20 @@ describe("React Flow custom edge types", () => { ({ component: Component, selected, shouldHaveSelected, expectedClasses }) => { const { container } = render( - + + + , ); const path = container.querySelector("path.edge-line"); @@ -188,24 +192,27 @@ describe("React Flow custom edge types", () => { it("matches snapshot with waypoints", () => { const { container } = render( - + + + , ); - expect(container.firstChild).toMatchSnapshot(); + const svg = container.querySelector("svg"); + expect(svg?.firstChild).toMatchSnapshot(); }); }); @@ -391,18 +398,20 @@ describe("EdgeLabel component", () => { ])("$description", ({ component: Component, data, selector }) => { const { container } = render( - + + + , ); @@ -494,7 +503,7 @@ describe("EdgeLabel positioning", () => { targetX: 100, targetY: 40, data: { label: "Test" }, - }); +}); expect(JSON.stringify(result)).toContain(`translate(${labelX}px,${labelY}px)`); }); @@ -557,19 +566,21 @@ describe("EdgeLabel z-index behavior", () => { ({ component: Component, edgeClass, selected }) => { const { container } = render( - + + + , ); From 80fbba6d1f1dc31d4e9d3a0e8ab601a1b7cca10e Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Tue, 11 Aug 2026 14:17:47 +0200 Subject: [PATCH 09/17] Add oxlint and oxfmt to i18n Signed-off-by: fantonangeli --- packages/i18n/.oxfmtrc.json | 3 +++ packages/i18n/.oxlintrc.json | 3 +++ packages/i18n/package.json | 7 ++++++- pnpm-lock.yaml | 6 ++++++ 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 packages/i18n/.oxfmtrc.json create mode 100644 packages/i18n/.oxlintrc.json diff --git a/packages/i18n/.oxfmtrc.json b/packages/i18n/.oxfmtrc.json new file mode 100644 index 00000000..0de643fc --- /dev/null +++ b/packages/i18n/.oxfmtrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["../../.oxfmtrc.json"] +} diff --git a/packages/i18n/.oxlintrc.json b/packages/i18n/.oxlintrc.json new file mode 100644 index 00000000..804b9227 --- /dev/null +++ b/packages/i18n/.oxlintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["../../.oxlintrc.json"] +} diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 1d26aae7..c3174dea 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -28,7 +28,10 @@ "scripts": { "clean": "rimraf ./dist", "build:dev": "pnpm clean && tsc -p tsconfig.json && vite build", - "build:prod": "pnpm run build:dev && pnpm test", + "build:prod": "pnpm lint && pnpm run build:dev && pnpm test", + "lint": "oxlint --config .oxlintrc.json src/ tests/", + "format": "oxfmt --config .oxfmtrc.json", + "format:check": "oxfmt --config .oxfmtrc.json --check", "test": "vitest run" }, "devDependencies": { @@ -37,6 +40,8 @@ "@types/node": "catalog:", "@types/react": "catalog:", "@types/react-dom": "catalog:", + "oxfmt": "catalog:", + "oxlint": "catalog:", "react": "catalog:", "react-dom": "catalog:", "rimraf": "catalog:", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2f8731ca..4c457e2e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -237,6 +237,12 @@ importers: '@types/react-dom': specifier: 'catalog:' version: 19.2.4(@types/react@19.2.18) + oxfmt: + specifier: 'catalog:' + version: 0.61.0 + oxlint: + specifier: 'catalog:' + version: 1.76.0 react: specifier: 'catalog:' version: 19.2.8 From 7a211e656e78ca0c31f85b86f098b462c8d46f0f Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Tue, 11 Aug 2026 15:06:59 +0200 Subject: [PATCH 10/17] Vanilla example: increase Vite chunk size warning limit Signed-off-by: fantonangeli --- examples/vanilla-web-component/vite.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/vanilla-web-component/vite.config.ts b/examples/vanilla-web-component/vite.config.ts index a78c2aaa..5b508e03 100644 --- a/examples/vanilla-web-component/vite.config.ts +++ b/examples/vanilla-web-component/vite.config.ts @@ -26,5 +26,6 @@ export default defineConfig({ build: { emptyOutDir: false, sourcemap: true, + chunkSizeWarningLimit: 5000, }, }); From 8a47aa94cdd0896e9abbfa1922104a336cacf603 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Tue, 11 Aug 2026 15:59:33 +0200 Subject: [PATCH 11/17] Block CI execution for linting issues Signed-off-by: fantonangeli --- .oxlintrc.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.oxlintrc.json b/.oxlintrc.json index aadcec62..4c8d20b3 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -6,5 +6,8 @@ "typescript/no-unused-vars": ["warn", { "varsIgnorePattern": "^_" }], "typescript/no-explicit-any": "warn" }, - "ignorePatterns": ["**/dist/", "**/dist-storybook/", "**/node_modules/"] + "ignorePatterns": ["**/dist/", "**/dist-storybook/", "**/node_modules/"], + "options": { + "denyWarnings": true + } } From 148efbc48157f716524eafd717f60fb4014d2ec0 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Wed, 12 Aug 2026 10:31:01 +0200 Subject: [PATCH 12/17] Fixes comment: https://github.com/open-workflow-specification/editor/pull/323#discussion_r3759562688 Signed-off-by: fantonangeli --- examples/vanilla-web-component/vite.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/vanilla-web-component/vite.config.ts b/examples/vanilla-web-component/vite.config.ts index 5b508e03..c960d708 100644 --- a/examples/vanilla-web-component/vite.config.ts +++ b/examples/vanilla-web-component/vite.config.ts @@ -26,6 +26,7 @@ export default defineConfig({ build: { emptyOutDir: false, sourcemap: true, + // Raised to 5000 to suppress chunk size warning chunkSizeWarningLimit: 5000, }, }); From 99a032e21d78dafde119ff6737319528d6500dd7 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Wed, 12 Aug 2026 10:34:02 +0200 Subject: [PATCH 13/17] Fixes comment: https://github.com/open-workflow-specification/editor/pull/323#discussion_r3759562536 Signed-off-by: fantonangeli --- .../tests/react-flow/edges/Edges.test.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/open-workflow-diagram-editor/tests/react-flow/edges/Edges.test.tsx b/packages/open-workflow-diagram-editor/tests/react-flow/edges/Edges.test.tsx index ceb0c56d..1791597f 100644 --- a/packages/open-workflow-diagram-editor/tests/react-flow/edges/Edges.test.tsx +++ b/packages/open-workflow-diagram-editor/tests/react-flow/edges/Edges.test.tsx @@ -212,7 +212,8 @@ describe("React Flow custom edge types", () => { ); const svg = container.querySelector("svg"); - expect(svg?.firstChild).toMatchSnapshot(); + expect(svg).not.toBeNull(); + expect(svg!.firstChild).toMatchSnapshot(); }); }); @@ -503,7 +504,7 @@ describe("EdgeLabel positioning", () => { targetX: 100, targetY: 40, data: { label: "Test" }, -}); + }); expect(JSON.stringify(result)).toContain(`translate(${labelX}px,${labelY}px)`); }); From ad7619836da1c3e956f3d039b684ade5613b4ef3 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Wed, 12 Aug 2026 14:21:57 +0200 Subject: [PATCH 14/17] Revert "disabled accessibility checks" This reverts commit 839f8de7da544c4517f28420e20be656127d4d52. Signed-off-by: fantonangeli --- .oxlintrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.oxlintrc.json b/.oxlintrc.json index 4c8d20b3..7aa6853c 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -1,6 +1,6 @@ { "$schema": "https://oxc.rs/schema/oxlintrc.json", - "plugins": ["react", "typescript", "import"], + "plugins": ["react", "typescript", "import", "jsx-a11y"], "rules": { "react/react-in-jsx-scope": "off", "typescript/no-unused-vars": ["warn", { "varsIgnorePattern": "^_" }], From bc633340ae2c56a88e703aabd7c1bb07bb1b4353 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Wed, 12 Aug 2026 14:38:13 +0200 Subject: [PATCH 15/17] Fixes comment: https://github.com/open-workflow-specification/editor/pull/323#discussion_r3766247035 Signed-off-by: fantonangeli --- .oxlintrc.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.oxlintrc.json b/.oxlintrc.json index 7aa6853c..50dc2d01 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -4,7 +4,10 @@ "rules": { "react/react-in-jsx-scope": "off", "typescript/no-unused-vars": ["warn", { "varsIgnorePattern": "^_" }], - "typescript/no-explicit-any": "warn" + "typescript/no-explicit-any": "warn", + "jsx-a11y/prefer-tag-over-role": "off", + "jsx-a11y/click-events-have-key-events": "off", + "jsx-a11y/no-noninteractive-element-interactions": "off" }, "ignorePatterns": ["**/dist/", "**/dist-storybook/", "**/node_modules/"], "options": { From fe4a6a180d499758d62bcd1ef22e3c5c996ea002 Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Wed, 12 Aug 2026 15:38:27 +0200 Subject: [PATCH 16/17] Fix: https://github.com/open-workflow-specification/editor/pull/323#discussion_r3766532397 https://github.com/open-workflow-specification/editor/pull/323#discussion_r3766535494 Signed-off-by: fantonangeli --- .../open-workflow-diagram-editor/tests/core/taskDetails.test.ts | 2 +- .../tests/side-panel/NodeDetailsView.test.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts b/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts index b551a638..0bd94f92 100644 --- a/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts +++ b/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts @@ -271,7 +271,7 @@ describe("getTaskDetails", () => { output: { as: "${ .output }" }, export: { as: "${ .export }" }, timeout: "PT5M", - // eslint-disable-next-line unicorn/no-thenable -- then is a Serverless Workflow Spec field + // eslint-disable-next-line unicorn/no-thenable -- then is a Open Workflow Spec field then: "next", }), ); diff --git a/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx b/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx index 1fbb91a7..c3644e52 100644 --- a/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx +++ b/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx @@ -36,7 +36,7 @@ describe("NodeDetailsView", () => { task: { call: "http", with: { endpoint: "https://api.example.com" }, - // eslint-disable-next-line unicorn/no-thenable -- then is a Serverless Workflow Spec field + // eslint-disable-next-line unicorn/no-thenable -- then is a Open Workflow Spec field then: "continue", }, }); From d492b55634cfc15591154f7980bedc0bd385b8ae Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Wed, 12 Aug 2026 15:47:49 +0200 Subject: [PATCH 17/17] Fix: https://github.com/open-workflow-specification/editor/pull/323#pullrequestreview-4917147014 Signed-off-by: fantonangeli --- .../open-workflow-diagram-editor/tests/core/taskDetails.test.ts | 2 +- .../tests/side-panel/NodeDetailsView.test.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts b/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts index 0bd94f92..56ad7aac 100644 --- a/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts +++ b/packages/open-workflow-diagram-editor/tests/core/taskDetails.test.ts @@ -271,7 +271,7 @@ describe("getTaskDetails", () => { output: { as: "${ .output }" }, export: { as: "${ .export }" }, timeout: "PT5M", - // eslint-disable-next-line unicorn/no-thenable -- then is a Open Workflow Spec field + // eslint-disable-next-line unicorn/no-thenable -- then is an Open Workflow Spec field then: "next", }), ); diff --git a/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx b/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx index c3644e52..67bd2698 100644 --- a/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx +++ b/packages/open-workflow-diagram-editor/tests/side-panel/NodeDetailsView.test.tsx @@ -36,7 +36,7 @@ describe("NodeDetailsView", () => { task: { call: "http", with: { endpoint: "https://api.example.com" }, - // eslint-disable-next-line unicorn/no-thenable -- then is a Open Workflow Spec field + // eslint-disable-next-line unicorn/no-thenable -- then is an Open Workflow Spec field then: "continue", }, });