Don't treat dynamic data as a function (#19672)
Sometimes an integration test was throwing "TypeError: Cannot read properties of null (reading 'call')" because a value was nil in the app-db, but the code was treating it as if it was always a map and could be called as a function. The original code wasn't respecting Clojure's nil punning good practices. In Clojure, it's often recommended to not use dynamic data as functions, because if they're nil, in CLJS we'll get an exception and as usual in CLJS, the stacktrace won't be very readable. We should prefer contains? or get, which will work just fine with nil values, and only use data as a function if it's static, e.g. a map defined in a def.
This commit is contained in:
parent
24f4c4a07e
commit
c81dd8e3e3
|
@ -148,7 +148,7 @@
|
|||
(let [tokens (data-store/rpc->tokens raw-tokens-data)
|
||||
add-tokens (fn [stored-accounts tokens-per-account]
|
||||
(reduce-kv (fn [accounts address tokens-data]
|
||||
(if (accounts address)
|
||||
(if (contains? accounts address)
|
||||
(update accounts address assoc :tokens tokens-data)
|
||||
accounts))
|
||||
stored-accounts
|
||||
|
|
Loading…
Reference in New Issue