From c0b54832b3e7e7daafcc65c73c15a4cb90d3172a Mon Sep 17 00:00:00 2001 From: Suguru Inoue Date: Wed, 30 Apr 2025 11:36:28 +0200 Subject: [PATCH] feat(editor): Add "Rendered" display mode to the logs view (#14994) --- cypress/composables/ndv.ts | 4 + cypress/e2e/50-logs.cy.ts | 1 + .../frontend/editor-ui/src/__tests__/setup.ts | 5 + .../future/components/LogsOverviewPanel.vue | 4 +- .../future/components/LogsOverviewRow.vue | 5 +- .../future/components/RunDataView.vue | 13 +- .../components/Error/NodeErrorView.test.ts | 4 +- .../src/components/Error/NodeErrorView.vue | 18 +- .../src/components/InputPanel.test.ts | 1 + .../editor-ui/src/components/InputPanel.vue | 16 +- .../src/components/NodeDetailsView.vue | 23 +- .../editor-ui/src/components/OutputPanel.vue | 8 +- .../editor-ui/src/components/RunData.test.ts | 2 +- .../editor-ui/src/components/RunData.vue | 83 ++++--- .../RunDataAi/AiRunContentBlock.vue | 230 ++---------------- .../src/components/RunDataAi/utils.test.ts | 2 - .../components/RunDataDisplayModeSelect.vue | 34 ++- .../components/RunDataParsedAiContent.test.ts | 74 ++++++ .../src/components/RunDataParsedAiContent.vue | 208 ++++++++++++++++ .../src/plugins/i18n/locales/en.json | 1 + .../editor-ui/src/utils/aiUtils.test.ts | 81 ++++++ .../aiUtils.ts} | 64 +++-- 22 files changed, 587 insertions(+), 294 deletions(-) create mode 100644 packages/frontend/editor-ui/src/components/RunDataParsedAiContent.test.ts create mode 100644 packages/frontend/editor-ui/src/components/RunDataParsedAiContent.vue create mode 100644 packages/frontend/editor-ui/src/utils/aiUtils.test.ts rename packages/frontend/editor-ui/src/{components/RunDataAi/useAiContentParsers.ts => utils/aiUtils.ts} (83%) diff --git a/cypress/composables/ndv.ts b/cypress/composables/ndv.ts index cee9817a54..146a58bd24 100644 --- a/cypress/composables/ndv.ts +++ b/cypress/composables/ndv.ts @@ -310,3 +310,7 @@ export function verifyOutputHoverState(expectedText: string) { export function resetHoverState() { getBackToCanvasButton().realHover(); } + +export function setInputDisplayMode(mode: 'Schema' | 'Table' | 'JSON' | 'Binary') { + getInputPanel().findChildByTestId('ndv-run-data-display-mode').contains(mode).click(); +} diff --git a/cypress/e2e/50-logs.cy.ts b/cypress/e2e/50-logs.cy.ts index dcc736aec9..87c123c5b1 100644 --- a/cypress/e2e/50-logs.cy.ts +++ b/cypress/e2e/50-logs.cy.ts @@ -22,6 +22,7 @@ describe('Logs', () => { logs.getInputTbodyCell(1, 0).should('contain.text', '0'); logs.getInputTbodyCell(10, 0).should('contain.text', '9'); logs.clickOpenNdvAtRow(2); + ndv.setInputDisplayMode('Table'); ndv.getInputSelect().should('have.value', 'Code '); ndv.getInputTableRows().should('have.length', 11); ndv.getInputTbodyCell(1, 0).should('contain.text', '0'); diff --git a/packages/frontend/editor-ui/src/__tests__/setup.ts b/packages/frontend/editor-ui/src/__tests__/setup.ts index d6ad6482fb..35e10792c7 100644 --- a/packages/frontend/editor-ui/src/__tests__/setup.ts +++ b/packages/frontend/editor-ui/src/__tests__/setup.ts @@ -107,3 +107,8 @@ Object.defineProperty(window, 'DataTransfer', { writable: true, value: DataTransfer, }); + +Object.defineProperty(HTMLCanvasElement.prototype, 'getContext', { + writable: true, + value: vi.fn(), +}); diff --git a/packages/frontend/editor-ui/src/components/CanvasChat/future/components/LogsOverviewPanel.vue b/packages/frontend/editor-ui/src/components/CanvasChat/future/components/LogsOverviewPanel.vue index 0695edb427..0848f36d94 100644 --- a/packages/frontend/editor-ui/src/components/CanvasChat/future/components/LogsOverviewPanel.vue +++ b/packages/frontend/editor-ui/src/components/CanvasChat/future/components/LogsOverviewPanel.vue @@ -179,8 +179,8 @@ watch(