devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
94 lines (93 loc) • 3.29 kB
JavaScript
/**
* DevExtreme (esm/__internal/scheduler/utils/resource_manager/agenda_group_utils.test.js)
* Version: 25.2.8
* Build date: Mon Jun 08 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
describe,
expect,
it
} from "@jest/globals";
import {
getResourceManagerMock
} from "../../__mock__/resource_manager.mock";
import {
reduceResourcesTree
} from "./agenda_group_utils";
describe("agenda group utils", () => {
describe("reduceResourcesTree", () => {
it("should reduce tree by appointments resources", async () => {
const manager = getResourceManagerMock();
await manager.loadGroupResources(["roomId", "nested.priorityId"]);
expect(reduceResourcesTree(manager.resourceById, manager.groupsTree, [{
itemData: {
roomId: 0,
nested: {
priorityId: [1, 2]
}
}
}, {
itemData: {
roomId: 1,
nested: {
priorityId: 2
}
}
}])).toEqual([{
children: [{
children: [],
grouped: {
"nested.priorityId": 1,
roomId: 0
},
resourceIndex: "nested.priorityId",
resourceText: "Low Priority"
}, {
children: [],
grouped: {
"nested.priorityId": 2,
roomId: 0
},
resourceIndex: "nested.priorityId",
resourceText: "High Priority"
}],
grouped: {
roomId: 0
},
resourceIndex: "roomId",
resourceText: "Room 1"
}, {
children: [{
children: [],
grouped: {
"nested.priorityId": 1,
roomId: 1
},
resourceIndex: "nested.priorityId",
resourceText: "Low Priority"
}, {
children: [],
grouped: {
"nested.priorityId": 2,
roomId: 1
},
resourceIndex: "nested.priorityId",
resourceText: "High Priority"
}],
grouped: {
roomId: 1
},
resourceIndex: "roomId",
resourceText: "Room 2"
}])
});
it("should reduce tree by zero appointments", async () => {
const manager = getResourceManagerMock();
await manager.loadGroupResources(["roomId", "nested.priorityId"]);
expect(reduceResourcesTree(manager.resourceById, manager.groupsTree, [])).toEqual([])
})
})
});