Conversation
|
test-classifier: AI triage of failing tests AI Test Classifier — triage of failing tests
Used the precomputed range origin/main..HEAD (verified: it contains PR #2033's API v2 invitations + individual_id change), so no base re-resolution was needed. Located the suite via .github/workflows/rspec.yml, installed gems from Gemfile.lock (Ruby 3.4.10 from the hosted toolcache; the 3.4.9 pin was temporarily relaxed to bundle and then reverted), started PostgreSQL, loaded the schema, ran npm install + rake assets:precompile as the CI setup action does, and ran 'bundle exec rspec spec --exclude-pattern e2e/**/*_spec.rb': 2551 examples, 0 failures. An earlier run before asset precompilation produced 20 Sprockets AssetNotFound failures; those are purely local provisioning artifacts that do not reproduce once assets are compiled (as CI does), so they are not reported as failures. i18n-tasks health is clean. The one genuine red CI check introduced by the diff is a rubocop Layout/TrailingWhitespace offense on a newly added comment line in app/app/controllers/api/v2/invitations_controller.rb.
Per-test rationale
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. |
|
test-classifier: AI triage of failing tests AI Test Classifier — triage of failing tests
Used the dispatcher-provided range origin/main..HEAD (verified it matches PR #2033; no re-resolution needed). Bootstrapped the CI environment (postgres 16 + role/db + schema load, npm install, rake assets:precompile — asset precompile is required or every view-rendering spec fails spuriously with Sprockets::Rails::Helper::AssetNotFound; Gemfile ruby pin 3.4.9 was temporarily bumped to the available 3.4.10 and restored). RSpec excluding spec/e2e (matching .github/workflows/rspec.yml) passed 2551/2551; Vitest passed 88/88; i18n-tasks health and the locale-sync script both passed. No test failed. RuboCop on the changed files reported one in-scope offense: a trailing whitespace at app/app/controllers/api/v2/invitations_controller.rb:61 that will turn the rubocop CI job red; it is autocorrectable and the fix belongs in the new application code. spec/e2e was not executed (excluded from the CI rspec job; needs chromedriver and Pinwheel/Argyle sandbox credentials not available here) and no e2e spec code changed in this diff.
Per-test rationale
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. |
|
test-classifier: AI triage of failing tests AI Test Classifier — no action required
Ran the repo's real RSpec suite for PR #2033 (API v2 invitations endpoint + individual_id for LA LDH applicants) by reproducing .github/workflows/rspec.yml: Ruby 3.4.10, bundle install from Gemfile.lock, Postgres 16 container, rake db:schema:load, npm install, rake assets:precompile, then 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. |
| doc_id_or_individual_id: | ||
| blank: Se requiere doc_id o individual_id |
There was a problem hiding this comment.
Did you just use Google Translate? We need to actually go through our translator if so, because CMS expects human involvement.
I also notice that Individual ID is not translated yet. And actually, if these are just for errors to be seen by our state partners, we don't even need to translate them; English only is fine. But if it would show up on the site to an applicant in Emmy Income, we need to translate to Spanish. (And eventually if it would show up on the site for a CE user, we will also eventually want Spanish, but we are punting on that for now.)
There was a problem hiding this comment.
I used AI for the translation, mainly added because I get an i18 failure if it's not included in both en.yml and es.yml. I can change it to english or an empty string in es.yml if needed and also just change it to individual_id if we are not including doc_id in v2.
There was a problem hiding this comment.
Found the i18n-tasks file to ignore translation keys, so going to do that instead.
| # Filter out nil values for doc_id and individual_id, since they are not required for all agencies | ||
| # and should not be included in the response if they are nil. | ||
| filtered = metadata.reject do |key, value| | ||
| %w[doc_id individual_id].include?(key) && value.nil? |
There was a problem hiding this comment.
Should we switch to .blank? here? I'm worried that some fields might come back null instead of nil sometimes.
|
Could use some thorough instructions for testing manually. Also, looks like you want testing in a PR env, but it doesn't look like you created one yet (see your PR description for a link to the GHA that creates one). |
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
|
test-classifier: AI triage of failing tests AI Test Classifier — triage of failing tests
Re-resolved the base: the dispatcher's
Per-test rationale
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. |
|
test-classifier: AI triage of failing tests AI Test Classifier — triage of failing tests
Re-resolved the base: AI_REVIEW_DIFF_RANGE ('origin/main HEAD') was misleading because origin/main is 23 commits ahead of this branch's merge-base, producing a 61-file two-dot diff full of unrelated reverse deltas; I used the merge-base three-dot range a6ee3a3...HEAD (14 files: new Api::V2::InvitationsController, individual_id column, LA LDH config/report field, v2 route, new v2 spec). Ran the repo's own CI recipe (Ruby 3.4.10 from the toolcache, Postgres 16, npm install, rake assets:precompile, rake db:schema:load, parallel_test -n 4 excluding spec/e2e). Result: 2551 examples, 2 failures, both in the spec added by this change. An initial run without assets:precompile yielded 595 Sprockets AssetNotFound failures; those are a missing-setup-step artifact and all pass once assets are compiled, so they are not classified. Both real failures are a 422 from Api::V2::InvitationsController#metadata_params hard-coding a four-key permit list that drops first_name/middle_name/last_name, so applicant validation fails for every agency whose valid attributes include names.
Per-test rationale
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. |
|
test-classifier: AI triage of failing tests AI Test Classifier — no action required
Re-resolved the diff base: the precomputed AI_REVIEW_DIFF_RANGE (origin/main HEAD) was stale/wrong — origin/main had advanced ~13 commits past this PR's base, surfacing 61 unrelated files. Used the merge-base a6ee3a3..HEAD instead, which exactly matches the 14 files reported by 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. |
|
test-classifier: AI triage of failing tests AI Test Classifier — no action required
Re-resolved the base: the dispatcher's AI_REVIEW_DIFF_RANGE (origin/main HEAD) was stale and surfaced 61 unrelated files, so I used the merge-base instead (git merge-base origin/main HEAD = a6ee3a3), which yields PR #2033's actual 14-file change adding a V2 invitations API with a new cbv_applicants.individual_id column. Bootstrapped from the repo's own CI definitions (Ruby 3.4.10, bundle install from Gemfile.lock, Postgres 16, db:schema:load, npm ci, assets:precompile) and ran the full non-e2e RSpec suite: 2551 examples, 0 failures. Vitest (88 tests), i18n-tasks health, and RuboCop (663 files) also pass. An initial run produced ~180 Sprockets::Rails::Helper::AssetNotFound failures in component and view-rendering specs; that was my own missing assets:precompile step (which .github/actions/setup-project runs before RSpec), not a property of the change, and all of those specs pass once assets are compiled, so they are excluded rather than reported as environment findings. spec/e2e/ was not run because the repo's own rspec.yml excludes it and the change under test touches no e2e spec. Nothing failed; classifications are empty. 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. |
| prompt: Your date of birth | ||
| super_one_html: Date of birth<sup>1</sup> | ||
| individual_id: | ||
| blank: individual_id is required |
There was a problem hiding this comment.
One last thing: are we sure the error shouldn't say "individual or doc id is required"?
FFS-4796
Changes
Added V2 of the invitations api, which allows for the use of individual_id along with doc_id from V1.
Context for reviewers
For testing:
Generate an API token:
To test error response:
which should return response:
Acceptance testing
Tag product and design in Slack for acceptance: @emmy-acceptance-testers
AI Usage
Optional — for learning, not audited:
Risk / Downtime:
Preview environment