• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MinaProtocol / mina / 538

25 Aug 2025 05:35PM UTC coverage: 61.202% (+0.4%) from 60.772%
538

push

buildkite

web-flow
Merge pull request #17673 from MinaProtocol/amcie-merge-release320-to-master

amcie-merge-release320-to-master

3142 of 4828 new or added lines in 308 files covered. (65.08%)

205 existing lines in 68 files now uncovered.

50733 of 82894 relevant lines covered (61.2%)

470098.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.88
/src/lib/graphql_wrapper/ocaml_graphql_server_tests/variable_test.ml
1
let test_query variables =
2
  Test_common.test_query Echo_schema.schema () ~variables
15✔
3

4
let string_variable_test () =
5
  let variables = [ ("x", `String "foo bar baz") ] in
1✔
6
  let query = "{ string(x: $x) }" in
7
  test_query variables query
8
    (`Assoc [ ("data", `Assoc [ ("string", `String "foo bar baz") ]) ])
9

10
let float_variable_test () =
11
  let variables = [ ("x", `Float 42.5) ] in
1✔
12
  let query = "{ float(x: $x) }" in
13
  test_query variables query
14
    (`Assoc [ ("data", `Assoc [ ("float", `Float 42.5) ]) ])
15

16
let int_variable_test () =
17
  let variables = [ ("x", `Int 42) ] in
1✔
18
  let query = "{ int(x: $x) }" in
19
  test_query variables query (`Assoc [ ("data", `Assoc [ ("int", `Int 42) ]) ])
20

21
let bool_variable_test () =
22
  let variables = [ ("x", `Bool false) ] in
1✔
23
  let query = "{ bool(x: $x) }" in
24
  test_query variables query
25
    (`Assoc [ ("data", `Assoc [ ("bool", `Bool false) ]) ])
26

27
let enum_variable_test () =
28
  let variables = [ ("x", `Enum "RED") ] in
1✔
29
  let query = "{ enum(x: $x) }" in
30
  test_query variables query
31
    (`Assoc [ ("data", `Assoc [ ("enum", `String "RED") ]) ])
32

33
let list_variable_test () =
34
  let variables = [ ("x", `List [ `Bool true; `Bool false ]) ] in
1✔
35
  let query = "{ bool_list(x: [false, true]) }" in
36
  test_query variables query
37
    (`Assoc
38
      [ ("data", `Assoc [ ("bool_list", `List [ `Bool false; `Bool true ]) ]) ]
39
      )
40

41
let input_object_variable_test () =
42
  let obj =
1✔
43
    `Assoc
44
      [ ("title", `String "Mr")
45
      ; ("first_name", `String "John")
46
      ; ("last_name", `String "Doe")
47
      ]
48
  in
49
  let variables = [ ("x", obj) ] in
50
  let query =
51
    "{ input_obj(x: {title: \"Mr\", first_name: \"John\", last_name: \"Doe\"}) \
52
     }"
53
  in
54
  test_query variables query
55
    (`Assoc [ ("data", `Assoc [ ("input_obj", `String "John Doe") ]) ])
56

57
let null_for_optional_variable_test () =
58
  test_query
1✔
59
    [ ("x", `Null) ]
60
    "{ string(x: $x) }"
61
    (`Assoc [ ("data", `Assoc [ ("string", `Null) ]) ])
62

63
let null_for_required_variable_test () =
64
  let variables = [ ("x", `Null) ] in
1✔
65
  let query = "{ input_obj(x: $x) }" in
66
  test_query variables query
67
    (`Assoc
68
      [ ( "errors"
69
        , `List
70
            [ `Assoc
71
                [ ( "message"
72
                  , `String
73
                      "Argument `x` of type `person!` expected on field \
74
                       `input_obj`, found null." )
75
                ]
76
            ] )
77
      ; ("data", `Null)
78
      ] )
79

80
let variable_coercion_single_value_to_list_test () =
81
  let variables = [ ("x", `Bool false) ] in
1✔
82
  let query = "{ bool_list(x: $x) }" in
83
  test_query variables query
84
    (`Assoc [ ("data", `Assoc [ ("bool_list", `List [ `Bool false ]) ]) ])
85

86
let variable_coercion_int_to_float_test () =
87
  let variables = [ ("x", `Int 42) ] in
1✔
88
  let query = "{ float(x: $x) }" in
89
  test_query variables query
90
    (`Assoc [ ("data", `Assoc [ ("float", `Float 42.0) ]) ])
91

92
let variable_coercion_int_to_id_test () =
93
  let variables = [ ("x", `Int 42) ] in
1✔
94
  let query = "{ id(x: $x) }" in
95
  test_query variables query
96
    (`Assoc [ ("data", `Assoc [ ("id", `String "42") ]) ])
97

98
let variable_coercion_string_to_id_test () =
99
  let variables = [ ("x", `String "42") ] in
1✔
100
  let query = "{ id(x: $x) }" in
101
  test_query variables query
102
    (`Assoc [ ("data", `Assoc [ ("id", `String "42") ]) ])
103

104
let default_variable_test () =
105
  let query = "query has_defaults($x : Int! = 42) { int(x: $x) }" in
1✔
106
  test_query [] query (`Assoc [ ("data", `Assoc [ ("int", `Int 42) ]) ])
107

108
let variable_overrides_default_variable_test () =
109
  let variables = [ ("x", `Int 43) ] in
1✔
110
  let query = "query has_defaults($x : Int! = 42) { int(x: $x) }" in
111
  test_query variables query (`Assoc [ ("data", `Assoc [ ("int", `Int 43) ]) ])
112

113
(* Run tests *)
114
let () =
NEW
115
  Alcotest.run "GraphQL Variable Tests"
×
116
    [ ( "variable handling"
117
      , [ Alcotest.test_case "string variable" `Quick string_variable_test
1✔
118
        ; Alcotest.test_case "float variable" `Quick float_variable_test
1✔
119
        ; Alcotest.test_case "int variable" `Quick int_variable_test
1✔
120
        ; Alcotest.test_case "bool variable" `Quick bool_variable_test
1✔
121
        ; Alcotest.test_case "enum variable" `Quick enum_variable_test
1✔
122
        ; Alcotest.test_case "list variable" `Quick list_variable_test
1✔
123
        ; Alcotest.test_case "input object variable" `Quick
1✔
124
            input_object_variable_test
125
        ; Alcotest.test_case "null for optional variable" `Quick
1✔
126
            null_for_optional_variable_test
127
        ; Alcotest.test_case "null for required variable" `Quick
1✔
128
            null_for_required_variable_test
129
        ; Alcotest.test_case "variable coercion: single value to list" `Quick
1✔
130
            variable_coercion_single_value_to_list_test
131
        ; Alcotest.test_case "variable coercion: int to float" `Quick
1✔
132
            variable_coercion_int_to_float_test
133
        ; Alcotest.test_case "variable coercion: int to ID" `Quick
1✔
134
            variable_coercion_int_to_id_test
135
        ; Alcotest.test_case "variable coercion: string to ID" `Quick
1✔
136
            variable_coercion_string_to_id_test
137
        ; Alcotest.test_case "default variable" `Quick default_variable_test
1✔
138
        ; Alcotest.test_case "variable overrides default variable" `Quick
1✔
139
            variable_overrides_default_variable_test
140
        ] )
141
    ]
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc