@@ -212,7 +212,7 @@ let sequenceAsyncTests =
212212 ]
213213
214214let sequenceAsyncResultTests =
215- ftestList " Option.sequenceAsyncResult Tests" [
215+ testList " Option.sequenceAsyncResult Tests" [
216216 testCaseAsync " sequenceAsyncResult returns the async Ok value if Some"
217217 <| async {
218218 let optAsyncOk =
@@ -251,9 +251,6 @@ let sequenceAsyncResultTests =
251251
252252 let valueNone = Expect.wantOk valueRes " Expect to get back OK"
253253 Expect.isNone valueNone " Expect to get back None"
254-
255- // check things actually fail when fail
256- Expect.isSome valueNone " This should fail"
257254 }
258255 ]
259256
@@ -305,23 +302,60 @@ let traverseResultTests =
305302 |> Expect.hasOkValue ( Some validLng)
306303 ]
307304
308- // to do
309- // let traverseAsyncResultTests =
310- // testList "Option.traverseAsyncResult Tests" [
311- // testCaseAsync "traverseAsyncResult with valid latitute data"
312- // <| async {
313- // let tryCreateLatAsync = fun l -> async { return Latitude.TryCreate l }
314- //
315- // let! valueRes =
316- // Some lat
317- // |> Option.traverseAsyncResult tryCreateLatAsync
318- //
319- // let value = Expect.wantOk valueRes "Expect to get OK"
320- // Expect.equal value (Some validLat) "Expect to get valid latitute"
321- //
322- // }
323- //
324- // ]
305+ let traverseAsyncResultTests =
306+ testList " Option.traverseAsyncResult Tests" [
307+ testCaseAsync " traverseAsyncResult with valid latitute data"
308+ <| async {
309+ let tryCreateLatAsync = fun l -> async { return Latitude.TryCreate l }
310+
311+ let! valueRes =
312+ Some lat
313+ |> Option.traverseAsyncResult tryCreateLatAsync
314+
315+ let value = Expect.wantOk valueRes " Expect to get OK"
316+ Expect.equal value ( Some validLat) " Expect to get valid latitute"
317+ }
318+
319+ testCaseAsync " traverseAsyncResult id returns async Ok value if Some"
320+ <| async {
321+ let optAsyncOk =
322+ async { return Ok " foo" }
323+ |> Some
324+
325+ let! valueRes =
326+ optAsyncOk
327+ |> Option.traverseAsyncResult id
328+
329+ let value = Expect.wantOk valueRes " Expect to get back OK"
330+ Expect.equal value ( Some " foo" ) " Expect to get back value"
331+ }
332+
333+ testCaseAsync " traverseAsyncResult id returns the async Error value if Some"
334+ <| async {
335+ let optAsyncOk =
336+ async { return Error " error" }
337+ |> Some
338+
339+ let! valueRes =
340+ optAsyncOk
341+ |> Option.traverseAsyncResult id
342+
343+ let errorValue = Expect.wantError valueRes " Expect to get back Error"
344+ Expect.equal errorValue " error" " Expect to get back the error value"
345+ }
346+
347+ testCaseAsync " traverseAsyncResult id returns None if None"
348+ <| async {
349+ let optAsyncNone = None
350+
351+ let! valueRes =
352+ optAsyncNone
353+ |> Option.traverseAsyncResult id
354+
355+ let valueNone = Expect.wantOk valueRes " Expect to get back OK"
356+ Expect.isNone valueNone " Expect to get back None"
357+ }
358+ ]
325359
326360let tryParseTests =
327361 testList " Option.tryParse" [
@@ -490,8 +524,10 @@ let optionOperatorsTests =
490524let allTests =
491525 testList " Option Tests" [
492526 sequenceAsyncTests
527+ sequenceAsyncResultTests
493528 traverseAsyncTests
494529 traverseResultTests
530+ traverseAsyncResultTests
495531 tryParseTests
496532 tryGetValueTests
497533 ofResultTests
0 commit comments