devextreme-vue
Version:
DevExtreme Vue UI and Visualization Components
101 lines (99 loc) • 4.56 kB
JavaScript
/*!
* devextreme-vue
* Version: 25.1.5
* Build date: Wed Sep 03 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
*/
import { VueWrapper } from '@vue/test-utils';
import { discover } from '../templates-discovering';
import { TemplatesManager } from '../templates-manager';
jest.mock('../templates-discovering');
const discoverMock1 = () => ({});
const discoverMock2 = () => ({ template1: jest.fn() });
const discoverMock3 = () => ({ template1: jest.fn(), template2: jest.fn() });
describe('TemplatesManager', () => {
describe('isDirty', () => {
it('after init: false', () => {
discover.mockImplementationOnce(discoverMock1);
const templatesManager = new TemplatesManager(VueWrapper);
expect(templatesManager.isDirty).toBeFalsy();
});
it('after init: true', () => {
discover.mockImplementationOnce(discoverMock2);
const templatesManager = new TemplatesManager(VueWrapper);
expect(templatesManager.isDirty).toBeTruthy();
});
it('after discover: false (1)', () => {
discover.mockImplementationOnce(discoverMock1);
const templatesManager = new TemplatesManager(VueWrapper);
discover.mockImplementationOnce(discoverMock1);
templatesManager.discover();
expect(templatesManager.isDirty).toBeFalsy();
});
it('after discover: false (2)', () => {
discover.mockImplementationOnce(discoverMock3);
const templatesManager = new TemplatesManager(VueWrapper);
templatesManager.resetDirtyFlag();
discover.mockImplementationOnce(discoverMock3);
templatesManager.discover();
expect(templatesManager.isDirty).toBeFalsy();
});
it('after discover: true (1)', () => {
discover.mockImplementationOnce(discoverMock1);
const templatesManager = new TemplatesManager(VueWrapper);
discover.mockImplementationOnce(discoverMock2);
templatesManager.discover();
expect(templatesManager.isDirty).toBeTruthy();
});
it('after discover: true (2)', () => {
discover.mockImplementationOnce(discoverMock2);
const templatesManager = new TemplatesManager(VueWrapper);
templatesManager.resetDirtyFlag();
discover.mockImplementationOnce(discoverMock3);
templatesManager.discover();
expect(templatesManager.isDirty).toBeTruthy();
});
it('after discover: true (3)', () => {
discover.mockImplementationOnce(discoverMock3);
const templatesManager = new TemplatesManager(VueWrapper);
templatesManager.resetDirtyFlag();
discover.mockImplementationOnce(discoverMock2);
templatesManager.discover();
expect(templatesManager.isDirty).toBeTruthy();
});
});
describe('resetDirtyFlag', () => {
it('resets flag value', () => {
discover.mockImplementationOnce(discoverMock3);
const templatesManager = new TemplatesManager(VueWrapper);
templatesManager.resetDirtyFlag();
expect(templatesManager.isDirty).toBeFalsy();
});
});
describe('templates', () => {
it('returns empty templates', () => {
discover.mockImplementationOnce(discoverMock1);
const templatesManager = new TemplatesManager(VueWrapper);
expect(templatesManager.templates).toEqual({});
});
it('returns templates', () => {
discover.mockImplementationOnce(discoverMock3);
const templatesManager = new TemplatesManager(VueWrapper);
expect(Object.keys(templatesManager.templates)).toEqual(['template1', 'template2']);
});
it('clear templates when we do not have slots', () => {
discover.mockImplementationOnce(discoverMock3);
const templatesManager = new TemplatesManager(VueWrapper);
expect(Object.keys(templatesManager.templates)).toEqual(['template1', 'template2']);
discover.mockImplementationOnce(discoverMock1);
templatesManager.discover();
expect(Object.keys(templatesManager.templates)).toEqual([]);
});
});
});