Files
30-seconds-of-code/test/filterNonUniqueBy/filterNonUniqueBy.test.js
Angelos Chalaris b129b46c0d Tags and tests
2018-07-18 21:02:42 +03:00

33 lines
877 B
JavaScript

const expect = require('expect');
const filterNonUniqueBy = require('./filterNonUniqueBy.js');
test('filterNonUniqueBy is a Function', () => {
expect(filterNonUniqueBy).toBeInstanceOf(Function);
});
test('filterNonUniqueBy works for properties', () => {
expect(filterNonUniqueBy(
[
{ id: 0, value: 'a' },
{ id: 1, value: 'b' },
{ id: 2, value: 'c' },
{ id: 1, value: 'd' },
{ id: 0, value: 'e' },
],
(a, b) => a.id == b.id
)).toEqual([ { id: 2, value: 'c' } ]);
});
test('filterNonUniqueBy works for nested properties', () => {
expect(filterNonUniqueBy(
[
{ id: 0, value: 'a', n: {p: 0} },
{ id: 1, value: 'b', n: {p: 1} },
{ id: 2, value: 'c', n: {p: 2} },
{ id: 1, value: 'd', n: {p: 0} },
{ id: 0, value: 'e', n: {p: 1} },
],
(a, b) => a.id == b.id
)).toEqual([ { id: 2, value: 'c', n: {p: 2} } ]);
});