From ef8bee73d8bf5047065f863efff3bd607a0ee0ec Mon Sep 17 00:00:00 2001 From: neverland Date: Sat, 10 Nov 2018 22:29:48 +0800 Subject: [PATCH] [bugfix] Tab: can swipe to disabled tab (#2064) --- .../tab/test/__snapshots__/index.spec.js.snap | 153 ++++++++++++++++++ packages/tab/test/index.spec.js | 63 ++++++++ packages/tabs/index.vue | 2 - 3 files changed, 216 insertions(+), 2 deletions(-) create mode 100644 packages/tab/test/__snapshots__/index.spec.js.snap create mode 100644 packages/tab/test/index.spec.js diff --git a/packages/tab/test/__snapshots__/index.spec.js.snap b/packages/tab/test/__snapshots__/index.spec.js.snap new file mode 100644 index 000000000..e895ffe91 --- /dev/null +++ b/packages/tab/test/__snapshots__/index.spec.js.snap @@ -0,0 +1,153 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`click to switch tab 1`] = ` +
+
+
+
+
title1
+
title2
+
title3
+
+
+
+
Text + +
+ + +
+
+`; + +exports[`click to switch tab 2`] = ` +
+
+
+
+
title1
+
title2
+
title3
+
+
+
+ +
Text + +
+ +
+
+`; + +exports[`swipe to switch tab 1`] = ` +
+
+
+
+
title1
+
title2
+
title3
+
+
+
+
Text + +
+ + +
+
+`; + +exports[`swipe to switch tab 2`] = ` +
+
+
+
+
title1
+
title2
+
title3
+
+
+
+ +
Text + +
+ +
+
+`; + +exports[`swipe to switch tab 3`] = ` +
+
+
+
+
title1
+
title2
+
title3
+
+
+
+ +
Text + +
+ +
+
+`; + +exports[`swipe to switch tab 4`] = ` +
+
+
+
+
title1
+
title2
+
title3
+
+
+
+
Text + +
+ + +
+
+`; diff --git a/packages/tab/test/index.spec.js b/packages/tab/test/index.spec.js new file mode 100644 index 000000000..f6bb435d6 --- /dev/null +++ b/packages/tab/test/index.spec.js @@ -0,0 +1,63 @@ +import Tab from '..'; +import Tabs from '../../tabs'; +import { mount, later, triggerDrag } from '../../../test/utils'; + +function createWrapper(options) { + return mount({ + template: ` + + Text + Text + Text + + `, + components: { + Tab, + Tabs + }, + ...options + }); +} + +test('click to switch tab', async() => { + const onChange = jest.fn(); + const wrapper = createWrapper({ + methods: { + onChange + } + }); + + await later(); + expect(wrapper).toMatchSnapshot(); + + const tabs = wrapper.findAll('.van-tab'); + tabs.at(1).trigger('click'); + tabs.at(2).trigger('click'); + await later(); + expect(wrapper).toMatchSnapshot(); + expect(onChange.mock.calls.length).toEqual(1); +}); + +test('swipe to switch tab', async() => { + const onChange = jest.fn(); + const wrapper = createWrapper({ + methods: { + onChange + } + }); + + const content = wrapper.find('.van-tabs__content'); + await later(); + expect(wrapper).toMatchSnapshot(); + triggerDrag(content, -100, 0); + expect(wrapper).toMatchSnapshot(); + expect(onChange.mock.calls.length).toEqual(1); + triggerDrag(content, -100, 0); + expect(wrapper).toMatchSnapshot(); + triggerDrag(content, 100, 0); + triggerDrag(content, 100, 0); + expect(wrapper).toMatchSnapshot(); + + await later(); + wrapper.destroy(); +}); diff --git a/packages/tabs/index.vue b/packages/tabs/index.vue index 2134ad1ff..40c42a604 100644 --- a/packages/tabs/index.vue +++ b/packages/tabs/index.vue @@ -298,8 +298,6 @@ export default create({ } index += diff; } - - return active; }, // emit event when clicked