Skip to content

FFS-4903 Add education_type field to 3 places - #2158

Open
krista-skylight wants to merge 12 commits into
mainfrom
kc/ffs-4903-add-education_type
Open

krista-skylight wants to merge 12 commits into
mainfrom
kc/ffs-4903-add-education_type

Conversation

@krista-skylight

@krista-skylight krista-skylight commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

FFS-4903

Changes

Created the field education_type based on the education type selection in the "Add your education" page.

The new field were added to:

The JSON representation of education activity entries, for both the NSC-backed and self-attested field sets.
The OpenAPI documentation/schema for the CE JSON API, including the new field's enum values, description, and updated examples.
The PDF rendering of the education activity section. 
CE "Review and Submit" page display of Education activities

Context for reviewers

Acceptance testing

Tag product and design in Slack for acceptance: @emmy-acceptance-testers

  • No acceptance testing needed
    • This change will not affect the user experience (bugfix, dependency updates, etc.)
  • Acceptance testing prior to merge
    • This change can be verified visually via screenshots attached below or by sending a link to a local development environment to the acceptance tester
    • Acceptance testing should be done by design for visual changes, product for behavior/logic changes, or both for changes that impact both.
  • Acceptance testing in PR Environment
    • This change can be verified in a PR environment. Run this Github Action with the existing PR number.
  • Acceptance testing after merge
    • This change is hard to test locally, so we'll test it in the demo environment (deployed automatically after merge.)
    • Make sure to notify the team once this PR is merged so we don't inadvertently deploy the unaccepted change to production. (e.g. :alert: Deploy block! @ffs-eng I just merged PR [#123] and will be doing acceptance testing in demo - please don't deploy until I'm finished!)

AI Usage

  • USED_AI: I attest that I have read, understood, and take ownership of all AI-generated code in this PR.
  • NO_AI: I did not use AI.

If you used AI:

Purpose for AI usage:

  • Code generation
  • Error explanation/research
  • Architecture explanation/research
  • AWS feature research
  • Documentation search
  • Writing assistance
  • Code validation
  • Generating PR summary
  • Other ______________________________

Which AI Tool(s) did you use:

  • Github Copilot
  • Claude Code
  • Claude
  • Gemini
  • Google Search AI assist
  • Other ______________________________

Infrastructure Changes

  • Plan reviewed
  • Applied in dev before merge
  • Applied in demo after merge
  • Applied in prod after merge (note any exceptions or special coordination below)

Risk / Downtime:

CMS Cloud review environment

@krista-skylight
krista-skylight marked this pull request as ready for review October 8, 2026 21:42
@krista-skylight
krista-skylight requested a review from a team as a code owner October 8, 2026 21:43
@github-actions
github-actions Bot requested a review from daphnegold October 8, 2026 21:43

@github-actions github-actions Bot 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.

Reviewed 29 files against origin/main. Found 0 findings (0 critical, 0 high, 0 medium, 0 low). Only the security perspective was applied because no IaC files changed. The new education_type attribute is only set from a server-side session value that is checked against an allowlist and tied to the current flow, and it is excluded from strong params. The model also validates it, and it is rendered through escaped I18n lookups. No secrets, PII or PHI were introduced.

Reviewed by AI, was this helpful? Please react with 👍 or 👎.

@github-actions
github-actions Bot temporarily deployed to cms-dev-pr-2158 October 8, 2026 21:56 Destroyed
@github-actions
github-actions Bot temporarily deployed to cms-dev-pr-2158 October 8, 2026 22:12 Destroyed
@github-actions
github-actions Bot temporarily deployed to cms-dev-pr-2158 October 8, 2026 22:22 Destroyed
@github-actions
github-actions Bot temporarily deployed to cms-dev-pr-2158 October 8, 2026 22:31 Destroyed

@daphnegold daphnegold 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.

Your solution satisfies the ticket using session, but as a suggestion, for consistency, we could pass education_type through a URL param like Employment with compensation_type?

There's also an opportunity to use i18n in a lot of places where there's hardcoding in the tests.

Comment thread app/app/controllers/activities/education_controller.rb Outdated
Comment thread app/app/controllers/activities/education_controller.rb Outdated
Comment thread README.md Outdated
Comment thread app/spec/controllers/activities/summary_controller_spec.rb Outdated
Comment thread app/spec/controllers/activities/summary_controller_spec.rb Outdated
@github-actions
github-actions Bot temporarily deployed to cms-dev-pr-2158 October 9, 2026 22:07 Destroyed
@github-actions
github-actions Bot temporarily deployed to cms-dev-pr-2158 October 9, 2026 22:14 Destroyed

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.

test-classifier: AI triage of failing tests

AI Test Classifier — triage of failing tests

Observed — these verdicts are grounded in the actual test run output.

Base origin/main..HEAD was correct (no re-resolve). Ran the full non-e2e rspec suite like CI, using ruby:3.4.9 and postgres:16 in Docker after an npm asset build: 2849 examples, 1 failure. All 291 examples in the changed non-e2e spec files passed. The one failure is a stale href assertion in other_controller_spec after the intended addition of the education_type=other param. E2E (js) specs were not run because they need a browser.

Verdict Test Confidence Scope
TEST_BUG Activities::Education::OtherController#show renders the accordions with content and routing links high change
Per-test rationale
  • TEST_BUG · behavioral-drift — Activities::Education::OtherController#show renders the accordions with content and routing links (app/spec/controllers/activities/education/other_controller_spec.rb:33)
    The PR intentionally changed the 'Report education manually' link in other/show.html.erb to new_activities_flow_education_path(education_type: "other"), but the spec still expects the bare /activities/education/new href. Update the expected href in the test; the app behavior is correct.

React 👍 if right / 👎 if wrong, and on a 👎 please reply to this comment with a one-line reason — that reply is the most useful tuning signal we get. Advisory, non-blocking.

@daphnegold daphnegold 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.

Looking good, thanks for addressing my suggestions. Looks like you do need to make an rspec adjustment to get it green again though. It's failing because of an outdated URL expectation.

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.

test-classifier: AI triage of failing tests

AI Test Classifier — no action required

Observed — these verdicts are grounded in the actual test run output.

Used AI_REVIEW_DIFF_RANGE origin/main..HEAD (it matches PR #2158; no re-resolution needed). Reproduced CI rspec setup (Postgres 16 + Ruby 3.4.9 Docker, assets built with Node 24). Changed specs + components: 548 examples, 0 failures; full non-E2E suite: 2849 examples, 0 failures. E2E specs (incl. changed activity_hub_education_self_attestation_spec.rb and activity_hub_spec.rb) were not run locally because they need browser tooling; confirm them in the e2e-tests workflow.

React 👍 if this is right (nothing needed triage) / 👎 if a real failure was missed, and on a 👎 please reply with a one-line reason. Advisory, non-blocking.

This branch was successfully deployed

1 active deployment
cms-dev-pr-2158 — 16ace7f5 Deployed Oct 10, 2026 by github-actions[bot]
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