From 894f15ab79508beec89e68ed79737f4eed1d4984 Mon Sep 17 00:00:00 2001 From: Steven Giesel Date: Fri, 19 Sep 2025 23:30:10 +0200 Subject: [PATCH] feat: Use source generator for event dispatch extensions --- docs/samples/tests/razor/ClickMeTest.razor | 2 +- docs/samples/tests/xunit/ClickMeTest.cs | 2 +- .../interaction/trigger-event-handlers.md | 27 +- docs/site/docs/migrations/1to2.md | 18 +- .../EventDispatcherExtensionGenerator.cs | 220 +++++ .../ClipboardEventDispatchExtensions.cs | 129 --- .../DetailsElementEventDispatchExtensions.cs | 26 - .../DialogEventDispatchExtensions.cs | 29 - .../DragEventDispatchExtensions.cs | 352 -------- .../FocusEventDispatchExtensions.cs | 109 --- .../GeneralEventDispatchExtensions.cs | 204 ----- .../InputEventDispatchExtensions.cs | 162 +--- .../KeyboardEventDispatchExtensions.cs | 169 ++-- .../MediaEventDispatchExtensions.cs | 264 ------ .../MouseEventDispatchExtensions.cs | 515 ----------- .../PointerEventDispatchExtensions.cs | 829 ------------------ .../ProgressEventDispatchExtensions.cs | 212 ----- .../TouchEventDispatchExtensions.cs | 261 ------ .../ClipboardEventDispatchExtensionsTest.cs | 2 +- .../DragEventDispatchExtensionsTest.cs | 2 +- .../EventDispatchExtensionsTest.cs | 14 +- .../FocusEventDispatchExtensionsTest.cs | 2 +- .../GeneralEventDispatchExtensionsTest.cs | 5 +- .../InputEventDispatchExtensionsTest.cs | 7 +- .../KeyboardEventDispatchExtensionsTest.cs | 1 - .../MediaEventDispatchExtensionsTest.cs | 17 - .../MouseEventDispatchExtensionsTest.cs | 1 - .../PointerEventDispatchExtensionsTest.cs | 2 +- .../ProgressEventDispatchExtensionsTest.cs | 2 +- .../TouchEventDispatchExtensionsTest.cs | 2 +- .../WheelEventDispatchExtensionsTest.cs | 2 +- 31 files changed, 356 insertions(+), 3233 deletions(-) create mode 100644 src/bunit.generators.internal/Blazor/EventDispatcherExtensionGenerator.cs delete mode 100644 src/bunit/EventDispatchExtensions/ClipboardEventDispatchExtensions.cs delete mode 100644 src/bunit/EventDispatchExtensions/DetailsElementEventDispatchExtensions.cs delete mode 100644 src/bunit/EventDispatchExtensions/DialogEventDispatchExtensions.cs delete mode 100644 src/bunit/EventDispatchExtensions/DragEventDispatchExtensions.cs delete mode 100644 src/bunit/EventDispatchExtensions/FocusEventDispatchExtensions.cs delete mode 100644 src/bunit/EventDispatchExtensions/GeneralEventDispatchExtensions.cs delete mode 100644 src/bunit/EventDispatchExtensions/MediaEventDispatchExtensions.cs delete mode 100644 src/bunit/EventDispatchExtensions/MouseEventDispatchExtensions.cs delete mode 100644 src/bunit/EventDispatchExtensions/PointerEventDispatchExtensions.cs delete mode 100644 src/bunit/EventDispatchExtensions/ProgressEventDispatchExtensions.cs delete mode 100644 src/bunit/EventDispatchExtensions/TouchEventDispatchExtensions.cs delete mode 100644 tests/bunit.tests/EventDispatchExtensions/MediaEventDispatchExtensionsTest.cs diff --git a/docs/samples/tests/razor/ClickMeTest.razor b/docs/samples/tests/razor/ClickMeTest.razor index 0534006e6..bd851f10e 100644 --- a/docs/samples/tests/razor/ClickMeTest.razor +++ b/docs/samples/tests/razor/ClickMeTest.razor @@ -11,7 +11,7 @@ // Act buttonElement.Click(); - buttonElement.Click(detail: 3, ctrlKey: true); + buttonElement.Click(new MouseEventArgs { Detail = 3, CtrlKey = true }); buttonElement.Click(new MouseEventArgs()); // Assert diff --git a/docs/samples/tests/xunit/ClickMeTest.cs b/docs/samples/tests/xunit/ClickMeTest.cs index 23b7284f2..756d80eba 100644 --- a/docs/samples/tests/xunit/ClickMeTest.cs +++ b/docs/samples/tests/xunit/ClickMeTest.cs @@ -15,7 +15,7 @@ public void Test() // Act buttonElement.Click(); - buttonElement.Click(detail: 3, ctrlKey: true); + buttonElement.Click(new MouseEventArgs { Detail = 3, CtrlKey = true }); buttonElement.Click(new MouseEventArgs()); // Assert diff --git a/docs/site/docs/interaction/trigger-event-handlers.md b/docs/site/docs/interaction/trigger-event-handlers.md index dec219d43..d8eb3ff8c 100644 --- a/docs/site/docs/interaction/trigger-event-handlers.md +++ b/docs/site/docs/interaction/trigger-event-handlers.md @@ -9,19 +9,7 @@ Blazor makes it possible to bind many event handlers to elements in a Blazor com bUnit comes with event dispatch helper methods that makes it possible to invoke event handlers for all event types supported by Blazor. -**The built-in dispatch event helpers are:** - -- [Clipboard events](xref:Bunit.ClipboardEventDispatchExtensions) -- [Drag events](xref:Bunit.DragEventDispatchExtensions) -- [Focus events](xref:Bunit.FocusEventDispatchExtensions) -- [General events](xref:Bunit.GeneralEventDispatchExtensions) -- [Input events](xref:Bunit.InputEventDispatchExtensions) -- [Keyboard events](xref:Bunit.KeyboardEventDispatchExtensions) -- [Media events](xref:Bunit.MediaEventDispatchExtensions) -- [Mouse events](xref:Bunit.MouseEventDispatchExtensions) -- [Pointer events](xref:Bunit.PointerEventDispatchExtensions) -- [Progress events](xref:Bunit.ProgressEventDispatchExtensions) -- [Touch event](xref:Bunit.TouchEventDispatchExtensions) +**The built-in dispatch event helpers are:** [here](xref:Bunit.EventHandlerDispatchExtensions). To use these, first find the element in the component under test where the event handler is bound. This is usually done with the [`Find(string cssSelector)`](xref:Bunit.RenderedComponentExtensions.Find``1(Bunit.IRenderedComponent{``0},System.String)) method. Next, invoke the event dispatch helper method of choice. @@ -50,9 +38,7 @@ To trigger the `@onclick` `ClickHandler` event handler method in the `` This is what happens in the test: 1. In the arrange step of the test, the `` component is rendered and the `