set.spec.js 786 B

1234567891011121314151617181920212223242526272829303132333435
  1. import Alpine from 'alpinejs'
  2. import Spruce from '../dist/spruce'
  3. import { waitFor } from '@testing-library/dom'
  4. beforeEach(() => {
  5. Spruce.subscribers = []
  6. })
  7. beforeAll(() => {
  8. window.Spruce = Spruce
  9. })
  10. test('$store > data can be set inside component', async () => {
  11. document.body.innerHTML = `
  12. <div x-data x-subscribe>
  13. <span x-text="$store.foo.bar"></span>
  14. <button @click="$store.foo.bar = 'car'"></button>
  15. </div>
  16. `
  17. Spruce.store('foo', {
  18. bar: 'bob'
  19. })
  20. await Spruce.start()
  21. Alpine.start()
  22. document.querySelector('button').click()
  23. await waitFor(() => {
  24. expect(Spruce.stores.foo.bar).toEqual('car')
  25. expect(document.querySelector('span').innerText).toEqual('car')
  26. })
  27. })