test(compose): from Jest to test (#6473)

This commit is contained in:
Gabriel Gunullu 2022-10-21 16:25:25 +02:00 committed by GitHub
parent 20dbbeb38e
commit ac75225e7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 18 deletions

View File

@ -1,6 +1,8 @@
'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('./')
@ -9,43 +11,42 @@ const mul3 = x => x * 3
describe('compose()', () => {
it('throws when no functions is passed', () => {
expect(() => compose()).toThrow(TypeError)
expect(() => compose([])).toThrow(TypeError)
assert.throws(() => compose(), TypeError)
assert.throws(() => compose([]), TypeError)
})
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', () => {
expect(compose([add2, mul3])(5)).toBe(21)
assert.strictEqual(compose([add2, mul3])(5), 21)
})
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', () => {
expect(compose({ right: true }, [add2, mul3])(5)).toBe(17)
assert.strictEqual(compose({ right: true }, [add2, mul3])(5), 17)
})
it('can compose async functions', async () => {
expect(
assert.strictEqual(
await compose(
{ async: true },
async x => x + 2,
async x => x * 3
)(5)
).toBe(21)
)(5),
21
)
})
it('forwards all args to first function', () => {
expect.assertions(1)
const expectedArgs = [Math.random(), Math.random()]
compose(
(...args) => {
expect(args).toEqual(expectedArgs)
assert.deepEqual(args, expectedArgs)
},
// add a second function to avoid the one function special case
Function.prototype
@ -53,15 +54,13 @@ describe('compose()', () => {
})
it('forwards context to all functions', () => {
expect.assertions(2)
const expectedThis = {}
compose(
function () {
expect(this).toBe(expectedThis)
assert.strictEqual(this, expectedThis)
},
function () {
expect(this).toBe(expectedThis)
assert.strictEqual(this, expectedThis)
}
).call(expectedThis)
})

View File

@ -19,6 +19,10 @@
"node": ">=7.6"
},
"scripts": {
"postversion": "npm publish --access public"
"postversion": "npm publish --access public",
"test": "node--test"
},
"devDependencies": {
"test": "^3.2.1"
}
}