Skip to content

Commit 521ee3c

Browse files
1eyewonderTheAngryByrd
authored andcommitted
Formatted with fantomas
1 parent d019eca commit 521ee3c

File tree

3 files changed

+165
-46
lines changed

3 files changed

+165
-46
lines changed

src/FsToolkit.ErrorHandling/AsyncValidation.fs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ module AsyncValidation =
5454
: AsyncValidation<'ok, 'errorOutput> =
5555
async {
5656
let! result = result
57+
5758
return!
5859
result
5960
|> Result.either ok (fun _ -> ifError)
@@ -65,6 +66,7 @@ module AsyncValidation =
6566
: AsyncValidation<'ok, 'errorOutput> =
6667
async {
6768
let! result = result
69+
6870
return!
6971
match result with
7072
| Ok x -> ok x

src/FsToolkit.ErrorHandling/AsyncValidationCE.fs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ module AsyncValidationCE =
88
type AsyncValidationBuilder() =
99
member inline _.Return(value: 'ok) : AsyncValidation<'ok, 'error> = AsyncValidation.ok value
1010

11-
member inline _.ReturnFrom(result: AsyncValidation<'ok, 'error>) : AsyncValidation<'ok, 'error> =
11+
member inline _.ReturnFrom
12+
(result: AsyncValidation<'ok, 'error>)
13+
: AsyncValidation<'ok, 'error> =
1214
result
1315

1416
member inline _.Bind
@@ -80,13 +82,15 @@ module AsyncValidationCE =
8082

8183
async {
8284
while doContinue
83-
&& guard () do
85+
&& guard () do
8486
let! x = generator ()
87+
8588
match x with
8689
| Ok() -> ()
8790
| Error e ->
8891
doContinue <- false
8992
result <- Error e
93+
9094
return result
9195
}
9296

@@ -121,7 +125,10 @@ module AsyncValidationCE =
121125
/// </summary>
122126
/// <param name="result"></param>
123127
/// <returns></returns>
124-
member inline _.Source(result: AsyncValidation<'ok, 'error>) : AsyncValidation<'ok, 'error> = result
128+
member inline _.Source
129+
(result: AsyncValidation<'ok, 'error>)
130+
: AsyncValidation<'ok, 'error> =
131+
result
125132

126133
let asyncValidation = AsyncValidationBuilder()
127134

tests/FsToolkit.ErrorHandling.Tests/AsyncValidation.fs

Lines changed: 153 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,40 @@ let map2Tests =
1919
testCaseAsync "map2 with two ok parts"
2020
<| async {
2121
let! result = AsyncValidation.map2 location (lift validLatR) (lift validLngR)
22-
return result |> Expect.hasOkValue validLocation
22+
23+
return
24+
result
25+
|> Expect.hasOkValue validLocation
2326
}
2427

2528
testCaseAsync "map2 with one Error and one Ok parts"
2629
<| async {
2730
let! result = AsyncValidation.map2 location (lift invalidLatR) (lift validLngR)
28-
return result |> Expect.hasErrorValue [ invalidLatMsg ]
31+
32+
return
33+
result
34+
|> Expect.hasErrorValue [ invalidLatMsg ]
2935
}
3036

3137
testCaseAsync "map2 with one Ok and one Error parts"
3238
<| async {
3339
let! result = AsyncValidation.map2 location (lift validLatR) (lift invalidLngR)
34-
return result |> Expect.hasErrorValue [ invalidLngMsg ]
40+
41+
return
42+
result
43+
|> Expect.hasErrorValue [ invalidLngMsg ]
3544
}
3645

3746
testCaseAsync "map2 with two Error parts"
3847
<| async {
3948
let! result = AsyncValidation.map2 location (lift invalidLatR) (lift invalidLngR)
40-
return result
41-
|> Expect.hasErrorValue [
42-
invalidLatMsg
43-
invalidLngMsg
44-
]
49+
50+
return
51+
result
52+
|> Expect.hasErrorValue [
53+
invalidLatMsg
54+
invalidLngMsg
55+
]
4556
}
4657
]
4758

@@ -55,6 +66,7 @@ let map3Tests =
5566
(lift validLatR)
5667
(lift validLngR)
5768
(lift validTweetR)
69+
5870
return
5971
result
6072
|> Expect.hasOkValue validCreatePostRequest
@@ -68,6 +80,7 @@ let map3Tests =
6880
(lift invalidLatR)
6981
(lift validLngR)
7082
(lift validTweetR)
83+
7184
return
7285
result
7386
|> Expect.hasErrorValue [ invalidLatMsg ]
@@ -81,6 +94,7 @@ let map3Tests =
8194
(lift validLatR)
8295
(lift invalidLngR)
8396
(lift validTweetR)
97+
8498
return
8599
result
86100
|> Expect.hasErrorValue [ invalidLngMsg ]
@@ -95,8 +109,10 @@ let map3Tests =
95109
(lift validLatR)
96110
(lift validLngR)
97111
(lift emptyInvalidTweetR)
112+
98113
return
99-
result |> Expect.hasErrorValue [ emptyTweetErrMsg ]
114+
result
115+
|> Expect.hasErrorValue [ emptyTweetErrMsg ]
100116
}
101117

102118
testCaseAsync "map3 with (Error, Error, Error)"
@@ -107,6 +123,7 @@ let map3Tests =
107123
(lift invalidLatR)
108124
(lift invalidLngR)
109125
(lift emptyInvalidTweetR)
126+
110127
return
111128
result
112129
|> Expect.hasErrorValue [
@@ -126,15 +143,27 @@ let applyTests =
126143
let! result =
127144
Tweet.TryCreate "foobar"
128145
|> lift
129-
|> AsyncValidation.apply (Ok remainingCharacters |> Async.retn)
130-
return result |> Expect.hasOkValue 274
146+
|> AsyncValidation.apply (
147+
Ok remainingCharacters
148+
|> Async.retn
149+
)
150+
151+
return
152+
result
153+
|> Expect.hasOkValue 274
131154
}
132155

133156
testCaseAsync "apply with Error"
134157
<| async {
135158
let! result =
136-
AsyncValidation.apply (Ok remainingCharacters |> Async.retn) (lift emptyInvalidTweetR)
137-
return result |> Expect.hasErrorValue [ emptyTweetErrMsg ]
159+
AsyncValidation.apply
160+
(Ok remainingCharacters
161+
|> Async.retn)
162+
(lift emptyInvalidTweetR)
163+
164+
return
165+
result
166+
|> Expect.hasErrorValue [ emptyTweetErrMsg ]
138167
}
139168
]
140169

