devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
120 lines (118 loc) • 5.13 kB
JavaScript
/**
* DevExtreme (cjs/__internal/scheduler/utils/loader/loader.test.js)
* Version: 25.1.3
* Build date: Wed Jun 25 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
var _globals = require("@jest/globals");
var _m_data_source = require("../../../data/data_source/m_data_source");
var _m_custom_store = _interopRequireDefault(require("../../../data/m_custom_store"));
var _loader = require("./loader");
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
const data = ["one", "two"];
const transformedData = ["one_transformed", "two_transformed"];
class BaseLoader extends _loader.Loader {
constructor(config) {
super(config, {
pageSize: 0
});
this.onInit()
}
onLoadTransform(items) {
return items.map((item => `${item}_transformed`))
}
onLoadError() {}
onChange() {}
}(0, _globals.describe)("resource loader", (() => {
(0, _globals.describe)("Array", (() => {
(0, _globals.it)("should unwrap resources on load and dispose datasource", (async () => {
var _loader$dataSource;
const loader = new BaseLoader({
dataSource: data
});
await loader.load();
(0, _globals.expect)(loader.items).toEqual(transformedData);
(0, _globals.expect)(loader.data).toEqual(data);
loader.dispose();
(0, _globals.expect)(loader.items).toEqual([]);
(0, _globals.expect)(loader.data).toEqual([]);
(0, _globals.expect)(null === (_loader$dataSource = loader.dataSource) || void 0 === _loader$dataSource ? void 0 : _loader$dataSource.items()).toBe(void 0)
}))
}));
(0, _globals.describe)("DataSource", (() => {
(0, _globals.it)("should unwrap resources on load and shouldn't dispose external datasource", (async () => {
var _loader$dataSource2;
const dataSource = new _m_data_source.DataSource({
store: new _m_custom_store.default({
load: () => data
})
});
const loader = new BaseLoader({
dataSource: dataSource
});
await loader.load();
(0, _globals.expect)(loader.items).toEqual(transformedData);
(0, _globals.expect)(loader.data).toEqual(data);
loader.dispose();
(0, _globals.expect)(loader.items).toEqual([]);
(0, _globals.expect)(loader.data).toEqual([]);
(0, _globals.expect)(null === (_loader$dataSource2 = loader.dataSource) || void 0 === _loader$dataSource2 ? void 0 : _loader$dataSource2.items()).toBe(data)
}));
(0, _globals.it)("should load resource data only once", (async () => {
let loadCount = 0;
const dataSource = new _m_data_source.DataSource({
store: new _m_custom_store.default({
load: () => {
loadCount += 1;
return data
}
})
});
const loader = new BaseLoader({
dataSource: dataSource
});
(0, _globals.expect)(loader.isLoaded()).toBe(false);
await Promise.all([loader.load(), loader.load()]);
await loader.load();
(0, _globals.expect)(loader.data).toEqual(data);
(0, _globals.expect)(loader.items).toEqual(transformedData);
(0, _globals.expect)(loader.isLoaded()).toBe(true);
(0, _globals.expect)(loadCount).toBe(1)
}));
(0, _globals.it)("should fill items initially for loaded dataSource", (async () => {
const dataSource = new _m_data_source.DataSource({
store: new _m_custom_store.default({
load: () => data
})
});
await dataSource.load();
const loader = new BaseLoader({
dataSource: dataSource
});
(0, _globals.expect)(loader.isLoaded()).toBe(true);
(0, _globals.expect)(loader.data).toEqual(data);
(0, _globals.expect)(loader.items).toEqual(transformedData)
}));
(0, _globals.it)("should fill items for dataSource loaded externally", (async () => {
const dataSource = new _m_data_source.DataSource({
store: new _m_custom_store.default({
load: () => data
})
});
const loader = new BaseLoader({
dataSource: dataSource
});
await dataSource.load();
(0, _globals.expect)(loader.isLoaded()).toBe(true);
(0, _globals.expect)(loader.data).toEqual(data);
(0, _globals.expect)(loader.items).toEqual(transformedData)
}))
}))
}));