1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 'use strict';
- var test = require('tape').test;
- var find = require('./find.js');
- test('can find an element', function (t) {
- var arr = [1, 2, 3, 4, 5];
- var found = find(arr, function (el) {
- return el === 2;
- });
- t.equal(2, found);
- t.end();
- });
- test('can find an element from an object', function (t) {
- var arr = [{name: 'adam'}, {name: 'eve'}, {name: 'john'}];
- var found = find(arr, function (el) {
- return el.name === 'eve';
- });
- t.deepEqual({name: 'eve'}, found);
- t.end();
- });
- test('returns undefined if no callback returns true', function (t) {
- var arr = [6, 7, 8];
- var found = find(arr, function (el) {
- return el === 1;
- });
- t.equal(found, undefined);
- t.end();
- });
- test('setting object as thisArg', function (t) {
- t.plan(3);
- function Car() {}
- var car = new Car();
- var arr = [1, 2, 3];
- find(arr, function (el) {
- t.ok(this instanceof Car, 'this should be instanceof Car');
- }, car);
- });
- test('loop should exit on first find', function (t) {
- t.plan(3);
- var arr = [1, 2, 3, 4, 5];
- find(arr, function (el, index) {
- t.ok(true, 'element ' + index);
- return el === 3;
- });
- });
- test(
- 'third callback argument array should be equal to first argument array',
- function (t) {
- t.plan(3);
- var arr = [1, 2, 3];
- find(arr, function (el, index, array) {
- t.deepEqual(arr, array);
- });
- }
- );
- test(
- 'should throw TypeError if second argument is not a function',
- function (t) {
- t.plan(1);
- var arr = [1, 2, 3];
- try {
- find(arr, 'string');
- } catch (e) {
- t.ok(e instanceof TypeError);
- }
- }
- );
|