diff --git a/playground/components/global/drupal-markup.vue b/playground/components/global/drupal-markup.vue index 050122f0..d04562c1 100644 --- a/playground/components/global/drupal-markup.vue +++ b/playground/components/global/drupal-markup.vue @@ -1,9 +1,13 @@ diff --git a/test/unit/components/drupal-markup.test.ts b/test/unit/components/drupal-markup.test.ts new file mode 100644 index 00000000..e02456bb --- /dev/null +++ b/test/unit/components/drupal-markup.test.ts @@ -0,0 +1,37 @@ +// test/unit/components/drupal-markup.test.ts +// @vitest-environment nuxt +import { describe, it, expect } from 'vitest' +import { mountSuspended } from '@nuxt/test-utils/runtime' +import { defineComponent } from 'vue' +import { useDrupalCe } from '../../../src/runtime/composables/useDrupalCe' +import DrupalMarkup from '../../../playground/components/global/drupal-markup.vue' + +describe('drupal-markup custom element', () => { + const markupData = { + element: 'drupal-markup', + content: '

Some formatted content.

' + } + + const createMarkupComponent = (data = markupData) => defineComponent({ + components: { 'drupal-markup': DrupalMarkup }, + setup() { + const { renderCustomElements } = useDrupalCe() + return { component: renderCustomElements(data) } + }, + template: '' + }) + + it('renders markup content via custom element json', async () => { + const wrapper = await mountSuspended(createMarkupComponent()) + expect(wrapper.html()).toContain('

Some formatted content.

') + }) + + it('renders markup content via custom element markup ', async () => { + const TestComponent = defineComponent({ + components: { 'drupal-markup': DrupalMarkup }, + template: '

Slotted content

' + }) + const wrapper = await mountSuspended(TestComponent) + expect(wrapper.html()).toContain('

Slotted content

') + }) +})