UNPKG

drews-mixins

Version:

A couple underscore.js mixins

206 lines (159 loc) 5.37 kB
module "My mixins" causesError = (func) -> _.wait 100, () -> func "there was an error" doesntCauseError = (func) -> _.wait 100, () -> func null, "success", "you did it" asyncTest "error helper with error ", () -> errors = [] results = [] done = (error, result) -> errors.push error equal errors.length, 1 equal errors[0], "there was an error" equal results.length, 0 start() causesError _.graceful done, (result) -> results.push result equal true, false # should never get here start() asyncTest "error helper with error alternate", () -> errors = [] results = [] done = (error) -> errors.push error equal errors.length, 1 equal errors[0], "there was an error" equal results.length, 0 start() causesError _.graceful(done) (result) -> result.push result equal true, false # should never get here start() asyncTest "error helper with error and extra param ", () -> errors = [] results = [] done = (error, extra...) -> errors.push error equal errors.length, 1 equal errors[0], "there was an error" equal results.length, 0 equal extra[0], "extra" equal extra[1], "params" start() causesError _.graceful [done, "extra", "params" ], (result) -> results.push result equal true, false # should never get here start() asyncTest "error helper with error alternate and extra param", () -> errors = [] results = [] done = (error, extra...) -> errors.push error equal errors.length, 1 equal errors[0], "there was an error" equal results.length, 0 equal extra[0], "extra" equal extra[1], "params" start() causesError _.graceful([done, "extra", "params"]) (result) -> result.push result equal true, false # should never get here start() asyncTest "error helper good ", () -> errors = [] results = [] done = (error) -> errors.push error equal true, false # should never get here start() doesntCauseError _.graceful done, (result, result2) -> results.push result equal results.length, 1 equal results[0], "success" equal result2, "you did it" equal errors.length, 0 start() asyncTest "error helper good alternate", () -> errors = [] results = [] done = (error) -> errors.push error equal true, false # should never get here start() doesntCauseError _.graceful(done) (result, result2) -> results.push result equal results.length, 1 equal results[0], "success" equal result2, "you did it" equal errors.length, 0 start() test "Populate Array", () -> obj = {} _.populateArray obj, "info", "the value" _.populateArray obj, "info", "another" equal obj.info[0], "the value", "populating blank array" equal obj.info[1], "another", "populating existing array" obj.there = [] _.populateArray obj, "there", "stuff" equal obj.there[0], "stuff", "array existed from the get-go" try _.assertFail "got this", "exptected this", "_.assertFail works", "==" catch e _.assertEqual e.message, "_.assertFail works" _.assertEqual e.expected, "exptected this" _.assertEqual e.actual, "got this" _.assertEqual e.operator, "==" _.assertOk 1, 1, "these equal" try _.assertOk false, "don't equal" catch e _.assertEqual e.toString(), "AssertionError: don't equal", "Assert ok on false works" _.assertEqual e.actual,false _.assertEqual e.expected, true, "should have expected true" _.assertEqual e.message, "don't equal" _.assertEqual e.operator, "==" _.assertOk 1, "should be ok" _.assertEqual true, true, "true is true" try _.assertEqual false, true, "true isn't false!" catch e _.assertEqual e.expected, true _.assertEqual e.actual, false _.assertEqual e.message, "true isn't false!" _.assertEqual e.toString(), "AssertionError: true isn't false!" _.assertEqual e.operator, "==" _.assertNotEqual false, true, "true isn't false on notEqual" try _.assertNotEqual false, false, "notEqual error" catch e _.assertEqual e.expected, false _.assertEqual e.actual, false _.assertEqual e.operator, "!=" console.log "pass #{_.getPassCount()}, fail #{_.getFailCount()}, total #{_.getAssertCount()}" _.assertEqual _.getAssertCount(), 25, "There should be 25 tests" _.assertEqual _.getFailCount(), 4, "4 failed tests" _.assertEqual _.getPassCount(), 23, "23 passed tests. There was 21 but 2 more tests since" fakeGetVideos = (url, done) -> _.wait 100, -> done "no videos allowed" fakeGetPictures = (accountId, done) -> _.wait 200, -> done null, ["pic1", "pic2"] fakeGetAudio = (tagName, done) -> _.wait 300, -> done null, ["hello.wav"] tasks = videos: (done) -> fakeGetVideos "http://.com", _.graceful done, (videos) -> done null, videos pics: (done) -> fakeGetPictures "xyzzy", _.graceful done, (pics) -> done null, pics audio: (done) -> fakeGetAudio "trees", _.graceful done, (audio) -> done null, audio _.parallel tasks, (err, values) -> _.assertEqual err, null, "final error should be null" _.assertEqual values.videos, null, "videos should be null" _.assertOk _.isEqual values.pics, ["pic1", "pic2"] _.assertOk _.isEqual values.audio, ["hello.wav"] console.log "#{_.getAssertCount()} tests ran. #{_.getFailCount()} tests failed. 4 were supposed to fail because were testing the tests. "