Skip to content

Commit a3ec328

Browse files
Viktor Tochonovxperiandri
authored andcommitted
Created reproduction test
1 parent bbc6d3e commit a3ec328

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

tests/FSharp.Data.GraphQL.Tests/MiddlewareTests.fs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,3 +1075,53 @@ let ``Object list filter: Must return empty filter when no discriminated union t
10751075
let query = parse """query testQuery() { Properties { __typename } }"""
10761076
let result = execute query
10771077
ensureDirect result <| fun _ errors -> empty errors
1078+
1079+
[<Fact>]
1080+
let ``Object list filter: Must parse filter value through variable`` () =
1081+
// TODO: fix parsing in SchemaDefinitions.fs : line 94
1082+
let query =
1083+
parse
1084+
"""query testQuery($filter: String) {
1085+
A (id : 1) {
1086+
id
1087+
value
1088+
subjects (filter : {value_starts_with : $filter}) { ...Value }
1089+
}
1090+
}
1091+
1092+
fragment Value on Subject {
1093+
...on A {
1094+
id
1095+
value
1096+
}
1097+
...on B {
1098+
id
1099+
value
1100+
}
1101+
}"""
1102+
let expected =
1103+
NameValueLookup.ofList [
1104+
"A",
1105+
upcast
1106+
NameValueLookup.ofList [
1107+
"id", upcast 1
1108+
"value", upcast "A1"
1109+
"subjects",
1110+
upcast
1111+
[
1112+
NameValueLookup.ofList [ "id", upcast 2; "value", upcast "A2" ]
1113+
NameValueLookup.ofList [ "id", upcast 6; "value", upcast "3000" ]
1114+
]
1115+
]
1116+
]
1117+
do
1118+
let filterValue = "3" |> JsonDocument.Parse |> _.RootElement
1119+
let variables = ImmutableDictionary<string, JsonElement>.Empty.Add ("filter", filterValue)
1120+
let filter = (StartsWith { FieldName = "value"; Value = "3" })
1121+
let expectedFilter : KeyValuePair<obj list, _> = kvp ([ "A"; "subjects" ]) (filter)
1122+
let result = executeAndVerifyFilter (query, variables, filter)
1123+
1124+
ensureDirect result <| fun data errors ->
1125+
empty errors
1126+
data |> equals (upcast expected)
1127+
result.Metadata.TryFind<ObjectListFilters> ("filters") |> wantValueSome |> seqEquals [ expectedFilter ]

0 commit comments

Comments
 (0)