Skip to content

chore: bolster omics tests to prep for seqera deprecation - #907

Open
Kevin Loftus (kevin-loftus-dept) wants to merge 2 commits into
developmentfrom
chore/egv-268-bolster-omics-tests-for-seqera-depr
Open

chore: bolster omics tests to prep for seqera deprecation#907
Kevin Loftus (kevin-loftus-dept) wants to merge 2 commits into
developmentfrom
chore/egv-268-bolster-omics-tests-for-seqera-depr

Conversation

@kevin-loftus-dept

Copy link
Copy Markdown
Contributor

Title*

Bolster HealthOmics test coverage ahead of Seqera deprecation (EGV-268)

Type of Change*

  • New feature
  • Bug fix
  • Documentation update
  • Refactoring
  • Hotfix
  • Security patch
  • UI/UX improvement

(Also: test coverage / chore — no production behavior change.)

Description

Prepares for Seqera removal by locking in HealthOmics-only behavior in mixed HealthOmics/Seqera files before any hard removal or branch extraction.

No Seqera removal or production logic changes are included. This PR adds unit tests and a coverage inventory doc:

  • Back-end: gaps closed for process-update-laboratory-run, process-classify-laboratory-run-failure, unified-workflow-catalog-service, and run-cost-capture-service (progress failure handling, terminal-status task listing skip, Anthropic/SSM failure paths, Omics catalog pagination/sorting/disabled labs, cost-capture edge cases).
  • Front-end: new coverage for useMultiplatform HealthOmics routing and run-store Omics WIP mutate/unset/omicsRunsForLab paths.
  • Docs: docs/development/healthomics-mixed-file-coverage.md maps existing coverage, what was added, and accepted residual gaps (Vue SFCs without VTU; Collections modal, Dashboard favourites, Workflow Lab Access UI).

Related: EGV-268

Testing*

  • Added/extended unit tests in:
    • packages/back-end/test/.../process-update-laboratory-run.lambda.test.ts
    • packages/back-end/test/.../process-classify-laboratory-run-failure.lambda.test.ts
    • packages/back-end/test/.../run-cost-capture-service.test.ts
    • packages/back-end/test/.../unified-workflow-catalog-service.test.ts
    • packages/front-end/test/app/composables/useMultiplatform.test.ts (new)
    • packages/front-end/test/app/stores/run.test.ts (new)
  • Verified with pnpm test in packages/back-end and packages/front-end.

Impact

  • Improves regression safety for HealthOmics paths that currently share files with Seqera logic.
  • No runtime, API, or UI behavior changes; test-only + documentation.
  • Residual risk documented: some FE Vue SFCs remain without unit mounts; hard Seqera removal should not assume full unit safety there without e2e or post-extraction coverage.

Additional Information

  • Omics run-store loads left as residual (need Nuxt $api harness).
  • FE components such as EGRunFromCollectionsModal, EGDashboard, and EGWorkflowLabAccessPage are gap-documented rather than newly unit-tested in this ticket.

Checklist*

  • No new errors or warnings have been introduced.
  • All tests pass successfully and new tests added as necessary.
  • Documentation has been updated accordingly.
  • Code adheres to the coding and style guidelines of the project.
  • Code has been commented in particularly hard-to-understand areas.

@diegomayorga-dept

Copy link
Copy Markdown
Contributor

