Add TestApp and TestAppWindow for cleaner GPUI testing #44820
+768
−21
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.
Summary
TestAppprovides a simpler alternative toTestAppContextwith:TestAppWindow<V>SceneSnapshotChanges
app.rstest_appmoduleapp/test_app.rsTestAppandTestAppWindowfor cleaner testingcolor.rsBackground::as_solid()helperscene.rsSceneSnapshotfor inspecting rendered quads/glyphsRelationship to TestAppContext
This is an alternative API, not a replacement. Both can coexist:
TestAppContextTestApp#[gpui::test]macroTestApp::new()VisualTestContextTestAppWindow<V>window.scene_snapshot()Use
TestAppwhen: You need scene inspection, typed window access, or prefer explicit APIs.Use
TestAppContextwhen: You need multi-client simulation with shared dispatcher, or are extending existing tests.Future work
Could add
TestApp::new_app()to create a second app sharing the same dispatcher (likeTestAppContext::new_app()) for multi-client testing.Release Notes: