import { describe, test, it, expect } from 'vitest' import ArrayUtils from '~/services/utils/arrayUtils' import DateUtils from '~/services/utils/dateUtils' describe('sort', () => { test('with integers', () => { expect(ArrayUtils.sort([2, 1, 3])).toEqual([1, 2, 3]) expect(ArrayUtils.sort([2, 1, 3], true)).toEqual([3, 2, 1]) }) test('with string', () => { expect(ArrayUtils.sort(['b', 'a', 'c'])).toEqual(['a', 'b', 'c']) expect(ArrayUtils.sort(['b', 'a', 'c'], true)).toEqual(['c', 'b', 'a']) }) test('with dates', () => { const input = [ new Date(2023, 0, 12), new Date(2023, 0, 10), new Date(2023, 0, 11), ] const expected = [ new Date(2023, 0, 10), new Date(2023, 0, 11), new Date(2023, 0, 12), ] const expectedReverse = [ new Date(2023, 0, 12), new Date(2023, 0, 11), new Date(2023, 0, 10), ] expect(DateUtils.sort(input)).toEqual(expected) expect(DateUtils.sort(input, true)).toEqual(expectedReverse) }) }) describe('sortObjectsByProp', () => { test('existing prop', () => { const input = [ { id: 2, name: 'b' }, { id: 1, name: 'a' }, { id: 3, name: 'c' }, ] const expected = [ { id: 1, name: 'a' }, { id: 2, name: 'b' }, { id: 3, name: 'c' }, ] expect(ArrayUtils.sortObjectsByProp(input, 'id')).toEqual(expected) }) test('existing prop (reverse)', () => { const input = [ { id: 2, name: 'b' }, { id: 1, name: 'a' }, { id: 3, name: 'c' }, ] const expected = [ { id: 3, name: 'c' }, { id: 2, name: 'b' }, { id: 1, name: 'a' }, ] expect(ArrayUtils.sortObjectsByProp(input, 'id', true)).toEqual(expected) }) })