mirror of
https://github.com/status-im/status-react.git
synced 2025-02-03 22:56:19 +00:00
563f1c588d
Problem: failed equality checks as in "(is (= expected actual))" will give a single, long line of output that for anything but the simplest data structures is unreadable by humans, and the output doesn't give a useful diff. Solution: use library https://github.com/nubank/matcher-combinators and its test directive "match?" which will pinpoint where two data structures differ. Then, instead of "(is (= ...", use "(is (match? expected actual)". It works beautifully. The library offers other nice matchers, but the majority of the time match? is sufficient. Can we use another test runner like Kaocha? kaocha-cljs2 (https://github.com/lambdaisland/kaocha-cljs2) would be able to print better test errors out of the box, among other features, but I have no clue if it would work well or at all in our stack (in theory yes, but it's a larger piece of work).
84 lines
5.7 KiB
Clojure
84 lines
5.7 KiB
Clojure
{:config-paths ["status-im"]
|
|
:lint-as {status-im.utils.views/defview clojure.core/defn
|
|
status-im.utils.views/letsubs clojure.core/let
|
|
reagent.core/with-let clojure.core/let
|
|
status-im.utils.fx/defn clj-kondo.lint-as/def-catch-all
|
|
utils.re-frame/defn clj-kondo.lint-as/def-catch-all
|
|
quo.react/with-deps-check clojure.core/fn
|
|
quo.previews.preview/list-comp clojure.core/for
|
|
status-im.utils.styles/def clojure.core/def
|
|
status-im.utils.styles/defn clojure.core/defn
|
|
test-helpers.unit/deftest-sub clojure.core/defn
|
|
taoensso.tufte/defnp clojure.core/defn}
|
|
:linters {:case-duplicate-test {:level :error}
|
|
:case-quoted-test {:level :error}
|
|
:case-symbol-test {:level :error}
|
|
:clj-kondo-config {:level :error}
|
|
:cond-else {:level :error}
|
|
:consistent-alias {:level :error
|
|
:aliases {clojure.set set
|
|
clojure.string string
|
|
clojure.walk walk
|
|
malli.core malli
|
|
malli.dev.pretty malli.pretty
|
|
malli.dev.virhe malli.virhe
|
|
malli.error malli.error
|
|
malli.generator malli.generator
|
|
malli.transform malli.transform
|
|
malli.util malli.util
|
|
schema.core schema
|
|
taoensso.timbre log}}
|
|
:deprecated-namespace {:level :warning}
|
|
:docstring-blank {:level :error}
|
|
:equals-true {:level :error}
|
|
:inline-def {:level :error}
|
|
:invalid-arity {:skip-args [status-im.utils.fx/defn utils.re-frame/defn]}
|
|
:loop-without-recur {:level :error}
|
|
:minus-one {:level :error}
|
|
:misplaced-docstring {:level :error}
|
|
:missing-body-in-when {:level :error}
|
|
:missing-clause-in-try {:level :error}
|
|
:missing-else-branch {:level :error}
|
|
:not-empty? {:level :error}
|
|
:plus-one {:level :error}
|
|
:redundant-do {:level :error}
|
|
:redundant-let {:level :error}
|
|
:refer-all {:level :error}
|
|
:shadowed-var {:level :error
|
|
;; We temporarily use :include to define an
|
|
;; allowlist of core Clojure vars. In the
|
|
;; future, as we progressively fix shadowed
|
|
;; vars, we should be able to delete this
|
|
;; option and lint all vars.
|
|
:exclude [type name]}
|
|
:single-operand-comparison {:level :error}
|
|
:syntax {:level :error}
|
|
:unbound-destructuring-default {:level :error}
|
|
:uninitialized-var {:level :error}
|
|
:unknown-require-option {:level :error}
|
|
:unreachable-code {:level :error}
|
|
:unresolved-namespace {:level :error}
|
|
;; TODO remove number when this is fixed
|
|
;; https://github.com/borkdude/clj-kondo/issues/867
|
|
:unresolved-symbol {:exclude [PersistentPriorityMap.EMPTY
|
|
number
|
|
status-im.test-helpers/restore-app-db
|
|
|
|
;; When the namespace
|
|
;; matcher-combinators.test is loaded, it
|
|
;; extends cljs.test/is macro with
|
|
;; directives `match?` and
|
|
;; `thrown-match?`.
|
|
match?
|
|
thrown-match?]}
|
|
:unresolved-var {:level :error}
|
|
:unsorted-required-namespaces {:level :error}
|
|
:unused-alias {:level :warning}
|
|
:unused-binding {:level :error}
|
|
:unused-import {:level :error}
|
|
:unused-namespace {:level :error}
|
|
:unused-private-var {:level :error}
|
|
:unused-referred-var {:level :error}
|
|
:use {:level :error}}
|
|
:config-in-ns {mocks.js-dependencies {:linters {:clojure-lsp/unused-public-var {:level :off}}}}}
|