1
0

$refs.spec.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { haveText, html, test } from '../../utils'
  2. test('can reference elements from event listeners',
  3. html`
  4. <div x-data="{}">
  5. <button x-on:click="$refs['bob'].textContent = 'lob'"></button>
  6. <span x-ref="bob"></span>
  7. </div>
  8. `,
  9. ({ get }) => {
  10. get('button').click()
  11. get('span').should(haveText('lob'))
  12. }
  13. )
  14. test('can reference elements from data object methods',
  15. html`
  16. <div x-data="{ foo() { this.$refs.bob.textContent = 'lob' } }">
  17. <button x-on:click="foo()"></button>
  18. <span x-ref="bob"></span>
  19. </div>
  20. `,
  21. ({ get }) => {
  22. get('button').click()
  23. get('span').should(haveText('lob'))
  24. }
  25. )
  26. test('can reference elements from x-init',
  27. html`
  28. <div x-data x-init="$refs.foo.textContent = 'lob'">
  29. <span x-ref="foo">bob</span>
  30. </div>
  31. `,
  32. ({ get }) => {
  33. get('span').should(haveText('lob'))
  34. }
  35. )
  36. test('can reference elements outside of x-init',
  37. html`
  38. <div x-data x-ref="foo" data-foo="bar">
  39. <div x-init="() => {}">
  40. <span x-text="$refs.foo.dataset.foo"></span>
  41. </div>
  42. </div>
  43. `,
  44. ({ get }) => {
  45. get('span').should(haveText('bar'))
  46. }
  47. )