-
Notifications
You must be signed in to change notification settings - Fork 59
/
Copy pathSwagger.GitHub.Tests.fs
56 lines (39 loc) · 1.27 KB
/
Swagger.GitHub.Tests.fs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
module Swagger.GitHub.Tests
open SwaggerProvider
open Xunit
open FsUnitTyped
open System
open System.Net.Http
[<Literal>]
let Schema = __SOURCE_DIRECTORY__ + "/../Schemas/v2/github.json"
[<Literal>]
let UserAgent =
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
[<Literal>]
let Host = "https://api.github.com"
type GitHub = SwaggerClientProvider<Schema, PreferAsync=true>
let github() =
let client = GitHub.Client()
client.HttpClient.BaseAddress <- Uri Host
client.HttpClient.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", UserAgent)
|> ignore
client
type TaskGitHub = SwaggerClientProvider<Schema>
let taskGitHub() =
let client = TaskGitHub.Client()
client.HttpClient.BaseAddress <- Uri Host
client.HttpClient.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", UserAgent)
|> ignore
client
[<Fact>] // Explicit
let ``Get fsprojects from GitHub``() =
task {
let! repos = github().OrgRepos("fsprojects")
repos.Length |> shouldBeGreaterThan 0
}
[<Fact>]
let ``Get fsproject from GitHub with Task``() =
task {
let! repos = taskGitHub().OrgRepos("fsprojects")
repos.Length |> shouldBeGreaterThan 0
}