Skip to content

Commit f05c193

Browse files
authored
Merge pull request #476 from walmartlabs/hls/20260602-fix-448-tracing-validation
fix: tracing validation fields always null (#448)
2 parents 5583a02 + 385e2b6 commit f05c193

3 files changed

Lines changed: 14 additions & 4 deletions

File tree

src/com/walmartlabs/lacinia.clj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@
5757
(resolve/resolve-as {:errors validation-errors})
5858

5959
:else
60-
(executor/execute-query (assoc context constants/parsed-query-key prepared
61-
::tracing/validation {:start-offset start-offset
62-
:duration (tracing/duration start-nanos)}))))
60+
(executor/execute-query (assoc context constants/parsed-query-key (assoc prepared
61+
::tracing/validation {:start-offset start-offset
62+
:duration (tracing/duration start-nanos)})))))
6363

6464
(defn execute-parsed-query
6565
"Prepares a query, by applying query variables to it, resulting in a prepared

src/com/walmartlabs/lacinia/executor.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@
417417
*resolver-tracing
418418
(tracing/inject-tracing timing-start
419419
(::tracing/parsing parsed-query)
420-
(::tracing/validation context)
420+
(::tracing/validation parsed-query)
421421
@*resolver-tracing)
422422
errors (assoc :errors (distinct errors))
423423
warnings (assoc-in [:extensions :warnings] (distinct warnings))))))))

test/com/walmartlabs/lacinia/tracing_test.clj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,13 @@
100100
(let [durations (->> (get-in result [:extensions :tracing :execution :resolvers])
101101
(mapv :duration))]
102102
(is (= 6 (count durations)))))))
103+
104+
(deftest parsing-and-validation-timings-are-non-nil
105+
;; Regression test for https://github.com/walmartlabs/lacinia/issues/448
106+
(let [result (q "{ root(delay: 5) { simple }}" enable-timing)
107+
{:keys [parsing validation]} (get-in result [:extensions :tracing])]
108+
(reporting result
109+
(is (some? (:startOffset parsing)) "parsing startOffset should not be nil")
110+
(is (pos? (:duration parsing)) "parsing duration should be positive")
111+
(is (some? (:startOffset validation)) "validation startOffset should not be nil")
112+
(is (pos? (:duration validation)) "validation duration should be positive"))))

0 commit comments

Comments
 (0)