@@ -149,8 +178,14 @@ let operatorsTests =
149178
<!> (lift validLatR)
150179
<*> (lift validLngR)
151180
<*> (lift validTweetR)
152-
>>= (fun tweet -> Ok tweet |> Async.retn)
153-
return result |> Expect.hasOkValue validCreatePostRequest
181+
>>= (fun tweet ->
182+
Ok tweet
183+
|> Async.retn
184+
)
185+
186+
return
187+
result
188+
|> Expect.hasOkValue validCreatePostRequest
154189
}
155190
testCaseAsync "map^ & apply^ operators"
156191
<| async {
@@ -159,25 +194,44 @@ let operatorsTests =
159194
<!^> validLatR
160195
<*^> validLngR
161196
<*^> validTweetR
162-
return result |> Expect.hasOkValue validCreatePostRequest
197+
198+
return
199+
result
200+
|> Expect.hasOkValue validCreatePostRequest
163201
}
164202
]
165203

166204
let zipTests =
167205
testList "zip tests" [
168206
testCaseAsync "Ok, Ok"
169207
<| async {
170-
let! actual = AsyncValidation.zip (Ok 1 |> Async.retn) (Ok 2 |> Async.retn)
208+
let! actual =
209+
AsyncValidation.zip
210+
(Ok 1
211+
|> Async.retn)
212+
(Ok 2
213+
|> Async.retn)
214+
171215
Expect.equal actual (Ok(1, 2)) "Should be ok"
172216
}
173217
testCaseAsync "Ok, Error"
174218
<| async {
175-
let! actual = AsyncValidation.zip (Ok 1 |> Async.retn) (AsyncValidation.error "Bad")
219+
let! actual =
220+
AsyncValidation.zip
221+
(Ok 1
222+
|> Async.retn)
223+
(AsyncValidation.error "Bad")
224+
176225
Expect.equal actual (Error [ "Bad" ]) "Should be Error"
177226
}
178227
testCaseAsync "Error, Ok"
179228
<| async {
180-
let! actual = AsyncValidation.zip (AsyncValidation.error "Bad") (Ok 1 |> Async.retn)
229+
let! actual =
230+
AsyncValidation.zip
231+
(AsyncValidation.error "Bad")
232+
(Ok 1
233+
|> Async.retn)
234+
181235
Expect.equal actual (Error [ "Bad" ]) "Should be Error"
182236
}
183237
testCaseAsync "Error, Error"
@@ -201,30 +255,58 @@ let orElseTests =
201255
testCaseAsync "Ok Ok takes first Ok"
202256
<| async {
203257
let! result =
204-
(Ok "First" |> Async.retn)
205-
|> AsyncValidation.orElse (Ok "Second" |> Async.retn)
206-
return result |> Expect.hasOkValue "First"
258+
(Ok "First"
259+
|> Async.retn)
260+
|> AsyncValidation.orElse (
261+
Ok "Second"
262+
|> Async.retn
263+
)
264+
265+
return
266+
result
267+
|> Expect.hasOkValue "First"
207268
}
208269
testCaseAsync "Ok Error takes first Ok"
209270
<| async {
210271
let! result =
211-
(Ok "First"|> Async.retn)
212-
|> AsyncValidation.orElse (Error [ "Second" ] |> Async.retn)
213-
return result |> Expect.hasOkValue "First"
272+
(Ok "First"
273+
|> Async.retn)
274+
|> AsyncValidation.orElse (
275+
Error [ "Second" ]
276+
|> Async.retn
277+
)
278+
279+
return
280+
result
281+
|> Expect.hasOkValue "First"
214282
}
215283
testCaseAsync "Error Ok takes second Ok"
216284
<| async {
217285
let! result =
218-
(Error [ "First" ] |> Async.retn)
219-
|> AsyncValidation.orElse (Ok "Second" |> Async.retn)
220-
return result |> Expect.hasOkValue "Second"
286+
(Error [ "First" ]
287+
|> Async.retn)
288+
|> AsyncValidation.orElse (
289+
Ok "Second"
290+
|> Async.retn
291+
)
292+
293+
return
294+
result
295+
|> Expect.hasOkValue "Second"
221296
}
222297
testCaseAsync "Error Error takes second error"
223298
<| async {
224299
let! result =
225-
(Error [ "First" ] |> Async.retn)
226-
|> AsyncValidation.orElse (Error [ "Second" ] |> Async.retn)
227-
return result |> Expect.hasErrorValue [ "Second" ]
300+
(Error [ "First" ]
301+
|> Async.retn)
302+
|> AsyncValidation.orElse (
303+
Error [ "Second" ]
304+
|> Async.retn
305+
)
306+
307+
return
308+
result
309+
|> Expect.hasErrorValue [ "Second" ]
228310
}
229311
]
230312

