diff --git a/src/__tests__/components/CompWithDirective.vue b/src/__tests__/components/CompWithDirective.vue new file mode 100644 index 00000000..417f193f --- /dev/null +++ b/src/__tests__/components/CompWithDirective.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/__tests__/components/directives/v-value.js b/src/__tests__/components/directives/v-value.js new file mode 100644 index 00000000..509638dd --- /dev/null +++ b/src/__tests__/components/directives/v-value.js @@ -0,0 +1,3 @@ +export function value(el, binding) { + el.value = binding.value +} diff --git a/src/__tests__/use-global-directive.js b/src/__tests__/use-global-directive.js new file mode 100644 index 00000000..55108c88 --- /dev/null +++ b/src/__tests__/use-global-directive.js @@ -0,0 +1,18 @@ +import '@testing-library/jest-dom/extend-expect' +import {render, wait} from '@testing-library/vue' +import {value as valueDirective} from './components/directives/v-value' +import CompWithDirective from './components/CompWithDirective.vue' + +test('element should have the same value as the directive', async () => { + const value = 'test' + const {container, updateProps} = render( + CompWithDirective, + {props: {value}}, + vue => vue.directive('value', valueDirective), + ) + await wait() + expect(container.firstChild).toHaveValue(value) + const anotherValue = 'another' + await updateProps({value: anotherValue}) + expect(container.firstChild).toHaveValue(anotherValue) +})