blob: d961d8b0f08d89653b4aad76ff86d9ac857d5f12 (
plain)
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
|
module SomhairlesDream.Shared.Tests.FrontendContractTests
open System.IO
open Xunit
let private root = Path.GetFullPath(Path.Combine(__SOURCE_DIRECTORY__, "..", ".."))
let private readRelative path = File.ReadAllText(Path.Combine(root, path))
let private assertBrowserContract contents =
Assert.Contains("/api/runs/start", contents)
Assert.Contains("/api/runs/events?projectId=", contents)
Assert.Contains("artifact-manifest-link", contents)
Assert.DoesNotContain("/api/events", contents)
[<Fact>]
let ``frontend source and bundle use the selected artifact run lifecycle`` () =
readRelative "src/SomhairlesDream.Frontend/App.fs"
|> assertBrowserContract
readRelative "public/App.js"
|> assertBrowserContract
let html = readRelative "public/index.html"
Assert.Contains("id=\"run-start-button\"", html)
Assert.Contains("id=\"artifact-manifest-link\"", html)
[<Fact>]
let ``solution contains every project in the artifact pipeline`` () =
let solution = readRelative "SomhairlesDream.sln"
[ "SomhairlesDream.Modeling"
"SomhairlesDream.Cli"
"SomhairlesDream.Modeling.Tests"
"SomhairlesDream.Cli.Tests" ]
|> List.iter (fun project -> Assert.Contains(project, solution))
|