Skip to content

Commit

Permalink
tests: actualize
Browse files Browse the repository at this point in the history
  • Loading branch information
armed committed Jul 1, 2022
1 parent e8aa274 commit 4caeae5
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 28 deletions.
10 changes: 8 additions & 2 deletions test/k16/gx/beta/core_test.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,8 @@
(fn [gx-map]
(is (= {:internal-data
{:ex-message "Invalid arity: 0",
:args {:props {}, :value nil, :instance nil}},
:args {:props {}, :value nil,
:instance nil, :state :uninitialised}},
:message "Signal processor error",
:error-type :node-signal, :node-key :a,
:node-contents '(get),
Expand Down Expand Up @@ -548,7 +549,12 @@
:deps-from :gx/start}}}]
(testing "should check for circular deps-from"
(is (= "circular :gx/start -> :gx/stop -> :gx/start"
(first (gx/validate-context context)))))))
(-> (gx/with-context-failures {:context context})
:failures
(first)
:internal-data
:errors
first))))))

(deftest unserolvable-symbol-test
(let [graph {:a 'foo.bar/baz}
Expand Down
67 changes: 41 additions & 26 deletions test/k16/gx/beta/system_test.cljc
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
(ns k16.gx.beta.system-test
(:require [clojure.test :refer [deftest is]]
[test-utils :refer [test-async]]
[k16.gx.beta.system :as gx.system]))
(:require #?(:cljs [cljs.core :refer [ExceptionInfo]])
[clojure.test :refer [deftest is]]
[k16.gx.beta.system :as gx.system]
[test-utils :refer [test-async]])
#?(:clj (:import [clojure.lang ExceptionInfo])))

(def server
(def ^:export server
{:gx/start {:gx/processor (fn [_] {:server "instance"})}
:gx/stop {:gx/processor (fn [_] nil)}})

Expand All @@ -29,26 +31,39 @@
(gx.system/values ::clj-system [:http/options]))))))

(deftest failed-system-test
(gx.system/register! ::clj-system-err {:graph {:a '(gx/ref :b)
:b '(gx/ref :a)
:c '(gx/ref :z)}})
(test-async
(gx.system/signal! ::clj-system-err :gx/start)
(fn [_ err]
(let [error #?(:clj (.getCause err) :cljs err)]
(is (= {:failures
(str "Dependency errors: signal = ':gx/start'"
"\n\t• :c depends on :z, but :z doesn't exist"
"\n\t• circular :a -> :b -> :a")}
(ex-data error)))))))

(try
(gx.system/register! ::clj-system-err {:graph {:a '(gx/ref :b)
:b '(gx/ref :a)
:c '(gx/ref :z)}})
(catch ExceptionInfo err
(is (= {:failures
[{:internal-data
{:errors
[":c depends on :z, but :z doesn't exist"
"circular :a -> :b -> :a"]},
:message "Dependency errors",
:error-type :deps-sort,
:signal-key :gx/start}
{:internal-data
{:errors
[":c depends on :z, but :z doesn't exist"
"circular :a -> :b -> :a"]},
:message "Dependency errors",
:error-type :deps-sort,
:signal-key :gx/suspend}
{:internal-data
{:errors
[":c depends on :z, but :z doesn't exist"
"circular :a -> :b -> :a"]},
:message "Dependency errors",
:error-type :deps-sort,
:signal-key :gx/resume}
{:internal-data
{:errors
[":c depends on :z, but :z doesn't exist"
"circular :a -> :b -> :a"]},
:message "Dependency errors",
:error-type :deps-sort,
:signal-key :gx/stop}]}
(ex-data err))))))

(comment
@(gx.system/signal! ::clj-system-err :gx/start)
(fn [_ err]
(let [error #?(:clj (.getCause err) :cljs err)]
(is (= {:failures
(list (str "Dependency errors: signal = ':gx/start'"
"\n\t• :c depends on :z, but :z doesn't exist"
"\n\t• circular :a -> :b -> :a"))}
(ex-data error))))))

1 comment on commit 4caeae5

@vercel
Copy link

@vercel vercel bot commented on 4caeae5 Jul 1, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

gx – ./

gx-kepler16.vercel.app
gx-git-master-kepler16.vercel.app
gx.kepler16.com

Please sign in to comment.