In tests, move forms inline to cut down on verbosity #2240
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Authors: Please fill out this form carefully and completely.
Reviewers: By approving this Pull Request you are approving the code change, as well as its deployment and mitigation plans.
Please read this description carefully. If you feel there is anything unclear or missing, please ask for updates.
What are you trying to accomplish?
In the tests for the forms framework, it's common to see this pattern:
The framework makes us define a separate class for our form. There are a couple of drawbacks to this, at least in tests:
This PR adds the ability to define forms inline:
Now, the form is defined inside the test, making it easier to reason about the test as a whole. There are probably too many nesting levels at play here, but that's a problem for another day.
There are a couple of obvious drawbacks with this approach:
If you need to circumvent any of these drawbacks, define a form class.
Integration
No changes necessary in production. This change is largely test-only.
Risk Assessment
Accessibility
Merge checklist
- [ ] Added/updated documentation- [ ] Added/updated previews (Lookbook)- [ ] Tested in Chrome- [ ] Tested in Firefox- [ ] Tested in Safari- [ ] Tested in EdgeTake a look at the What we look for in reviews section of the contributing guidelines for more information on how we review PRs.