{"action":"opened","issue":{"url":"https://api.github.com/repos/department-of-veterans-affairs/va.gov-team/issues/781","repository_url":"https://api.github.com/repos/department-of-veterans-affairs/va.gov-team","labels_url":"https://api.github.com/repos/department-of-veterans-affairs/va.gov-team/issues/781/labels{/name}","comments_url":"https://api.github.com/repos/department-of-veterans-affairs/va.gov-team/issues/781/comments","events_url":"https://api.github.com/repos/department-of-veterans-affairs/va.gov-team/issues/781/events","html_url":"https://github.com/department-of-veterans-affairs/va.gov-team/issues/781","id":475829102,"node_id":"MDU6SXNzdWU0NzU4MjkxMDI=","number":781,"title":"Form tester: Optionally ensure all data is entered","user":{"login":"cvalarida","id":12970166,"node_id":"MDQ6VXNlcjEyOTcwMTY2","avatar_url":"https://avatars0.githubusercontent.com/u/12970166?v=4","gravatar_id":"","url":"https://api.github.com/users/cvalarida","html_url":"https://github.com/cvalarida","followers_url":"https://api.github.com/users/cvalarida/followers","following_url":"https://api.github.com/users/cvalarida/following{/other_user}","gists_url":"https://api.github.com/users/cvalarida/gists{/gist_id}","starred_url":"https://api.github.com/users/cvalarida/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cvalarida/subscriptions","organizations_url":"https://api.github.com/users/cvalarida/orgs","repos_url":"https://api.github.com/users/cvalarida/repos","events_url":"https://api.github.com/users/cvalarida/events{/privacy}","received_events_url":"https://api.github.com/users/cvalarida/received_events","type":"User","site_admin":false},"labels":[{"id":1382115867,"node_id":"MDU6TGFiZWwxMzgyMTE1ODY3","url":"https://api.github.com/repos/department-of-veterans-affairs/va.gov-team/labels/frontend","name":"frontend","color":"6d289b","default":false},{"id":1382120012,"node_id":"MDU6TGFiZWwxMzgyMTIwMDEy","url":"https://api.github.com/repos/department-of-veterans-affairs/va.gov-team/labels/triage","name":"triage","color":"d18323","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2019-08-01T18:34:46Z","updated_at":"2019-08-01T18:34:46Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"## Problem\r\n1) We build a form to have a field `root_foo`\r\n2) Our test data has `{ \"data\": { \"foo\": \"bar\" } }`\r\n3) We change the form later to hide `root_foo` under some condition\r\n4) Our test data is still in there, but `root_foo` is never shown, so the data is never entered\r\n\r\nThis causes a mismatch between the test data and the test run. That is to say, the data at the end of the test run (filling out all the fields) won't match the data we used to do the run. The trouble with this is the resulting \"data rot\" where we've got vestigial test data hanging around that's invalid for the case the test data was originally intended for.\r\n\r\n(That's a lot of words; I'm having a hard time describing why exactly it's a problem. Basically it has to do with test data hygiene.)\r\n\r\n## Goal\r\nThe form app tester checks that all the data in the test file is entered successfully into the form.\r\n\r\n## Acceptance Criteria\r\n- [ ] A configuration option is opened up to check for complete data entry (default `true`)\r\n- [ ] If `true`, the tester ensures that all data in the test file is successfully entered into the form\r\n\r\n## Possible solutions\r\nBefore we run the page hook for the confirmation page, we might be able to pull the `formData` from the redux store and compare it to the test data.\r\n\r\nBarring that, we can check each field after we input the data and have some state object keeping track of what was successfully entered. (This is pretty gross, I think, so I'd prefer the above if at all possible.)\r\n\r\n## Definition of Done\r\n- [ ] **Attached to a Milestone** (when will this be completed?)\r\n- [ ] **Attached to an Epic** (what body of work is this a part of?)\r\n- [ ] **Labeled with Team** (`product support`, `analytics-insights`, `operations`, `triage`, `tools-improvements`)\r\n- [ ] **Labeled with Practice Area** (`backend`, `frontend`, `devops`, `design`, `research`, `product`, `ia`, `qa`, `analytics`, `call center`, `research`, `accessibility`, `content`)\r\n- [ ] **Labeled with Type** (`bug`, `request`, `discovery`, `documentation`, etc.)\r\n"}}
{"actor":{"display_login":"cvalarida"}}