test(compose): from Jest to test (#6473)
This commit is contained in:
parent
20dbbeb38e
commit
ac75225e7d
@ -1,6 +1,8 @@
|
|||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
/* eslint-env jest */
|
// eslint-disable-next-line n/no-unpublished-require
|
||||||
|
const { describe, it } = require('test')
|
||||||
|
const assert = require('node:assert').strict
|
||||||
|
|
||||||
const { compose } = require('./')
|
const { compose } = require('./')
|
||||||
|
|
||||||
@ -9,43 +11,42 @@ const mul3 = x => x * 3
|
|||||||
|
|
||||||
describe('compose()', () => {
|
describe('compose()', () => {
|
||||||
it('throws when no functions is passed', () => {
|
it('throws when no functions is passed', () => {
|
||||||
expect(() => compose()).toThrow(TypeError)
|
assert.throws(() => compose(), TypeError)
|
||||||
expect(() => compose([])).toThrow(TypeError)
|
assert.throws(() => compose([]), TypeError)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('applies from left to right', () => {
|
it('applies from left to right', () => {
|
||||||
expect(compose(add2, mul3)(5)).toBe(21)
|
assert.strictEqual(compose(add2, mul3)(5), 21)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('accepts functions in an array', () => {
|
it('accepts functions in an array', () => {
|
||||||
expect(compose([add2, mul3])(5)).toBe(21)
|
assert.strictEqual(compose([add2, mul3])(5), 21)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('can apply from right to left', () => {
|
it('can apply from right to left', () => {
|
||||||
expect(compose({ right: true }, add2, mul3)(5)).toBe(17)
|
assert.strictEqual(compose({ right: true }, add2, mul3)(5), 17)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('accepts options with functions in an array', () => {
|
it('accepts options with functions in an array', () => {
|
||||||
expect(compose({ right: true }, [add2, mul3])(5)).toBe(17)
|
assert.strictEqual(compose({ right: true }, [add2, mul3])(5), 17)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('can compose async functions', async () => {
|
it('can compose async functions', async () => {
|
||||||
expect(
|
assert.strictEqual(
|
||||||
await compose(
|
await compose(
|
||||||
{ async: true },
|
{ async: true },
|
||||||
async x => x + 2,
|
async x => x + 2,
|
||||||
async x => x * 3
|
async x => x * 3
|
||||||
)(5)
|
)(5),
|
||||||
).toBe(21)
|
21
|
||||||
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('forwards all args to first function', () => {
|
it('forwards all args to first function', () => {
|
||||||
expect.assertions(1)
|
|
||||||
|
|
||||||
const expectedArgs = [Math.random(), Math.random()]
|
const expectedArgs = [Math.random(), Math.random()]
|
||||||
compose(
|
compose(
|
||||||
(...args) => {
|
(...args) => {
|
||||||
expect(args).toEqual(expectedArgs)
|
assert.deepEqual(args, expectedArgs)
|
||||||
},
|
},
|
||||||
// add a second function to avoid the one function special case
|
// add a second function to avoid the one function special case
|
||||||
Function.prototype
|
Function.prototype
|
||||||
@ -53,15 +54,13 @@ describe('compose()', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('forwards context to all functions', () => {
|
it('forwards context to all functions', () => {
|
||||||
expect.assertions(2)
|
|
||||||
|
|
||||||
const expectedThis = {}
|
const expectedThis = {}
|
||||||
compose(
|
compose(
|
||||||
function () {
|
function () {
|
||||||
expect(this).toBe(expectedThis)
|
assert.strictEqual(this, expectedThis)
|
||||||
},
|
},
|
||||||
function () {
|
function () {
|
||||||
expect(this).toBe(expectedThis)
|
assert.strictEqual(this, expectedThis)
|
||||||
}
|
}
|
||||||
).call(expectedThis)
|
).call(expectedThis)
|
||||||
})
|
})
|
@ -19,6 +19,10 @@
|
|||||||
"node": ">=7.6"
|
"node": ">=7.6"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"postversion": "npm publish --access public"
|
"postversion": "npm publish --access public",
|
||||||
|
"test": "node--test"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"test": "^3.2.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user