nesting.spec.js 758 B

1234567891011121314151617181920212223242526272829
  1. import projectX from 'project-x'
  2. import { wait } from '@testing-library/dom'
  3. const timeout = ms => new Promise(resolve => setTimeout(resolve, ms))
  4. global.MutationObserver = class {
  5. observe() {}
  6. }
  7. test('can nest components', async () => {
  8. document.body.innerHTML = `
  9. <div x-data="{ foo: 'bar' }">
  10. <span x-text="foo"></span>
  11. <div x-data="{ foo: 'bob' }">
  12. <button x-on:click="foo = 'baz'">Something</button>
  13. </div>
  14. </div>
  15. `
  16. projectX.start()
  17. expect(document.querySelector('span').innerText).toEqual('bar')
  18. document.querySelector('button').click()
  19. await timeout(20)
  20. await wait(() => { expect(document.querySelector('span').innerText).toEqual('bar') })
  21. })