1- using Microsoft . AspNetCore . Http ;
1+ using Ramstack . HtmxToolkit . Configuration ;
22
33namespace Ramstack . HtmxToolkit . Tests ;
44
@@ -8,7 +8,7 @@ public class HtmxResponseHeadersTests
88 [ Test ]
99 public void Properties_RoundTrips ( )
1010 {
11- var context = new DefaultHttpContext ( ) ;
11+ var context = TestHelper . CreateHttpContext ( ) ;
1212 var headers = context . Response . GetHtmxHeaders ( ) ;
1313
1414 headers . Location = "/foo" ;
@@ -42,7 +42,7 @@ public void Properties_RoundTrips()
4242 [ Test ]
4343 public void Refresh_WhenTrue_SetsTrue ( )
4444 {
45- var context = new DefaultHttpContext ( ) ;
45+ var context = TestHelper . CreateHttpContext ( ) ;
4646 var headers = context . Response . GetHtmxHeaders ( ) ;
4747
4848 headers . Refresh = true ;
@@ -54,7 +54,7 @@ public void Refresh_WhenTrue_SetsTrue()
5454 [ Test ]
5555 public void Refresh_IsFalse_ByDefault ( )
5656 {
57- var context = new DefaultHttpContext ( ) ;
57+ var context = TestHelper . CreateHttpContext ( ) ;
5858 var headers = context . Response . GetHtmxHeaders ( ) ;
5959
6060 Assert . That ( headers . Refresh , Is . False ) ;
@@ -63,7 +63,7 @@ public void Refresh_IsFalse_ByDefault()
6363 [ Test ]
6464 public void Reswap_IsNull_WhenHeaderAbsent ( )
6565 {
66- var context = new DefaultHttpContext ( ) ;
66+ var context = TestHelper . CreateHttpContext ( ) ;
6767 var headers = context . Response . GetHtmxHeaders ( ) ;
6868
6969 Assert . That ( headers . Reswap , Is . Null ) ;
@@ -72,7 +72,7 @@ public void Reswap_IsNull_WhenHeaderAbsent()
7272 [ Test ]
7373 public void Reswap_IsNull_WhenHeaderUnknown ( )
7474 {
75- var context = new DefaultHttpContext ( ) ;
75+ var context = TestHelper . CreateHttpContext ( ) ;
7676 var headers = context . Response . GetHtmxHeaders ( ) ;
7777
7878 context . Response . Headers [ HtmxResponseHeaderNames . Reswap ] = "bogus" ;
@@ -83,7 +83,7 @@ public void Reswap_IsNull_WhenHeaderUnknown()
8383 [ Test ]
8484 public void ReswapExpression_KeepsFullExpression_WhileReswapParsesOnlyStyle ( )
8585 {
86- var context = new DefaultHttpContext ( ) ;
86+ var context = TestHelper . CreateHttpContext ( ) ;
8787 var headers = context . Response . GetHtmxHeaders ( ) ;
8888
8989 headers . ReswapExpression = "outerHTML show:top" ;
@@ -95,7 +95,7 @@ public void ReswapExpression_KeepsFullExpression_WhileReswapParsesOnlyStyle()
9595 [ Test ]
9696 public void SettingNull_DoesNotAddHeader ( )
9797 {
98- var context = new DefaultHttpContext ( ) ;
98+ var context = TestHelper . CreateHttpContext ( ) ;
9999 var headers = context . Response . GetHtmxHeaders ( ) ;
100100
101101 headers . Location = null ! ;
@@ -106,11 +106,37 @@ public void SettingNull_DoesNotAddHeader()
106106 [ Test ]
107107 public void Trigger_IsNull_WhenNotSet ( )
108108 {
109- var context = new DefaultHttpContext ( ) ;
109+ var context = TestHelper . CreateHttpContext ( ) ;
110110 var headers = context . Response . GetHtmxHeaders ( ) ;
111111
112112 Assert . That ( headers . Trigger , Is . Null ) ;
113113 Assert . That ( headers . TriggerAfterSwap , Is . Null ) ;
114114 Assert . That ( headers . TriggerAfterSettle , Is . Null ) ;
115115 }
116+
117+ [ Test ]
118+ public void TriggerTimingProperties_Htmx4_AliasReceiveTrigger ( )
119+ {
120+ var context = TestHelper . CreateHtmxRequestContext ( HtmxTargetVersion . V4 ) ;
121+ var headers = context . Response . GetHtmxHeaders ( ) ;
122+ var events = new Dictionary < string , object > { [ "swapped" ] = true } ;
123+
124+ headers . TriggerAfterSwap = events ;
125+
126+ Assert . Multiple ( ( ) =>
127+ {
128+ Assert . That ( headers . Trigger , Is . EqualTo ( events ) ) ;
129+ Assert . That ( headers . TriggerAfterSwap , Is . EqualTo ( events ) ) ;
130+ Assert . That ( headers . TriggerAfterSettle , Is . EqualTo ( events ) ) ;
131+ } ) ;
132+
133+ PendingEvents . GetOrCreate ( context . Response ) . Flush ( ) ;
134+
135+ Assert . Multiple ( ( ) =>
136+ {
137+ Assert . That ( context . Response . Headers . ContainsKey ( HtmxResponseHeaderNames . Trigger ) , Is . True ) ;
138+ Assert . That ( context . Response . Headers . ContainsKey ( HtmxResponseHeaderNames . TriggerAfterSwap ) , Is . False ) ;
139+ Assert . That ( context . Response . Headers . ContainsKey ( HtmxResponseHeaderNames . TriggerAfterSettle ) , Is . False ) ;
140+ } ) ;
141+ }
116142}
0 commit comments