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