PR Review: chore: bolster omics tests to prep for seqera deprecation (#907)

Summary

  • 0 blockers, 1 major, 3 minor
  • Confirmed clean: no production code touched, no security issues, no breaking changes, test coverage is genuinely solid
  • Top concern: the new coverage-inventory doc contains a factually inaccurate claim about a "compile fix" that never happened in this diff

Conventions (2)

major — docs/development/healthomics-mixed-file-coverage.md:34

The doc's "Note on process-update compile fix" section claims process-update-laboratory-run.lambda.ts "failed to typecheck" and that a broken buildProgressUpdate/updateWithAttributeRemoval call "was restored to the prior correct pattern." The diff contains zero changes to that lambda file — only its test file was touched. Two independent reviewers (correctness + conventions) verified the current code at that call site is already type-correct and behaviorally sound, and traced the actual fix to an earlier, already-merged commit (7e3c17c2, "fix: broken unit test"). The note misrepresents what this PR changed.

Suggestion: Remove the "compile fix" note, or rewrite it to say the lambda required no code changes in this PR — only new test coverage was added.

minor — docs/development/README.md:12

healthomics-mixed-file-coverage.md isn't registered in docs/development/README.md's index table, unlike its sibling docs.

Suggestion: Add a row for the new doc to the docs/development/README.md table for consistency.

Simplification (2)

minor — packages/back-end/test/app/controllers/easy-genomics/laboratory/run/process-classify-laboratory-run-failure.lambda.test.ts:253

"skips HealthOmics OpenAI when SSM key is missing" and "skips HealthOmics LLM when getParameter throws" are near-identical — same mocks, same assertions, differing only in how mockGetParameter resolves/rejects.

Suggestion: Collapse into a single it.each over the two SSM failure modes.

minor — packages/back-end/test/app/services/easy-genomics/run-cost-capture-service.test.ts:92

"uses cost-capture as Omics userId" and "omits ActualStorageCostUsd" duplicate the same large listAllRunTasks/getRun mock literal, varying only storageCapacity and UserId.

Suggestion: Factor the repeated createOmicsServiceForLab mock into a small local helper reused across these tests.

@kevin-loftus-dept
Kevin Loftus (kevin-loftus-dept) force-pushed the chore/egv-268-bolster-omics-tests-for-seqera-depr branch from 71f6d75 to c54744d Compare August 21, 2026 18:29
@kevin-loftus-dept

Copy link
Copy Markdown
Contributor Author

PR Review: chore: bolster omics tests to prep for seqera deprecation (#907)

Summary

  • 0 blockers, 1 major, 3 minor
  • Confirmed clean: no production code touched, no security issues, no breaking changes, test coverage is genuinely solid
  • Top concern: the new coverage-inventory doc contains a factually inaccurate claim about a "compile fix" that never happened in this diff

Conventions (2)

major — docs/development/healthomics-mixed-file-coverage.md:34

The doc's "Note on process-update compile fix" section claims process-update-laboratory-run.lambda.ts "failed to typecheck" and that a broken buildProgressUpdate/updateWithAttributeRemoval call "was restored to the prior correct pattern." The diff contains zero changes to that lambda file — only its test file was touched. Two independent reviewers (correctness + conventions) verified the current code at that call site is already type-correct and behaviorally sound, and traced the actual fix to an earlier, already-merged commit (7e3c17c2, "fix: broken unit test"). The note misrepresents what this PR changed.

Suggestion: Remove the "compile fix" note, or rewrite it to say the lambda required no code changes in this PR — only new test coverage was added.

minor — docs/development/README.md:12

healthomics-mixed-file-coverage.md isn't registered in docs/development/README.md's index table, unlike its sibling docs.

Suggestion: Add a row for the new doc to the docs/development/README.md table for consistency.

Simplification (2)

minor — packages/back-end/test/app/controllers/easy-genomics/laboratory/run/process-classify-laboratory-run-failure.lambda.test.ts:253

"skips HealthOmics OpenAI when SSM key is missing" and "skips HealthOmics LLM when getParameter throws" are near-identical — same mocks, same assertions, differing only in how mockGetParameter resolves/rejects.

Suggestion: Collapse into a single it.each over the two SSM failure modes.

minor — packages/back-end/test/app/services/easy-genomics/run-cost-capture-service.test.ts:92

"uses cost-capture as Omics userId" and "omits ActualStorageCostUsd" duplicate the same large listAllRunTasks/getRun mock literal, varying only storageCapacity and UserId.

Suggestion: Factor the repeated createOmicsServiceForLab mock into a small local helper reused across these tests.

Fixed all issues, please re-review.

@diegomayorga-dept diegomayorga-dept left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants