%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/opti/workflow/node_modules/underscore.deep/test/
Upload File :
Create Path :
Current File : /home/opti/workflow/node_modules/underscore.deep/test/deepMapValues.coffee

assert = require 'assert'
_ = require('underscore')
_.mixin require('../underscore.deep.js')
h = require './helpers'

describe '_.deepMapValues', ->
  h.it_throws_on_non_objects (input) -> _.deepMapValues input, (v) -> v

  it "maps over an empty object", ->
    res = _.deepMapValues {}, (val) -> assert.fail "shouldn't have called map fn"
    assert.deepEqual res, {}

  it "maps add1 over a flat object", ->
    res = _.deepMapValues { a: 1, b: 2 }, (val) -> val + 1
    assert.deepEqual res, { a: 2, b: 3 }

  it "maps add1 over a deep object", ->
    res = _.deepMapValues { a: { b: 1, c: 2 }, d: e: f: 3 }, (val) -> val + 1
    assert.deepEqual res, { a: { b: 2, c: 3 }, d: e: f: 4 }

  it "also passes keys", ->
    res = _.deepMapValues { a: { b: 1, c: 2 }, d: e: f: 3 }, (val, key) ->
      val = if 'a' in key then 0 else val
    assert.deepEqual res, { a: { b: 0, c: 0 }, d: e: f: 3 }

  it "passes keys correctly", ->
    _.deepMapValues {a: {b: {c: 'a.b.c'}, d:'a.d'}, e: 'e', f: g: h: 'f.g.h'}, (val, key) ->
      assert.equal val, key

Zerion Mini Shell 1.0