zhenyulei 7 years ago
parent
commit
89381c4821

+ 41 - 15
src/packages/tab/__test__/tab.spec.js

@@ -5,17 +5,26 @@ import Vue from 'vue';
 
 describe('Tab.vue', () => {
     const wrapper = mount(Tab);
+    
     it('页签类型为based', () => {
         wrapper.setProps({ type: 'based' });
         return Vue.nextTick().then(function () {
             expect(wrapper.contains('.based')).toBe(true);
         })
     });
-    
+
     it('当前tab的位置', () => {
         wrapper.setProps({ positionNav: 'left' });
         return Vue.nextTick().then(function () {
-            expect(wrapper.contains('.nut-tab')).toBe(true);
+            expect(wrapper.contains('.nut-tab-title-leftnav')).toBe(true);
+            
+        })
+    });
+
+    it('是否显示内容区域', () => {
+        wrapper.setProps({ contentShow: true });
+        return Vue.nextTick().then(function () {
+            expect(wrapper.contains('.nut-tab-item')).toBe(true);
             
         })
     });
@@ -24,7 +33,7 @@ describe('Tab.vue', () => {
         wrapper.setData({ tabTitleList: [
             {
               tabTitle: "衣物",
-              disable: false,
+              disable: true,
               iconUrl:
                 "http://img13.360buyimg.com/uba/jfs/t27280/289/2061314663/2392/872e32ff/5bf76318Ndc80c1d8.jpg",
               content: "<p>衣物内容</p>"
@@ -48,18 +57,35 @@ describe('Tab.vue', () => {
               content: "<p>电影票内容</p>"
             }
           ] });
-             setTimeout(()=>{
-                return Vue.nextTick().then(function () {
-                        expect(wrapper.findAll('.nut-title-nav-leftnav').at(0).is('.nut-tab-disable')).toBe(true)
-                })
-            },10) 
+          return Vue.nextTick().then(function () {
+              expect(wrapper.findAll('.nut-title-nav-leftnav').at(0).is('.nut-tab-disable')).toBe(true)
+          }) 
+    });
+    it('是否显示关闭按钮', () => {
+        wrapper.setProps({ closable: true });
+        return Vue.nextTick().then(function () {
+            expect(wrapper.contains('.close-btn')).toBe(true);
+            
+        })
     });
     it('当前默认选中的tab', () => {
-        wrapper.setProps({ defIndex: 0 });
-        setTimeout(()=>{
-            return Vue.nextTick().then(function () {
-                    expect(wrapper.findAll('.nut-title-nav-list').at(1).is('.nut-tab-active')).toBe(true)
-            })
-        },20)
+        wrapper.setProps({ positionNav: 'top' });
+        return Vue.nextTick().then(function () {
+            expect(wrapper.findAll('.nut-title-nav-list').at(0).is('.nut-tab-active')).toBe(true)
+        })
     });
-});
+    it('tab标签标题', () => {
+      return Vue.nextTick().then(function () {
+         expect(wrapper.findAll('.nut-tab-link').at(0).text()).toBe('衣物');
+      })
+    });
+    it('点击tab标签', () => {
+    	return Vue.nextTick().then(function () {
+            wrapper.findAll('.nut-title-nav-list').at(0).trigger('click');
+            expect(wrapper.findAll('.nut-title-nav-list').at(0).is('.nut-tab-active')).toBe(true)
+      })
+        
+    });
+});
+
+

+ 1 - 1
src/packages/tab/tab.vue

@@ -103,7 +103,7 @@ export default {
         },
         'closable':{
             type:Boolean,
-            default:false,
+            default:true,
         }
     },
     data() {

+ 7 - 2
src/packages/tabbar/__test__/tabbar.spec.js

@@ -21,7 +21,7 @@ describe('Tabbar.vue', () => {
     });
 
     
-    it('点击评分', () => {
+    it('点击tab标签', () => {
     	wrapper.setData({ tabList: [
     	        {
     	          'tabTitle':'百度',
@@ -45,6 +45,11 @@ describe('Tabbar.vue', () => {
             expect(wrapper.findAll('.tabbar-nav').at(1).is('.curr')).toBe(true)
         })
         
-    });
+	});
+	it('tab标签标题', () => {
+		return Vue.nextTick().then(function () {
+		   expect(wrapper.findAll('.tabbar-nav-word').at(0).text()).toBe('百度');
+		})
+	});
 
 });