   (is (= {:error-type :value-predicate-error
           :error-key :onyx/name
           :error-value "hello"
-          :predicate 'task-name?}
+          :predicate 'task-name?
+          :path [:onyx/name]}
          (validate! os/TaskMap {:onyx/name "hello"
                                 :onyx/type :input
                                 :onyx/plugin :a

          :expected-type java.lang.String
          :found-type java.lang.Long
          :error-value 42
          :error-key :onyx/doc}
         (validate! os/TaskMap {:onyx/name :hello
                                :onyx/type :input
                                :onyx/plugin :a

  (try
    (s/validate schema v)
    (catch Throwable t
      (a/analyze-error {} t))))

(deftest workflow-errors
  (is (= {:error-type :value-predicate-error
          :error-key 1
          :error-value "b"
          :predicate 'task-name?
          :path [0 1]}
         (validate! os/Workflow [[:a "b"]])))

  (is (= {:error-type :type-error
          :expected-type clojure.lang.PersistentVector
          :found-type clojure.lang.Keyword
          :error-key 1
          :error-value :c
          :path [1]}
         (validate! os/Workflow [[:a :b] :c])))

  (is (= {:error-type :constraint-violated
          :predicate 'edge-two-nodes?
          :path [0]}
         (validate! os/Workflow [[:a :b :c]]))))

(deftest task-map-errors
  (is (= {:error-type :conditional-failed
          :error-key nil
          :error-value {}
          :path nil
          :predicates '[onyx-input-task-type
                        onyx-output-task-type
                        onyx-function-task-type]}
