Re: [ClojureScript] Clojurescript testing

2018-11-09 Thread Alan Thompson
This setup includes the ability to use/test native JS libs in 3 different
ways, which required a bit of a struggle (i.e. trial & error) to get the
syntax right.  Here are the native JavaScript files in ~/resources:

~/expr/cljs-template > tree resources
resources
└── public
├── css
│   └── style.css
├── dino-externs.js
├── dino.js
├── index.html
├── js
├── libs
│   └── wilma.js
└── pebbles.js



On Fri, Nov 9, 2018 at 2:18 PM Alan Thompson  wrote:

> You can see the source layout as follows:
>
> ~/expr/cljs-template > tree src test
> src
> ├── clj
> │   └── flintstones
> │   └── test_clj.clj
> ├── cljc
> │   └── flintstones
> │   ├── bambam.cljc
> │   ├── core.cljc
> │   ├── slate.cljc
> │   └── test_cljs.cljc
> └── cljs
> └── flintstones
> └── test_cljs.cljs
> test
> ├── clj
> ├── cljc
> │   └── tst
> │   └── flintstones
> │   ├── bambam.cljc
> │   └── slate.cljc
> └── cljs
> └── tst
> └── flintstones
> ├── dino.cljs
> ├── doorunner.cljs
> ├── pebbles.cljs
> └── wilma.cljs
>
> 13 directories, 12 files
>
>
>
>
>
> On Fri, Nov 9, 2018 at 2:17 PM Alan Thompson  wrote:
>
>> I have a nice setup for CLJS testing using the `doo` test framework.  It
>> can run tests either at the command line using `phantomjs` or in the
>> browser (eg Chrome).  It has source and test dirs segregrated into `clj`,
>> `cljc`, and `cljs` subdirs so you can get macros and dual-use code working
>> correctly.  You can see it here:
>>
>> https://github.com/cloojure/cljs-template
>>
>> A sample run:
>>
>>
>> ~/expr/cljs-template > lein clean ; time lein doo phantom test once
>>
>> ;; ==
>> ;; Testing with Phantom:
>>
>> doorunner - beginning
>> doorunner - end
>>
>> Testing tst.flintstones.dino
>> test once - enter
>> globalObject:   #js {:a 1, :b 2, :c 3}
>> (-> % .-b (+ 5) => 7
>> (js/makeDino) => #js {:desc blue dino-dog, :says #object[Function]}
>> dino.desc =>  blue dino-dog
>> dino.says(5) =>  Ruff-Ruff-Ruff-Ruff-Ruff!
>> :keep-words ("am" "having" "today")
>> :re-seq ("am" "having" "today")
>> test once - leave
>>
>> Testing tst.flintstones.wilma
>> test each - enter
>> test each - leave
>> test each - enter
>> wilmaPhony/stats:#js {:lipstick red, :height 5.5}
>> wilma => #js {:desc patient housewife, :says #object[Function]}
>> test each - leave
>>
>> Testing tst.flintstones.pebbles
>> test once - enter
>> test once - leave
>>
>> Testing tst.flintstones.slate
>> logr-slate-enter
>> logr-slate-leave 3
>>
>> Testing tst.flintstones.bambam
>> test each - enter
>> test each - leave
>> test each - enter
>> logr-bambam-enter
>> logr-bambam-leave 3
>> test each - leave
>>
>> Ran 9 tests containing 22 assertions.
>> 0 failures, 0 errors.
>> lein doo phantom test once  38.52s user 0.84s system 333% cpu 11.813 total
>>
>>
>>
>> On Fri, Nov 9, 2018 at 10:14 AM Gareth James  wrote:
>>
>>> I'm currently researching different methods for testing clojurescipt
>>> code, specifically unit testing, automated browser testing and code
>>> coverage. I'm specifically trying to find more information about the use of
>>> cljs.test and cljs.spec either individually or together. Could anyone share
>>> any experience they have of using either of these or any other information
>>> about how they are testing their code.
>>>
>>> Thanks
>>> Gareth
>>>
>>> --
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "ClojureScript" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojurescript+unsubscr...@googlegroups.com.
>>> To post to this group, send email to clojurescript@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/clojurescript.
>>>
>>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Clojurescript testing

2018-11-09 Thread Alan Thompson
You can see the source layout as follows:

~/expr/cljs-template > tree src test
src
├── clj
│   └── flintstones
│   └── test_clj.clj
├── cljc
│   └── flintstones
│   ├── bambam.cljc
│   ├── core.cljc
│   ├── slate.cljc
│   └── test_cljs.cljc
└── cljs
└── flintstones
└── test_cljs.cljs
test
├── clj
├── cljc
│   └── tst
│   └── flintstones
│   ├── bambam.cljc
│   └── slate.cljc
└── cljs
└── tst
└── flintstones
├── dino.cljs
├── doorunner.cljs
├── pebbles.cljs
└── wilma.cljs

13 directories, 12 files





On Fri, Nov 9, 2018 at 2:17 PM Alan Thompson  wrote:

> I have a nice setup for CLJS testing using the `doo` test framework.  It
> can run tests either at the command line using `phantomjs` or in the
> browser (eg Chrome).  It has source and test dirs segregrated into `clj`,
> `cljc`, and `cljs` subdirs so you can get macros and dual-use code working
> correctly.  You can see it here:
>
> https://github.com/cloojure/cljs-template
>
> A sample run:
>
>
> ~/expr/cljs-template > lein clean ; time lein doo phantom test once
>
> ;; ==
> ;; Testing with Phantom:
>
> doorunner - beginning
> doorunner - end
>
> Testing tst.flintstones.dino
> test once - enter
> globalObject:   #js {:a 1, :b 2, :c 3}
> (-> % .-b (+ 5) => 7
> (js/makeDino) => #js {:desc blue dino-dog, :says #object[Function]}
> dino.desc =>  blue dino-dog
> dino.says(5) =>  Ruff-Ruff-Ruff-Ruff-Ruff!
> :keep-words ("am" "having" "today")
> :re-seq ("am" "having" "today")
> test once - leave
>
> Testing tst.flintstones.wilma
> test each - enter
> test each - leave
> test each - enter
> wilmaPhony/stats:#js {:lipstick red, :height 5.5}
> wilma => #js {:desc patient housewife, :says #object[Function]}
> test each - leave
>
> Testing tst.flintstones.pebbles
> test once - enter
> test once - leave
>
> Testing tst.flintstones.slate
> logr-slate-enter
> logr-slate-leave 3
>
> Testing tst.flintstones.bambam
> test each - enter
> test each - leave
> test each - enter
> logr-bambam-enter
> logr-bambam-leave 3
> test each - leave
>
> Ran 9 tests containing 22 assertions.
> 0 failures, 0 errors.
> lein doo phantom test once  38.52s user 0.84s system 333% cpu 11.813 total
>
>
>
> On Fri, Nov 9, 2018 at 10:14 AM Gareth James  wrote:
>
>> I'm currently researching different methods for testing clojurescipt
>> code, specifically unit testing, automated browser testing and code
>> coverage. I'm specifically trying to find more information about the use of
>> cljs.test and cljs.spec either individually or together. Could anyone share
>> any experience they have of using either of these or any other information
>> about how they are testing their code.
>>
>> Thanks
>> Gareth
>>
>> --
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "ClojureScript" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojurescript+unsubscr...@googlegroups.com.
>> To post to this group, send email to clojurescript@googlegroups.com.
>> Visit this group at https://groups.google.com/group/clojurescript.
>>
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Clojurescript testing

2018-11-09 Thread Alan Thompson
I have a nice setup for CLJS testing using the `doo` test framework.  It
can run tests either at the command line using `phantomjs` or in the
browser (eg Chrome).  It has source and test dirs segregrated into `clj`,
`cljc`, and `cljs` subdirs so you can get macros and dual-use code working
correctly.  You can see it here:

https://github.com/cloojure/cljs-template

A sample run:


~/expr/cljs-template > lein clean ; time lein doo phantom test once

;; ==
;; Testing with Phantom:

doorunner - beginning
doorunner - end

Testing tst.flintstones.dino
test once - enter
globalObject:   #js {:a 1, :b 2, :c 3}
(-> % .-b (+ 5) => 7
(js/makeDino) => #js {:desc blue dino-dog, :says #object[Function]}
dino.desc =>  blue dino-dog
dino.says(5) =>  Ruff-Ruff-Ruff-Ruff-Ruff!
:keep-words ("am" "having" "today")
:re-seq ("am" "having" "today")
test once - leave

Testing tst.flintstones.wilma
test each - enter
test each - leave
test each - enter
wilmaPhony/stats:#js {:lipstick red, :height 5.5}
wilma => #js {:desc patient housewife, :says #object[Function]}
test each - leave

Testing tst.flintstones.pebbles
test once - enter
test once - leave

Testing tst.flintstones.slate
logr-slate-enter
logr-slate-leave 3

Testing tst.flintstones.bambam
test each - enter
test each - leave
test each - enter
logr-bambam-enter
logr-bambam-leave 3
test each - leave

Ran 9 tests containing 22 assertions.
0 failures, 0 errors.
lein doo phantom test once  38.52s user 0.84s system 333% cpu 11.813 total



On Fri, Nov 9, 2018 at 10:14 AM Gareth James  wrote:

> I'm currently researching different methods for testing clojurescipt code,
> specifically unit testing, automated browser testing and code coverage. I'm
> specifically trying to find more information about the use of cljs.test and
> cljs.spec either individually or together. Could anyone share any
> experience they have of using either of these or any other information
> about how they are testing their code.
>
> Thanks
> Gareth
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.