devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
112 lines (111 loc) • 3.78 kB
JavaScript
/**
* DevExtreme (esm/__internal/scheduler/utils/data_accessor/appointment_data_accessor.test.js)
* Version: 24.2.7
* Build date: Mon Apr 28 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
describe,
expect,
it
} from "@jest/globals";
import {
AppointmentDataAccessor
} from "./appointment_data_accessor";
describe("AppointmentDataAccessor", (() => {
it("should get custom property", (() => {
const dataAccessor = new AppointmentDataAccessor({
propExpr: "prop"
}, false);
expect(dataAccessor.get("prop", {
prop: 1
})).toBe(1)
}));
it("should set custom property", (() => {
const dataAccessor = new AppointmentDataAccessor({
propExpr: "prop"
}, false);
const obj = {
prop: 1
};
dataAccessor.set("prop", obj, 2);
expect(obj.prop).toBe(2)
}));
it("should get custom property by alias", (() => {
const dataAccessor = new AppointmentDataAccessor({
propExpr: "alias"
}, false);
expect(dataAccessor.get("prop", {
alias: 1
})).toBe(1)
}));
it("should set custom property by alias", (() => {
const dataAccessor = new AppointmentDataAccessor({
propExpr: "alias"
}, false);
const obj = {
alias: 1
};
dataAccessor.set("prop", obj, 2);
expect(obj.alias).toBe(2)
}));
it("should get custom property by nested alias", (() => {
const dataAccessor = new AppointmentDataAccessor({
propExpr: "nested.alias"
}, false);
expect(dataAccessor.get("prop", {
nested: {
alias: 1
}
})).toBe(1)
}));
it("should set custom property by nested alias", (() => {
const dataAccessor = new AppointmentDataAccessor({
propExpr: "nested.alias"
}, false);
const obj = {
nested: {
alias: 1
}
};
dataAccessor.set("prop", obj, 2);
expect(obj.nested.alias).toBe(2)
}));
it("should get serialized date property", (() => {
const dataAccessor = new AppointmentDataAccessor({
startDateExpr: "startDate"
}, true);
expect(dataAccessor.get("startDate", {
startDate: "2025/04/29"
})).toEqual(new Date(2025, 3, 29))
}));
it("should set serialized date as number", (() => {
const dataAccessor = new AppointmentDataAccessor({
startDateExpr: "startDate"
}, true, "number");
const obj = {
startDate: "2025-04-30T15:00:00.000Z"
};
dataAccessor.set("startDate", obj, new Date("2025-05-30T15:00:00.000Z"));
expect(obj.startDate).toBe(17486172e5)
}));
it("should set serialized date as in initial object", (() => {
const dataAccessor = new AppointmentDataAccessor({
startDateExpr: "startDate"
}, true);
const obj = {
startDate: "2025/04/29"
};
dataAccessor.set("startDate", obj, new Date("2025-05-30T15:00:00.000Z"));
expect(obj.startDate).toBe("2025/05/30")
}));
it("should return correct access expression existence", (() => {
const dataAccessor = new AppointmentDataAccessor({
startDateExpr: "startDate"
}, true);
expect(dataAccessor.has("startDate")).toBe(true);
expect(dataAccessor.has("endDate")).toBe(false)
}))
}));