|
@@ -0,0 +1,70 @@
|
|
|
|
|
+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)
|
|
|
|
|
+ })
|
|
|
|
|
+})
|
|
|
|
|
+
|