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' '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)
}) })

View File

@ -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"
} }
} }