Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Commit 50fb4be

Browse files
committed
Add pinning tests for Url concatenation behavior
1 parent 98fc824 commit 50fb4be

2 files changed

Lines changed: 33 additions & 2 deletions

File tree

tests/CallPolly.Acceptance/Scenarios.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ type Scenarios(output : Xunit.Abstractions.ITestOutputHelper) =
257257
let! time, res = List.init 1000 alternateBetweenTwoUpstreams |> Async.Parallel |> Stopwatch.Time
258258
let counts = res |> Seq.countBy (function Status s -> s) |> Seq.sortBy fst |> List.ofSeq
259259
test <@ match counts with [200,successCount; 503,rejectCount] -> successCount < 100 && rejectCount > 800 | x -> failwithf "%A" x @>
260-
test <@ between 0.3 2. (let t = time.Elapsed in t.TotalSeconds) @>
260+
test <@ between 0.3 2.5 (let t = time.Elapsed in t.TotalSeconds) @>
261261
}
262262

263263
let readDefinitions () =

tests/CallPolly.Tests/ParsingTests.fs

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,4 +118,35 @@ type ConfigParsing(output : Xunit.Abstractions.ITestOutputHelper) =
118118

119119
let res = Parser.parse(defs).CreatePolicy log
120120
let effectiveUri = trap <@ res.TryFind("svc","call").Value.Config.EffectiveUri |> Option.get @>
121-
test <@ "https://base/api/call" = string effectiveUri @>
121+
test <@ "https://base/api/call" = string effectiveUri @>
122+
123+
let [<Fact>] ``Base Uris with leading and trailing slashes don't yield double-slashed URIs`` () : unit =
124+
let defs = """{ "services": { "svc": {
125+
"calls": { "call": "default" },
126+
"defaultPolicy": null,
127+
"policies": {
128+
"default" : [
129+
{ "rule": "Uri", "base": "https://base/", "path": "/call" }
130+
]
131+
}
132+
}}}"""
133+
134+
let res = Parser.parse(defs).CreatePolicy log
135+
let effectiveUri = trap <@ res.TryFind("svc","call").Value.Config.EffectiveUri |> Option.get @>
136+
test <@ "https://base/call" = string effectiveUri @>
137+
138+
139+
let [<Fact>] ``Paths with leading slashes override base paths in a base Uri`` () : unit =
140+
let defs = """{ "services": { "svc": {
141+
"calls": { "call": "default" },
142+
"defaultPolicy": null,
143+
"policies": {
144+
"default" : [
145+
{ "rule": "Uri", "base": "https://base/api/", "path": "/call" }
146+
]
147+
}
148+
}}}"""
149+
150+
let res = Parser.parse(defs).CreatePolicy log
151+
let effectiveUri = trap <@ res.TryFind("svc","call").Value.Config.EffectiveUri |> Option.get @>
152+
test <@ "https://base/call" = string effectiveUri @>

0 commit comments

Comments
 (0)