test(e2e): add end-to-end payload decoder coverage#3321
Merged
rossedfort merged 5 commits intomainfrom Apr 21, 2026
Merged
Conversation
Start payload-coverage-workflow fire-and-forget in global setup so the
workflow remains running when tests execute, enabling signal and query
interaction.
Add payload-decoder.desktop.spec.ts covering:
- Workflow input decoded via cluster codec
- Memo payloads decoded
- Search attributes decoded
- Event history: WorkflowExecutionStarted, ActivityTaskScheduled,
ActivityTaskCompleted, ActivityTaskFailed, StartChildWorkflowExecutionInitiated,
ChildWorkflowExecutionCompleted
- Query results (get-status, get-field)
- Send signal and verify decoded payload in history
- Call stack stack trace
Use getByRole('textbox') within event-summary-row-expanded to access
CodeMirror contentDOM directly, matching the pattern used by existing
query and call-stack tests.
Add four page classes to encapsulate e2e test interactions: - WorkflowDetailPage: tab navigation and input/result/main locators - EventHistoryPage: feed toggle, event row expansion, and editor access - WorkflowQueryPage: query type selection, arg input, and result - SignalModalPage: signal modal open, signal selection, payload fill and submit Refactor payload-decoder.desktop.spec.ts to use these classes, removing all raw page.getByTestId/getByRole calls from the test body. Also upgrades @temporalio/* packages from 1.15.0 to 1.16.0.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
Collaborator
|
Definitely don't need to add to this PR, but would be nice to also cover Updates, Nexus Operations, Schedules, SAAs, Start Workflows |
|
|
||
| const temporal = $`${cliPath} server start-dev ${flags}`.quiet(); | ||
|
|
||
| await $`${cliPath} operator search-attribute create --name CustomKeywordField --type Keyword --name CustomIntField --type Int`; |
Collaborator
There was a problem hiding this comment.
Do you need to pass in a namespace?
Contributor
Author
There was a problem hiding this comment.
Nope, it just adds them to the default namespace. For some reason this was causing a failure in CI so I had to inline it with the main temporal server start-dev command above
Contributor
Author
There was a problem hiding this comment.
Oh, maybe it was failing because I didn't supply a namespace. Either way, should be fixed now.
Alex-Tideman
approved these changes
Apr 21, 2026
3 tasks
rossedfort
added a commit
that referenced
this pull request
Apr 22, 2026
Auto-generated version bump from 2.48.4 to 2.49.0 Bump type: minor Changes included: - [`9146199f`](9146199) fix: ref main in reusable PR review workflows (#3326) - [`ca904926`](ca90492) test(e2e): add end-to-end payload decoder coverage (#3321) - [`4e32d230`](4e32d23) chore: add setup-worktree skill (#3278) - [`a789fbdb`](a789fbd) Fix decoding payloads for user metadata (#3328) - [`21f2d448`](21f2d44) ci: remove unused Set up Protoc step from workflows (#3323) - [`39c41d25`](39c41d2) fix(ui): guard getApiOrigin against undefined VITE_API (#3332) - [`627cbb1b`](627cbb1) feat: add showInstancesLink prop to deployment header (#3331) - [`0726c65e`](0726c65) Check certFile modification time instead of keyFile (#3178) - [`8c79931b`](8c79931) feat(DT-3887): remove Dispatch Rate Epsilon from compute scaling UI (#3334) Co-authored-by: rossedfort <11775628+rossedfort@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description & motivation 💭
Adds a payload-coverage-workflow that exercises every Temporal payload touchpoint — workflow input/output, memo, search attributes, activity input/output, activity failure, child workflow, signals, and queries — with all payloads AES-GCM encrypted via the codec server.
Uses this workflow as the foundation for a new e2e test suite (payload-decoder.desktop.spec.ts) that verifies the UI correctly decodes payloads at every touchpoint when the codec endpoint is configured.
What changed
Temporal infrastructure (temporal/)
E2e tests (tests/)
Screenshots (if applicable) 📸
Design Considerations 🎨
Testing 🧪
How was this tested 👻
Steps for others to test: 🚶🏽♂️🚶🏽♀️
Checklists
Draft Checklist
Merge Checklist
Issue(s) closed
Docs
Any docs updates needed?