Skip to content

Instantly share code, notes, and snippets.

@haskellcamargo
Created February 25, 2015 19:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save haskellcamargo/6001796df60a321ebe14 to your computer and use it in GitHub Desktop.
Save haskellcamargo/6001796df60a321ebe14 to your computer and use it in GitHub Desktop.
checkls-1.0.ls
window.add-event-listener(\load, (!->
container = document.create-element \div
container.id = \check-results-container
ul = document.create-element \ul
ul.id = \check-results
container.append-child ul
container |> document.body.append-child ), false)
check-assert = (value, desc) !->
container = document.get-element-by-id \check-results
li = document.create-element \li
li.style.color = if value then \green else \red
li.append-child document.create-text-node desc
container.append-child li
check-assert-log = (value, desc) !->
if msie!
return if value then desc |> console.info else desc |> console.error
switch
| value => console.log("%c" + desc, "color:green;")
| _ => console.log("%c" + desc, "color:red;")
msie = ->
ua = window.navigator.user-agent
msie = ua.index-of \MSIE
trident = ua.index-of \Trident
switch
| msie > 0 or trident > 0 => true
| otherwise => false
(!->
@assert = assert = (value, desc) ->
li = document.create-element \li
li.style.color = if value then \green else \red
li.append-child document.create-text-node desc
li |> results.append-child
if not value
li.parent-node.parent-node.style.color = \red
li
@check-test = check-test = (name, fn) !->
results = document.get-element-by-id \check-results
results = assert(true, name).append-child document.create-element \ul
fn!)()
(!->
queue = []
paused = no
results = undefined
@check-test-async = (name, fn) !->
queue.push ->
results := document.get-element-by-id \check-results-container
results := assert-async(yes, name)
.append-child document.create-element \ul
fn!
run-test!
@pause = !-> paused := yes
@resume = !->
paused := no
set-timeout(run-test, 1)
run-test = ->
if (not paused) and queue.length
queue.shift!!
if not paused
resume!
@assert-async = assert-async = (value, desc) ->
li = document.create-element \li
li.style.color = if value then \green else \red
li.append-child document.create-text-node desc
results.append-child li
if not value
li.parent-node.parent-node.style.color = \red
return li)()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment