Sha256: 90e52b4fd78fa0a7c5170530209849f4ceaf82e60aa87e8eecfb69e51a6c5281

Contents?: true

Size: 1.45 KB

Versions: 35

Compression:

Stored size: 1.45 KB

Contents

#_ = require('underscore')

invoke = (method_name, args...) ->
  compare: (actual, expected) ->
    if _.isFunction(actual[method_name])
      pass: actual[method_name].apply(actual, args)
    else
      args.unshift(actual)
      pass: _[method_name].apply(actual, args)

beforeEach ->
  jasmine.addMatchers
    toBeEmpty: ->
      invoke.call(this, 'isEmpty')

    toInclude: (items...) ->
      _(items).all (item) =>
        invoke.call(this, 'include', item)

    toIncludeAny: (items...) ->
      _(items).any (item) =>
        invoke.call(this, 'include', item)

    toBeCompact: ->
      elements = invoke.call(this, 'map', _.identity)
      _.isEqual elements, _.compact(elements)

    toBeUnique: ->
      elements = invoke.call(this, 'map', _.identity)
      _.isEqual elements, _.uniq(elements)

    toRespondTo: (methods...)->
      _.all methods, (method) =>
        _.isFunction(@actual[method])

    toRespondToAny: (methods...)->
      _.any methods, (method) =>
        _.isFunction(@actual[method])

    toHave: (attrs...) ->
      _.all attrs, (attr) =>
        invoke.call(this, 'has', attr)

    toHaveAny: (attrs...) ->
      _.any attrs, (attr) =>
        invoke.call(this, 'has', attr)

    toBeAnInstanceOf: ->
      compare: (actual, clazz) ->
        pass: actual instanceof clazz

    toBeA: ->
      compare: (actual, clazz) ->
        pass: actual instanceof clazz

    toBeAn: ->
      compare: (actual, clazz) ->
        pass: actual instanceof clazz

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
quby-5.6.7 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.6.6 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.6.5 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.6.3 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.6.2 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.6.1 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.6.0 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.5.0 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.4.0 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.3.1 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.3.0 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.2.0 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.1.3 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.1.2 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.1.1 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.1.0 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.0.5 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.0.4 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.0.3 spec/javascripts/support/underscore_matchers_jasmine.js.coffee
quby-5.0.2 spec/javascripts/support/underscore_matchers_jasmine.js.coffee