Comments (1)
It's not entirely trivial defining in which way this should concretely manifest. One approach could be the following:
(testing "One failing handler should not kill other handlers"
(let [promises (into [] (repeatedly 100 promise))]
(handle :danger (fn [a])) ; Throws clojure.lang.ArityException
(dotimes [i 100]
(handle :danger #(deliver (get promises i) true)))
(emit! :danger)
(is (every? true? (map deref promises)))))
Why 100? The test is about an exception not ruining any pending and future handlers, and with 100 extra handlers it is unlikely that the handler throwing an ArityException runs as the very last. This leaves the pertinent question of how to notice errors in your handlers at all. I guess this necessitates some sort of logging, which was planned anyway.
from slacker.
Related Issues (20)
- Rename to avoid clash on Clojars HOT 1
- Better testing solution
- Fix clojars deployment
- Logging
- Web interface for monitoring bot health HOT 1
- Report errors HOT 1
- Awaiting response HOT 1
- Monitor websocket connectivity HOT 1
- Needs more core.typed HOT 2
- Improve unit test feedback
- emit! is incorrectly returning a go block HOT 1
- Rethink handle HOT 1
- Write a simple smoke test HOT 1
- Switch to Clojure 1.7 HOT 1
- Inappropriate NPE HOT 1
- Simple example project HOT 6
- slacker.client/receive-message seems passes no arguments HOT 2
- Expose Slack's HTTP API through Slacker
- Is there any way to detect connection fail? HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from slacker.