This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-11-27
Channels
- # bangalore-clj (2)
- # beginners (41)
- # cider (14)
- # cljs-dev (12)
- # cljsrn (2)
- # clojure (106)
- # clojure-austin (6)
- # clojure-dev (22)
- # clojure-dusseldorf (1)
- # clojure-france (1)
- # clojure-greece (17)
- # clojure-italy (6)
- # clojure-poland (3)
- # clojure-russia (10)
- # clojure-serbia (5)
- # clojure-spec (24)
- # clojure-uk (100)
- # clojurescript (126)
- # cursive (3)
- # data-science (5)
- # datascript (15)
- # datomic (3)
- # defnpodcast (2)
- # dirac (6)
- # emacs (10)
- # fulcro (121)
- # graphql (30)
- # hoplon (7)
- # jobs (2)
- # leiningen (20)
- # off-topic (14)
- # onyx (3)
- # other-languages (13)
- # pedestal (1)
- # perun (2)
- # planck (41)
- # re-frame (16)
- # reagent (6)
- # reitit (5)
- # remote-jobs (3)
- # ring (1)
- # ring-swagger (17)
- # shadow-cljs (137)
- # spacemacs (6)
- # sql (4)
- # uncomplicate (7)
- # unrepl (56)
- # vim (27)
@cgrand what's the issue with quoting? I feel I'm lacking some context
Quoting is about the fact that when I work on unrepl I do have #unrepl/xxx
as data and don’t want them handled by the client
@pesterhazy you see what I mean?
@cgrand, your edn printer needs to handle those "specials" in a special way?
I'm trying to summarize to see if I understand
so the issue is you can't distinguish between "fake" unrepl defrecords (tagged literals) generated by client code and the genuine ones?
that does seem like a niche issue 🙂 def not a release blocker
@cgrand @pesterhazy question: do any of you have like a set of tests that you use to check border cases / printing /etc, when working on unravel? I have a file with a couple of things that I use to test everything is displaying correctly, but I'm sure there might be more interesting types of "tests"
(+ 1 1)
{:a 1}
(def square #(* % %))
(square 5)
(list
(range 100)
(into [] (range 100))
(into #{} (range 100)))
(def letters (map char (range 97 (+ 97 26))))
(zipmap letters (range 20))
(zipmap letters (repeatedly #(range 100)))
(apply str (repeat 100 "a"))
(print "hi")
(println "hi")
(print (apply str (repeat 100 "a")))
(println (apply str (repeat 100 "a")))
(/ 1 0)
x
(future
(Thread/sleep 5000)
(println "delayed 5 secs"))
nice!
@volrath there's scripts/tests
it would be fantastic to add these as a further test case
maybe it'd be nice to have a collection of these expresions, so that we could use unrepl's output for them and test
don't judge me for my homegrown "unit testing" framework
more like end-to-end tests I guess
so I'm thinking maybe do a collection of this files with their corresponding unrepl edn outputs as edn files, and every client could use those edn files to reproduce entire repl sessions
have you seen this? https://github.com/Unrepl/unravel/blob/master/test/basic.ought.regex
scripts/tests
for each "FILE" it sends "FILE.clj" to the repl and expects "FILE.ought" or "FILE.ought.regex"
well the list of files is currently hardcoded https://github.com/Unrepl/unravel/blob/master/scripts/test-runner#L45
but that can be easily turned into a glob
maybe EDN would be better but I just went with the simplest thing that worked
you mean, get nicer test output? as in JUnit?
this should work well on travis
just haven't gotten around to set up CI
i mean just automating it.. I haven't run any clojure tests con travis, I'm guessing they have images for that.. so it'd be just running a socket repl on the container, upgrading and sending the files
i thought edn because then you don't have to do any of that, it's faster, but it's not end-to-end
the script already does some of this, like starting the clojure server in the bg: https://github.com/Unrepl/unravel/blob/master/scripts/tests#L6
On circle, we only need to install yarn and download the clojure jar - then I think it should be good to go
hmm. can't figure out how to add circleci through the github org
figured it out 🙂
@pesterhazy parfix ready to merge; --flag parfix
to try it
@volrath circle ci now passes: https://circleci.com/gh/Unrepl/unravel/10