devextreme-vue
Version:
DevExtreme Vue UI and Visualization Components
65 lines (63 loc) • 2.27 kB
JavaScript
/*!
* devextreme-vue
* Version: 25.1.4
* Build date: Tue Aug 05 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
*
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file in the root of the project for details.
*
* https://github.com/DevExpress/devextreme-vue
*/
;
Object.defineProperty(exports, "__esModule", { value: true });
const test_utils_1 = require("@vue/test-utils");
const vue_1 = require("vue");
const templates_discovering_1 = require("../templates-discovering");
describe('templates-discovering (vue 3)', () => {
it('discovers named scoped slot', () => {
const template = '<template #slot_name=\'_\'/>';
expect(getDiscoveredTemplates(template)).toEqual(['slot_name']);
});
it('discovers named not-scoped slot', () => {
const template = '<template #slot_name/>';
expect(getDiscoveredTemplates(template)).toEqual(['slot_name']);
});
// Vue doesn't recognize this as slot
it('doesn\'t discover not-scoped not-named slot', () => {
const template = '<template/>';
expect(getDiscoveredTemplates(template)).toEqual([]);
});
// to avoid creating templates from config-components
it('doesn\'t discover implicit default slot', () => {
const template = '<div>abc</div>';
expect(getDiscoveredTemplates(template)).toEqual([]);
});
// to avoid creating templates from config-components
it('doesn\'t discover custom component', () => {
const template = '<customComponent #default=\'_\'/>';
expect(getDiscoveredTemplates(template)).toEqual([]);
});
});
function getDiscoveredTemplates(template) {
let actual;
const vm = (0, vue_1.defineComponent)({
template: `<container>${template}</container>`,
components: {
container: {
render() {
actual = (0, templates_discovering_1.discover)(this);
return null;
},
},
customComponent: {
render() {
return null;
},
},
},
});
(0, test_utils_1.mount)(vm);
return Object.keys(actual);
}