Browse Source

tests(cover array methods)

Ryan Chandler 4 years ago
parent
commit
1884451eac
1 changed files with 28 additions and 0 deletions
  1. 28 0
      tests/set.spec.js

+ 28 - 0
tests/set.spec.js

@@ -33,4 +33,32 @@ test('$store > data can be set inside component', async () => {
         expect(Spruce.stores.foo.bar).toEqual('car')
         expect(Spruce.stores.foo.bar).toEqual('car')
         expect(document.querySelector('span').innerText).toEqual('car')
         expect(document.querySelector('span').innerText).toEqual('car')
     })
     })
+})
+
+test('$store > array data causes DOM updates', async () => {
+    document.body.innerHTML = `
+        <div x-data>
+            <template x-for="item in $store.todo.todos">
+                <p x-text="item"></p>
+            </template>
+            <button @click="$store.todo.todos.push('foo')"></button>
+        </div>
+    `
+
+    Spruce.store('todo', {
+        todos: []
+    })
+
+    await Spruce.start()
+    
+    Alpine.start()
+
+    expect(document.querySelector('p')).toBeFalsy()
+
+    document.querySelector('button').click()
+
+    await waitFor(() => {
+        expect(document.querySelector('p')).toBeTruthy()
+        expect(document.querySelector('p').innerText).toEqual('foo')
+    })
 })
 })