Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

skava / chain-able-traverse   js

Repository URL to install this package:

Version: 6.0.1 

/ __tests__ / json.ts

import traverse from '../src'

test('json test', () => {
  let id = 54
  const callbacks = {}
  const obj = { moo() {}, foo: [2, 3, 4, () => {}] }

  const scrubbed = traverse(obj).map(function(x) {
    if (typeof x === 'function') {
      callbacks[id] = { id, f: x, path: this.path }
      this.update('[Function]')
      id++
    }
  })

  expect(scrubbed.moo).toEqual('[Function]')

  expect(scrubbed.foo[3]).toEqual('[Function]')

  expect(scrubbed).toEqual({
    moo: '[Function]',
    foo: [2, 3, 4, '[Function]'],
  })

  expect(typeof obj.moo).toEqual('function')

  expect(typeof obj.foo[3]).toEqual('function')

  expect(callbacks).toEqual({
    54: { id: 54, f: obj.moo, path: ['moo'] },
    55: { id: 55, f: obj.foo[3], path: ['foo', '3'] },
  })
})