From 1eb049ddbb5a743a38a560eafe0410da1c5e4ec5 Mon Sep 17 00:00:00 2001 From: Ryan Manuel Date: Tue, 17 Jun 2025 14:41:49 -0500 Subject: [PATCH 1/9] chore: (cy.prompt) add infrastructure to support a Get Code modal --- .../app/src/prompt/PromptGetCodeModal.vue | 124 +++++++++++++++++ packages/app/src/prompt/prompt-app-types.ts | 22 +++ .../app/src/runner/SpecRunnerOpenMode.vue | 9 +- packages/app/src/runner/event-manager.ts | 24 ++++ packages/app/src/store/prompt-store.ts | 32 +++++ packages/app/src/studio/studio-app-types.ts | 18 +-- .../prompt/prompt-initialization-error.cy.ts | 4 +- .../driver/src/cy/commands/prompt/index.ts | 14 +- .../cy/commands/prompt/prompt-driver-types.ts | 29 +++- .../driver/types/internal-types-lite.d.ts | 2 +- .../icons/technology-angle-brackets_x16.svg | 10 ++ packages/reporter/cypress.config.ts | 2 + .../reporter/src/commands/command-model.ts | 6 + packages/reporter/src/commands/command.cy.tsx | 54 ++++++++ packages/reporter/src/commands/command.tsx | 9 ++ packages/reporter/src/lib/events.ts | 4 + .../lib/cloud/cy-prompt/CyPromptManager.ts | 6 + packages/server/lib/socket-base.ts | 25 +++- .../cloud/cy-prompt/test-cy-prompt.ts | 4 + .../cloud/cy-prompt/CyPromptManager_spec.ts | 29 ++++ packages/server/test/unit/socket_spec.js | 45 +++++- .../src/cy-prompt/cy-prompt-server-types.ts | 24 +++- .../types/src/studio/studio-server-types.ts | 1 + scripts/gulp/gulpfile.ts | 3 +- scripts/gulp/tasks/gulpCloudDeliveredTypes.ts | 130 +++++++++++++++--- 25 files changed, 564 insertions(+), 66 deletions(-) create mode 100644 packages/app/src/prompt/PromptGetCodeModal.vue create mode 100644 packages/app/src/prompt/prompt-app-types.ts create mode 100644 packages/app/src/store/prompt-store.ts create mode 100644 packages/frontend-shared/src/assets/icons/technology-angle-brackets_x16.svg diff --git a/packages/app/src/prompt/PromptGetCodeModal.vue b/packages/app/src/prompt/PromptGetCodeModal.vue new file mode 100644 index 00000000000..7c53f561909 --- /dev/null +++ b/packages/app/src/prompt/PromptGetCodeModal.vue @@ -0,0 +1,124 @@ + + + diff --git a/packages/app/src/prompt/prompt-app-types.ts b/packages/app/src/prompt/prompt-app-types.ts new file mode 100644 index 00000000000..78a61a50e59 --- /dev/null +++ b/packages/app/src/prompt/prompt-app-types.ts @@ -0,0 +1,22 @@ +export interface CypressInternal extends Cypress.Cypress { + backendRequestHandler: ( + backendRequestNamespace: string, + eventName: string, + ...args: any[] + ) => Promise +} + +export interface GetCodeModalContentsProps { + Cypress: CypressInternal + testId: string + logId: string + onClose: () => void +} + +export type GetCodeModalContentsShape = (props: GetCodeModalContentsProps) => JSX.Element + +export interface CyPromptAppDefaultShape { + // Purposefully do not use React in this signature to avoid conflicts when this type gets + // transferred to the Cypress app + GetCodeModalContents: GetCodeModalContentsShape +} diff --git a/packages/app/src/runner/SpecRunnerOpenMode.vue b/packages/app/src/runner/SpecRunnerOpenMode.vue index 89f720f7665..a5dfc452157 100644 --- a/packages/app/src/runner/SpecRunnerOpenMode.vue +++ b/packages/app/src/runner/SpecRunnerOpenMode.vue @@ -1,4 +1,9 @@