Sha256: 183ddab0a460425c242d0af189e8881a2e1b29ae7b8c4eb5ade11d04c0eb7aeb

Contents?: true

Size: 877 Bytes

Versions: 5

Compression:

Stored size: 877 Bytes

Contents

"use strict";

var reduce = require("reducible/reduce")
var isError = require("reducible/is-error")
var end = require("reducible/end")
var isReduced = require("reducible/is-reduced")

function test(unit) {
  return function(assertions, done) {
    function assert(actual, expected, comment) {
      var values = []
      reduce(actual, function(actual) {
        if (actual === end) {
          assert.deepEqual(values, expected, comment)
          done()
        } else if (isError(actual)) {
          assert.deepEqual({ values: values, error: actual }, expected, comment)
          done()
        } else if (isReduced(actual)) {
          return actual
        } else {
          values.push(actual)
        }
        return actual
      })
    }

    for (var key in assertions) assert[key] = assertions[key].bind(assertions)

    unit(assert)
  }
}

module.exports = test

Version data entries

5 entries across 2 versions & 1 rubygems

Version Path
ruby-wisp-source-0.8.0 vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/util/test.js
ruby-wisp-source-0.8.0 vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/util/test.js
ruby-wisp-source-0.7.0 vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/util/test.js
ruby-wisp-source-0.7.0 vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/util/test.js
ruby-wisp-source-0.7.0 vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/util/test.js