@@ -225,7 +225,7 @@ public async Task CanCallFunctionInARealm()
225225
226226 [ Test ]
227227 [ TestCaseSource ( nameof ( RoundtripOptions ) ) ]
228- public async Task CanCallFunctionAndRoundtrip_Five ( LocalValue local , RemoteValue returned , string javaScriptAssert )
228+ public async Task CanCallFunctionAndRoundtrip_Five ( LocalValue local , RemoteValue expected , string javaScriptAssert )
229229 {
230230 var response = await context . Script . CallFunctionAsync ( $$ """
231231 (arg) => {
@@ -237,27 +237,31 @@ public async Task CanCallFunctionAndRoundtrip_Five(LocalValue local, RemoteValue
237237 }
238238 """ , false , new ( ) { Arguments = [ local ] } ) ;
239239
240- if ( response . Result is RemoteValue . Array arrayResponse && returned is RemoteValue . Array expectedArray )
240+ if ( response . Result is RemoteValue . Array actualArray && expected is RemoteValue . Array expectedArray )
241241 {
242- Assert . That ( arrayResponse . Value , Is . EqualTo ( expectedArray . Value ) ) ;
242+ Assert . That ( actualArray . Value , Is . EqualTo ( expectedArray . Value ) ) ;
243243 }
244- else if ( response . Result is RemoteValue . Object objectResponse && returned is RemoteValue . Object expectedObject )
244+ else if ( response . Result is RemoteValue . Object actualObject && expected is RemoteValue . Object expectedObject )
245245 {
246- Assert . That ( objectResponse . Value , Is . EqualTo ( expectedObject . Value ) ) ;
246+ Assert . That ( actualObject . Value , Is . EqualTo ( expectedObject . Value ) ) ;
247247 }
248- else if ( response . Result is RemoteValue . Map mapResponse && returned is RemoteValue . Map expectedMap )
248+ else if ( response . Result is RemoteValue . Map actualMap && expected is RemoteValue . Map expectedMap )
249249 {
250- Assert . That ( mapResponse . Value , Is . EqualTo ( expectedMap . Value ) ) ;
250+ Assert . That ( actualMap . Value , Is . EqualTo ( expectedMap . Value ) ) ;
251251 }
252- else if ( response . Result is RemoteValue . Date dateResponse && returned is RemoteValue . Date expectedDate )
252+ else if ( response . Result is RemoteValue . Set actualSet && expected is RemoteValue . Set expectedSet )
253253 {
254- var actualDate = DateTime . SpecifyKind ( DateTime . Parse ( dateResponse . Value , CultureInfo . InvariantCulture ) , DateTimeKind . Utc ) ;
255- Assert . That ( actualDate . Kind , Is . EqualTo ( DateTimeKind . Utc ) ) ;
256- Assert . That ( actualDate , Is . EqualTo ( DateTime . Parse ( expectedDate . Value ) ) . Within ( TimeSpan . FromMilliseconds ( 1 ) ) ) ;
254+ Assert . That ( actualSet . Value , Is . EqualTo ( expectedSet . Value ) ) ;
255+ }
256+ else if ( response . Result is RemoteValue . Date actualDate && expected is RemoteValue . Date expectedDate )
257+ {
258+ var actualDateParsed = DateTime . SpecifyKind ( DateTime . Parse ( actualDate . Value , CultureInfo . InvariantCulture ) , DateTimeKind . Utc ) ;
259+ Assert . That ( actualDateParsed . Kind , Is . EqualTo ( DateTimeKind . Utc ) ) ;
260+ Assert . That ( actualDateParsed , Is . EqualTo ( DateTime . Parse ( expectedDate . Value ) ) . Within ( TimeSpan . FromMilliseconds ( 1 ) ) ) ;
257261 }
258262 else
259263 {
260- Assert . That ( response . Result , Is . EqualTo ( returned ) ) ;
264+ Assert . That ( response . Result , Is . EqualTo ( expected ) ) ;
261265 }
262266 }
263267 private const string PinnedDateTimeString = "2025-03-09T00:30:33.083Z" ;
@@ -357,5 +361,16 @@ private static IEnumerable<TestCaseData> RoundtripOptions()
357361 {
358362 TestName = nameof ( CanCallFunctionAndRoundtrip_Five ) + "(Map({'key': 'value'}))" ,
359363 } ;
364+
365+ yield return new TestCaseData
366+ (
367+ new LocalValue . Set ( [ new LocalValue . String ( "key" ) ] ) ,
368+ new RemoteValue . Set { Value = [ new RemoteValue . String ( "key" ) ] } ,
369+ "arg.has('key') && arg.size === 1"
370+ )
371+ {
372+ TestName = nameof ( CanCallFunctionAndRoundtrip_Five ) + "(Set({'key'}))" ,
373+
374+ } ;
360375 }
361376}
0 commit comments