Skip to content

Commit 07ef358

Browse files
author
Bryan Wilhite
committed
#20
1 parent a099c01 commit 07ef358

File tree

3 files changed

+14
-21
lines changed

3 files changed

+14
-21
lines changed

src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ export { SyndicationFeed } from './models/syndication-feed';
1919
/* utilities */
2020
export { ArrayUtility } from './utilities/array.utility';
2121
export { CssUtility } from './utilities/css.utility';
22+
export { DisplayItemUtility } from './utilities/display-item.utility';
2223
export { DomUtility } from './utilities/dom.utility';
2324
export { MapObjectUtility } from './utilities/map-object.utility';
2425
export { MathUtility } from './utilities/math.utility';
2526
export { ObjectUtility } from './utilities/object.utility';
27+
export { ReducedGroupUtility } from './utilities/reduced-group-utility';

src/utilities/array.utility.spec.ts

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { MenuDisplayItemModel } from '../models/menu-display-item.model';
2+
import { ReducedGroup } from '../models/reduced-group';
23

34
import { ArrayUtility } from './array.utility';
45

@@ -61,26 +62,16 @@ const flat: MenuDisplayItemModel[] = [
6162
];
6263

6364
it('should group flat set', () => {
64-
const grouped = ArrayUtility.groupBy(flat, i => i.groupId as string);
65-
expect(grouped).not.toBeNull();
66-
console.log({grouped});
65+
const groups: ReducedGroup[] = ArrayUtility.groupBy(flat, (i: MenuDisplayItemModel) => i.groupId);
66+
expect(groups).not.toBeNull();
67+
console.log({groups});
6768

68-
const key = 'group-three';
69-
expect(grouped).toHaveProperty(key);
70-
expect(grouped[key]).toHaveLength(1);
69+
const groupId = 'group-three';
70+
const group = groups.find(i => i.key === groupId);
71+
expect(group.values).toHaveLength(1);
7172

72-
const nested = Object.keys(grouped).map(i => {
73-
const first = grouped[i][0];
74-
const menu: MenuDisplayItemModel = {
75-
id: first.groupId,
76-
displayText: first.groupDisplayText,
77-
childItems: grouped[i]
78-
};
79-
return menu;
80-
});
81-
expect(nested).not.toBeNull();
82-
console.log({nested});
83-
84-
expect(nested.find(i => i.id === key)).toBeTruthy();
85-
expect(nested.find(i => i.id === key).childItems).toHaveLength(1);
73+
const first = group.values[0] as MenuDisplayItemModel;
74+
expect(first).not.toBeNull();
75+
console.log({first});
76+
expect(first.groupId).toEqual(groupId);
8677
});

src/utilities/array.utility.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class ArrayUtility {
2929
}
3030

3131
/**
32-
* reduces the specified reducible in @type {ReducedGroup} groups
32+
* reduces the specified reducible to @type {ReducedGroup} groups
3333
*
3434
* @description https://github.com/BryanWilhite/songhay-core/issues/20
3535
*/

0 commit comments

Comments
 (0)