UNPKG

devextreme-vue

Version:

DevExtreme Vue UI and Visualization Components

116 lines (114 loc) 4.45 kB
/*! * devextreme-vue * Version: 25.1.6 * Build date: Mon Oct 13 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 */ "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const test_utils_1 = require("@vue/test-utils"); const vue_1 = require("vue"); const text_box_1 = __importDefault(require("../../text-box")); jest.setTimeout(1000); beforeEach(() => { jest.clearAllMocks(); }); describe('two-way binding', () => { it('v-model works correctly', async () => { expect.assertions(1); const vm = (0, vue_1.defineComponent)({ template: `<dx-text-box id="component1" v-model="testValue"></dx-text-box> <dx-text-box id="component2" v-model="testValue"></dx-text-box> `, components: { DxTextBox: text_box_1.default, }, data() { return { testValue: 'value', }; }, }); const wrapper = (0, test_utils_1.mount)(vm); const component = wrapper.getComponent('#component2').vm; component.$_config.updateValue = jest.fn(); wrapper.getComponent('#component1').vm.$emit('update:modelValue', 'newValue'); await (0, vue_1.nextTick)(() => { expect(component.$_config.updateValue).toBeCalled(); }); }); it('v-model with argument works correctly', async () => { expect.assertions(1); const vm = (0, vue_1.defineComponent)({ template: `<dx-text-box id="component1" v-model:value="testValue"></dx-text-box> <dx-text-box id="component2" v-model:value="testValue"></dx-text-box> `, components: { DxTextBox: text_box_1.default, }, props: { testValue: String, }, }); const wrapper = (0, test_utils_1.mount)(vm); const component = wrapper.getComponent('#component2').vm; component.$_config.updateValue = jest.fn(); await wrapper.setProps({ testValue: 'test' }); await (0, vue_1.nextTick)(() => { expect(component.$_config.updateValue).toBeCalled(); }); }); it('dxClass should be set when class attr ', async () => { expect.assertions(1); const vm = (0, vue_1.defineComponent)({ template: `<dx-text-box id="component" :class="customClass"></dx-text-box> `, components: { DxTextBox: text_box_1.default, }, props: { customClass: { type: String, default: 'custom1', }, }, }); const wrapper = (0, test_utils_1.mount)(vm); const component = wrapper.getComponent('#component'); await wrapper.setProps({ customClass: 'custom2' }); await (0, vue_1.nextTick)(() => { expect(component.element.classList.toString()).toBe('custom2 dx-show-invalid-badge dx-textbox dx-texteditor dx-editor-outlined dx-texteditor-empty dx-widget'); }); }); it('dxClass should be set when class attr is undefined', async () => { expect.assertions(1); const vm = (0, vue_1.defineComponent)({ template: `<dx-text-box id="component" :class="{custom: customClass}"></dx-text-box> `, components: { DxTextBox: text_box_1.default, }, props: { customClass: { type: String, default: true, }, }, }); const wrapper = (0, test_utils_1.mount)(vm); const component = wrapper.getComponent('#component'); await wrapper.setProps({ customClass: false }); await (0, vue_1.nextTick)(() => { expect(component.element.classList.toString()).toBe('dx-show-invalid-badge dx-textbox dx-texteditor dx-editor-outlined dx-texteditor-empty dx-widget'); }); }); });