@@ -233,30 +315,58 @@ let orElseWithTests =
233315
testCaseAsync "Ok Ok takes first Ok"
234316
<| async {
235317
let! result =
236-
(Ok "First" |> Async.retn)
237-
|> AsyncValidation.orElseWith (fun _ -> Ok "Second" |> Async.retn)
238-
return result |> Expect.hasOkValue "First"
318+
(Ok "First"
319+
|> Async.retn)
320+
|> AsyncValidation.orElseWith (fun _ ->
321+
Ok "Second"
322+
|> Async.retn
323+
)
324+
325+
return
326+
result
327+
|> Expect.hasOkValue "First"
239328
}
240329
testCaseAsync "Ok Error takes first Ok"
241330
<| async {
242331
let! result =
243-
(Ok "First" |> Async.retn)
244-
|> AsyncValidation.orElseWith (fun _ -> Error [ "Second" ] |> Async.retn)
245-
return result |> Expect.hasOkValue "First"
332+
(Ok "First"
333+
|> Async.retn)
334+
|> AsyncValidation.orElseWith (fun _ ->
335+
Error [ "Second" ]
336+
|> Async.retn
337+
)
338+
339+
return
340+
result
341+
|> Expect.hasOkValue "First"
246342
}
247343
testCaseAsync "Error Ok takes second Ok"
248344
<| async {
249345
let! result =
250-
(Error [ "First" ]|> Async.retn)
251-
|> AsyncValidation.orElseWith (fun _ -> Ok "Second" |> Async.retn)
252-
return result |> Expect.hasOkValue "Second"
346+
(Error [ "First" ]
347+
|> Async.retn)
348+
|> AsyncValidation.orElseWith (fun _ ->
349+
Ok "Second"
350+
|> Async.retn
351+
)
352+
353+
return
354+
result
355+
|> Expect.hasOkValue "Second"
253356
}
254357
testCaseAsync "Error Error takes second error"
255358
<| async {
256359
let! result =
257-
(Error [ "First" ]|> Async.retn)
258-
|> AsyncValidation.orElseWith (fun _ -> Error [ "Second" ] |> Async.retn)
259-
return result |> Expect.hasErrorValue [ "Second" ]
360+
(Error [ "First" ]
361+
|> Async.retn)
362+
|> AsyncValidation.orElseWith (fun _ ->
363+
Error [ "Second" ]
364+
|> Async.retn
365+
)
366+
367+
return
368+
result
369+
|> Expect.hasErrorValue [ "Second" ]
260370
}
261371
]
262372

0 commit comments

Comments
 (0)