Skip to content

AWS Transform: unit-test generation choice + status-only UT substeps - #2857

Merged
laileni-aws merged 4 commits into
mainfrom
mehishar/feature-d-isstatusonly
Sep 9, 2026
Merged

AWS Transform: unit-test generation choice + status-only UT substeps#2857
laileni-aws merged 4 commits into
mainfrom
mehishar/feature-d-isstatusonly

Conversation

@Rajanna-Karthik

@Rajanna-Karthik Rajanna-Karthik commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

What this adds

The language-server side of the unit-test generation experience for AWS Transform (.NET). It powers the Visual Studio behavior.

Customers choose up front whether unit tests get generated; this passes that choice to the transformation job and tells the IDE which steps to show as plain progress.

Changes (language server)

1. Carry the customer's unit-test choice to the job

  • Passes the up-front "generate unit tests?" selection through to the transformation so it acts on the right decision.
  • An unselected option is treated as a real "no"; a client that does not offer the option simply keeps today's behavior.

2. Mark unit-test steps as status-only

  • Flags unit-test-generation substeps as status-only so the IDE renders them as plain progress (no checkpoint controls or "View Results"), like the other transformation substeps.

Notes

  • Main merged into the branch cleanly (no conflicts).
  • Backend contract is already shipped; CR-300232958 fixes a related backend issue where an up-front "no" could be overridden mid-job.
  • Includes unit tests covering choice-forwarding (all input states) and status-only rendering.

mehishar and others added 3 commits July 29, 2026 00:03
Mark the direct substeps of the "Generate Unit Tests" step (plan / generate /
merge / coverage) as status-only so the IDE renders them as progress-only rows,
without a checkpoint toggle, "View Results" button, or checkpoint checkbox.

The step data returned by the service has no machine-readable step label, so the
flag is assigned structurally during plan-tree assembly based on the parent
step's name rather than a label prefix. The parent step keeps its normal
checkpoint affordance.
Include GenerateUnitTests in the CreateJob objective only when it is a real boolean,

so clients that omit it keep legacy behavior and an explicit false stays a decline.

Matches shipped backend contract CR-298620129. Adds 4 unit tests.
@Rajanna-Karthik
Rajanna-Karthik requested a review from a team as a code owner August 28, 2026 17:52
@Rajanna-Karthik Rajanna-Karthik changed the title AWS Transform: unit-test generation choice + status-only UT substeps [DO NOT MERGE] AWS Transform: unit-test generation choice + status-only UT substeps Sep 1, 2026
@laileni-aws laileni-aws changed the title [DO NOT MERGE] AWS Transform: unit-test generation choice + status-only UT substeps AWS Transform: unit-test generation choice + status-only UT substeps Sep 8, 2026
@laileni-aws

Copy link
Copy Markdown
Collaborator

Reviewed together with aws-toolkit-visual-studio-staging#2927. No blocking defects in this diff itself; one question needs an answer before merge because it spans both PRs.

Question (potentially blocking): steps absent from checkpoint-settings.json

The toolkit side excludes status-only substeps from the checkpoints payload (it filters on ShowCheckpointCheckbox), so the UT substeps flagged here will never appear in checkpoint-settings.json. populateCheckpointsOnPlan then defaults them to HasCheckpoint = true for display. What does the orchestrator do with a step that is missing from the settings file in interactive mode? If it treats missing as "pause", the UT substeps will block the job with no UI to approve them. If so, either the toolkit must send an explicit false for status-only steps, or setCheckpoints should fill them in here.

Non-blocking

  • isUnitTestGenerationStep matches the exact display name. In the test fixture the gen substep has the same name as its parent ("Generate Unit Tests"), so any nested children of gen (for example error-fix rounds) would also be flagged. Harmless today because Level 3 never shows toggles, but brittle if the service renames the step. Consider asking the service for a machine-readable label, or restricting the match to parents whose own parent is root.
  • atxTransformHandler.ts L1174: (request.startTransformRequest as any).GenerateUnitTests — the field is now typed on StartTransformRequest in models.ts, so the cast can be dropped.

@mehishar

mehishar commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

I verified in orchestrator - status-only UT substeps are exempt from pausing so the toolkit omitting them from the payload has no bearing on whether they pause; the "hidden UI + missing key ⇒ stall" coupling doesn't actually exist. This is not a blocker and the current omit-based approach is safe.
Regarding the other non-blockers, we can take them up as follow up later

@laileni-aws
laileni-aws merged commit 2a478f7 into main Sep 9, 2026
10 checks passed
@laileni-aws
laileni-aws deleted the mehishar/feature-d-isstatusonly branch September 9, 2026 00:39
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.

4 participants