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-deps   js

Repository URL to install this package:

Version: 6.0.4 

/ src / fp / __tests__ / nthArg.ts

import nthArg from '../../fp/nthArg'

const eq = (x, y, msg) => expect(x).toEqual(y)

describe('nthArg', () => {
  it.skip('returns a function which returns its nth argument', () => {
    eq(nthArg(0)('foo', 'bar'), 'foo')
    eq(nthArg(1)('foo', 'bar'), 'bar')
  })

  it.skip('accepts negative offsets', () => {
    eq(nthArg(-1)('foo', 'bar'), 'bar')
    eq(nthArg(-2)('foo', 'bar'), 'foo')
    eq(nthArg(-3)('foo', 'bar'), undefined)
  })

  it('returns a function with length n + 1 when n >= 0', () => {
    eq(nthArg(0).length, 1)
    eq(nthArg(1).length, 2)
    eq(nthArg(2).length, 3)
    eq(nthArg(3).length, 4)
  })

  it('returns a function with length 1 when n < 0', () => {
    eq(nthArg(-1).length, 1)
    eq(nthArg(-2).length, 1)
    eq(nthArg(-3).length, 1)
  })

  it('returns a curried function', () => {
    eq(nthArg(1)('foo', 'bar'), nthArg(1)('foo')('bar'))
    eq(nthArg(2)('foo', 'bar', 'baz'), nthArg(2)('foo')('bar')('baz'))
  })
})