From 23723eb78321223826456099437df584cdd44829 Mon Sep 17 00:00:00 2001 From: briwa Date: Thu, 16 May 2019 19:38:23 +0800 Subject: [PATCH 1/3] test(v-stream): make sure that it passes the value correctly also on custom component --- test/test.js | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/test/test.js b/test/test.js index 76a99ca..c8d23c7 100644 --- a/test/test.js +++ b/test/test.js @@ -232,7 +232,7 @@ test('v-stream directive (with .stop, .prevent modify)', done => { }) }) -test('v-stream directive (with data)', done => { +test('v-stream directive on native element (with data)', done => { const vm = new Vue({ data: { delta: -1 @@ -270,6 +270,52 @@ test('v-stream directive (with data)', done => { }) }) +test('v-stream directive on custom component (with data)', done => { + const customButton = { + name: 'custom-button', + template: `` + } + + const vm = new Vue({ + components: { + customButton + }, + data: { + delta: -1 + }, + template: ` +
+ {{ count }} + + +
+ `, + domStreams: ['click$'], + subscriptions () { + return { + count: this.click$.pipe( + pluck('data'), + startWith(0), + scan((total, change) => total + change), + ) + } + } + }).$mount() + + expect(vm.$el.querySelector('span').textContent).toBe('0') + click(vm.$el.querySelector('button')) + nextTick(() => { + expect(vm.$el.querySelector('span').textContent).toBe('-1') + vm.delta = 1 + nextTick(() => { + click(vm.$el.querySelector('button')) + nextTick(() => { + expect(vm.$el.querySelector('span').textContent).toBe('0') + done() + }) + }) + }) +}) + test('v-stream directive (multiple bindings on same node)', done => { const vm = new Vue({ template: ` From 1f9433d1f683df20c04287a2c99d2d581609e036 Mon Sep 17 00:00:00 2001 From: briwa Date: Thu, 16 May 2019 19:45:04 +0800 Subject: [PATCH 2/3] refactor(v-stream/test): combine them to one because it's redundant? --- test/test.js | 47 +++++------------------------------------------ 1 file changed, 5 insertions(+), 42 deletions(-) diff --git a/test/test.js b/test/test.js index c8d23c7..4ab6c42 100644 --- a/test/test.js +++ b/test/test.js @@ -232,48 +232,10 @@ test('v-stream directive (with .stop, .prevent modify)', done => { }) }) -test('v-stream directive on native element (with data)', done => { - const vm = new Vue({ - data: { - delta: -1 - }, - template: ` -
- {{ count }} - -
- `, - domStreams: ['click$'], - subscriptions () { - return { - count: this.click$.pipe( - pluck('data'), - startWith(0), - scan((total, change) => total + change), - ) - } - } - }).$mount() - - expect(vm.$el.querySelector('span').textContent).toBe('0') - click(vm.$el.querySelector('button')) - nextTick(() => { - expect(vm.$el.querySelector('span').textContent).toBe('-1') - vm.delta = 1 - nextTick(() => { - click(vm.$el.querySelector('button')) - nextTick(() => { - expect(vm.$el.querySelector('span').textContent).toBe('0') - done() - }) - }) - }) -}) - -test('v-stream directive on custom component (with data)', done => { +test('v-stream directive (with data)', done => { const customButton = { name: 'custom-button', - template: `` + template: `` } const vm = new Vue({ @@ -286,6 +248,7 @@ test('v-stream directive on custom component (with data)', done => { template: `
{{ count }} + +
`, @@ -302,12 +265,12 @@ test('v-stream directive on custom component (with data)', done => { }).$mount() expect(vm.$el.querySelector('span').textContent).toBe('0') - click(vm.$el.querySelector('button')) + click(vm.$el.querySelector('#custom-button')) nextTick(() => { expect(vm.$el.querySelector('span').textContent).toBe('-1') vm.delta = 1 nextTick(() => { - click(vm.$el.querySelector('button')) + click(vm.$el.querySelector('#native-button')) nextTick(() => { expect(vm.$el.querySelector('span').textContent).toBe('0') done() From 6ed5039bcccb673618b494b27b310b37cf729c5a Mon Sep 17 00:00:00 2001 From: briwa Date: Fri, 17 May 2019 09:46:32 +0800 Subject: [PATCH 3/3] refactor(v-stream/test): use a different event name --- test/test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test.js b/test/test.js index 4ab6c42..5376cd5 100644 --- a/test/test.js +++ b/test/test.js @@ -235,7 +235,7 @@ test('v-stream directive (with .stop, .prevent modify)', done => { test('v-stream directive (with data)', done => { const customButton = { name: 'custom-button', - template: `` + template: `` } const vm = new Vue({ @@ -249,7 +249,7 @@ test('v-stream directive (with data)', done => {
{{ count }} - + + +
`, domStreams: ['click$'],