Skip to main content
Module

x/rambda/source/includes.spec.js

Faster and smaller alternative to Ramda
Go to Latest
File
import {includes} from './includes'import {includes as includesRamda} from 'ramda'
test('with string as iterable', () => { const str = 'foo bar'
expect(includes('bar')(str)).toBeTrue() expect(includesRamda('bar')(str)).toBeTrue() expect(includes('never', str)).toBeFalse() expect(includesRamda('never', str)).toBeFalse()})
test('with array as iterable', () => { const arr = [1, 2, 3]
expect(includes(2)(arr)).toBeTrue() expect(includesRamda(2)(arr)).toBeTrue()
expect(includes(4, arr)).toBeFalse() expect(includesRamda(4, arr)).toBeFalse()})
test('with list of objects as iterable', () => { const arr = [{a: 1}, {b: 2}, {c: 3}]
expect(includes({c: 3}, arr)).toBeTrue() expect(includesRamda({c: 3}, arr)).toBeTrue()})
test('with NaN', () => { const result = includes(NaN, [NaN]) const ramdaResult = includesRamda(NaN, [NaN]) expect(result).toBeTrue() expect(ramdaResult).toBeTrue()})
test('with wrong input that does not throw', () => { const result = includes(1, /foo/g) const ramdaResult = includesRamda(1, /foo/g) expect(result).toBeFalse() expect(ramdaResult).toBeFalse()})
test('throws on wrong input - match ramda behaviour', () => { expect(() => includes(2, null)).toThrowWithMessage( TypeError, "Cannot read property 'indexOf' of null" ) expect(() => includesRamda(2, null)).toThrowWithMessage( TypeError, `Cannot read properties of null (reading 'indexOf')` ) expect(() => includes(2, undefined)).toThrowWithMessage( TypeError, "Cannot read property 'indexOf' of undefined" ) expect(() => includesRamda(2, undefined)).toThrowWithMessage( TypeError, `Cannot read properties of undefined (reading 'indexOf')` )})