diff --git a/packages/vue-components/src/__tests__/Closeable.spec.js b/packages/vue-components/src/__tests__/Closeable.spec.js new file mode 100644 index 0000000000..38a398f07d --- /dev/null +++ b/packages/vue-components/src/__tests__/Closeable.spec.js @@ -0,0 +1,12 @@ +import closeable from '../directives/Closeable'; + +describe('Closeable directive', () => { + test('preserves plain text content', () => { + const element = document.createElement('div'); + element.textContent = 'Plain text'; + + closeable.mounted(element); + + expect(element.querySelector('.content').textContent).toBe('Plain text'); + }); +}); diff --git a/packages/vue-components/src/directives/Closeable.js b/packages/vue-components/src/directives/Closeable.js index 0f023b9efa..489848c275 100644 --- a/packages/vue-components/src/directives/Closeable.js +++ b/packages/vue-components/src/directives/Closeable.js @@ -51,7 +51,7 @@ module.exports = { const content = document.createElement('div'); content.classList.add('content'); - Array.from(el.children).forEach(child => content.append(child)); + Array.from(el.childNodes).forEach(child => content.append(child)); el.replaceChildren(); el.append(content); el.classList.add('closeable-wrapper');