Skip to content

Commit 1aa9494

Browse files
authored
fix(VueWrapper): save classes that are substrings of dx classes (DevExpress#30014)
1 parent aa8d3b1 commit 1aa9494

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

packages/devextreme-vue/src/core/__tests__/component.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ describe('component rendering', () => {
161161
const component = defineComponent({
162162
template:
163163
`
164-
<test-component id="component" class="custom-class" :class="{'dx-chat-disabled': isDisabled}"></test-component>
164+
<test-component id="component" class="chat" :class="{'dx-chat-disabled': isDisabled}"></test-component>
165165
<button @click="toggleDisabledState($event)">Click me</button>
166166
`,
167167
components: { TestComponent },
@@ -182,11 +182,11 @@ describe('component rendering', () => {
182182

183183
await wrapper.find('button').trigger('click');
184184

185-
expect(componentContainer.element.className).toBe('custom-class dx-chat-disabled');
185+
expect(componentContainer.element.className).toBe('chat dx-chat-disabled');
186186

187187
const attrsPassedToVNodeInRenderMethod = wrapper.vm.$.subTree?.children?.[0]?.component?.subTree?.props?.class;
188188

189-
const expectedClasses = 'custom-class dx-chat-disabled';
189+
const expectedClasses = 'chat dx-chat-disabled';
190190

191191
expect(attrsPassedToVNodeInRenderMethod).toBe(expectedClasses);
192192
expect(componentContainer.element.className).toBe(expectedClasses);
@@ -196,7 +196,7 @@ describe('component rendering', () => {
196196
const component = defineComponent({
197197
template:
198198
`
199-
<test-component id="component" class="custom-class" :class="{'dx-chat-disabled': isDisabled}"></test-component>
199+
<test-component id="component" class="chat" :class="{'dx-chat-disabled': isDisabled}"></test-component>
200200
<button @click="toggleDisabledState($event)">Click me</button>
201201
`,
202202
components: { TestComponent },
@@ -219,11 +219,11 @@ describe('component rendering', () => {
219219

220220
await wrapper.find('button').trigger('click');
221221

222-
expect(componentContainer.element.className).toBe('custom-class dx-chat dx-hover dx-chat-disabled');
222+
expect(componentContainer.element.className).toBe('chat dx-chat dx-hover dx-chat-disabled');
223223

224224
await wrapper.find('button').trigger('click');
225225

226-
expect(componentContainer.element.className).toBe('custom-class dx-chat dx-hover');
226+
expect(componentContainer.element.className).toBe('chat dx-chat dx-hover');
227227
});
228228

229229
it('forwards correct classes when only a dynamic attr was defined', async () => {

packages/devextreme-vue/src/core/component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ function prepareAttrs(attrs, dxClassesSyncedWithClassAttr: string) {
6262
if (attrValue !== undefined && attrValue !== null) {
6363
if (attr === 'class') {
6464
const nonDXClassesFromAttr = attrValue.split(' ')
65-
.filter((classFromAttr: string) => !classFromAttr.startsWith(dxClassesPrefix) && !dxClassesSyncedWithClassAttr.includes(classFromAttr))
65+
.filter((classFromAttr: string) => !classFromAttr.startsWith(dxClassesPrefix))
6666
.join(' ');
6767

6868
attributes[attr] = [nonDXClassesFromAttr, dxClassesSyncedWithClassAttr].filter((item) => item !== '').join(' ');

0 commit comments

Comments
 (0)