浏览代码

增加测试用例,修改日历时间

宋成林 7 年之前
父节点
当前提交
fab7722411

+ 1 - 1
package.json

@@ -24,7 +24,7 @@
     "build": "npm run build:prod && npm run build:prodmin && npm run build:disp",
     "eslint": "eslint src/packages/**/*.{js,vue}",
     "add": "node scripts/createCptTpl.js",
-    "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text  mocha-webpack --webpack-config build/webpack.test.conf.js --require test/setup.js src/packages/picker/__test__/**.spec.js",
+    "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text  mocha-webpack --webpack-config build/webpack.test.conf.js --require test/setup.js src/packages/*/__test__/**.spec.js",
     "coveralls": "cat ./coverage/lcov.info | coveralls",
     "test:watch": "npm run test --watch"
   },

+ 27 - 0
src/packages/calendar/__test__/calendar.spec.js

@@ -0,0 +1,27 @@
+import { shallowMount, mount } from '@vue/test-utils'
+import Calendar from '../calendar.vue'
+import Vue from 'vue';
+
+
+describe('Calendar.vue', () => {
+    const wrapper = shallowMount(Calendar, {
+        propsData: { 
+            defaultValue: '2019-02-22'
+        }
+    });
+
+    it('是否可见', () => {
+        wrapper.setProps({isVisible: true });
+        return Vue.nextTick().then(function () {
+            expect(wrapper.find('.nut-calendar').isVisible()).toBe(true);
+        })
+    });
+
+    it('设置默认时间', () => {
+        return Vue.nextTick().then(function () {
+            expect(wrapper.findAll('.nut-calendar-month-title').at(0).text()).toBe('2019年02月');
+            expect(wrapper.findAll('.nut-calendar-month-item').at(0).find('.nut-calendar-month-day-active').text()).toBe('22');
+        })
+    });
+
+});

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

@@ -73,7 +73,7 @@ export default {
         endDate: {
             type: String,
             //default: null
-            default: Utils.getDay(155)
+            default: Utils.getDay(365)
         },
     },
     data() {

+ 4 - 3
src/packages/calendar/demo.vue

@@ -35,7 +35,7 @@
             @close="switchPicker('isVisible')"
             @choose="setChooseValue"
             :start-date="`2018-10-11`"
-            :end-date="`2019-11-11`"
+            :end-date="`2020-11-11`"
         >
         </nut-calendar>
         <nut-calendar :is-visible="isVisible2"
@@ -65,6 +65,7 @@
 </template>
 
 <script>
+import Utils from "../../utils/date.js";
 export default {
     data() {
         return {
@@ -74,8 +75,8 @@ export default {
             isVisible3: false,
             date: null,
             dateWeek: null,
-            date1: ['2018-12-22', '2019-01-08'],
-            date2: '2018-11-22',
+            date1: ['2018-12-22', '2020-01-08'],
+            date2: Utils.getDay(30),
             date3: null
             
         };

+ 3 - 3
src/packages/calendar/doc.md

@@ -11,7 +11,7 @@
     @close="switchPicker('isVisible')"
     @choose="setChooseValue"
     :start-date="`2018-10-11`"
-    :end-date="`2019-11-11`"
+    :end-date="`2020-11-11`"
 >
 </nut-calendar>
 ```
@@ -68,8 +68,8 @@ export default {
             isVisible3: false,
             date: null,
             dateWeek: null,
-            date1: ['2018-12-22', '2019-01-08'],
-            date2: '2018-11-22',
+            date1: ['2018-12-22', '2020-01-08'],
+            date2: Utils.getDay(30), // 当前日期之后的30天
             date3: null
             
         };

+ 61 - 0
src/packages/datepicker/__test__/datapicker.spec.js

@@ -0,0 +1,61 @@
+import { shallowMount, mount } from '@vue/test-utils'
+import DatePicker from '../datepicker.vue'
+import Vue from 'vue';
+
+
+describe('DatePicker.vue', () => {
+    const wrapper = mount(DatePicker, {
+        propsData: { startDate: '1991-11-10', endDate:'2019-10-05'}
+    });
+
+    it('日期', () => {
+        wrapper.setProps({type: 'date' });
+        return Vue.nextTick().then(function () {
+            expect(wrapper.findAll('.nut-picker-list').length).toBe(3)
+        })
+    });
+
+    // it('日期时间', () => {
+    //     wrapper.setProps({type: 'datetime'});
+    //     return Vue.nextTick().then(function () {
+    //         expect(wrapper.findAll('.nut-picker-list').length).toBe(5)
+    //     })
+    // });
+
+    // it('时间', () => {
+    //     wrapper.setProps({type: 'time'});
+    //     return Vue.nextTick().then(function () {
+    //         expect(wrapper.findAll('.nut-picker-list').length).toBe(2)
+    //     })
+    // });
+
+    // it('12小时制', () => {
+    //     wrapper.setProps({type: 'time', isUse12Hours: true});
+    //     return Vue.nextTick().then(function () {
+    //         expect(wrapper.findAll('.nut-picker-list').length).toBe(3)
+    //     })
+    // });
+
+    // it('未调用PickerSlot', () => {
+    //     wrapper.setProps({
+    //         type: 'date'
+    //     });
+    //     return Vue.nextTick().then(function () {
+    //         expect(wrapper.find('.nut-picker-panel').html()).toBe(false)
+    //     })
+    // });
+
+    // it('自定义class', () => {
+    //     wrapper.setProps({customClassName: 'nut-picker-test' });
+    //     return Vue.nextTick().then(function () {
+    //         expect(wrapper.find('.nut-picker').contains('.nut-picker-test')).toBe(true);
+    //     })
+    // });
+
+    // it('标题', () => {
+    //     wrapper.setProps({title: '选择年月'});
+    //     return Vue.nextTick().then(function () {
+    //         expect(wrapper.find('.nut-picker-title').text()).toBe('选择年月');
+    //     })
+    // });
+});

+ 72 - 44
src/packages/picker/__test__/picker.spec.js

@@ -1,44 +1,72 @@
-// import { shallowMount, mount } from '@vue/test-utils'
-// import Picker from '../picker.vue'
-// import Vue from 'vue';
-
-
-// describe('Picker.vue', () => {
-//     const wrapper = shallowMount(Picker, {
-//         propsData:{
-//             listData: [
-//                 ['2019', '2020', '2021', '2022', '2023' ],
-//                 ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
-//             ],
-//         }
-//     });
-
-//     it('测试条数', () => {
-//         return Vue.nextTick().then(function () {
-//             expect(wrapper.findAll('.nut-picker-list').length).toBe(2);
-//         })
-//     });
-
-//     it('是否可见', () => {
-//         wrapper.setProps({isVisible: true });
-//         return Vue.nextTick().then(function () {
-//             expect(wrapper.find('.nut-actionsheet-mask').isVisible()).toBe(true);
-//             expect(wrapper.find('.nut-actionsheet-panel').isVisible()).toBe(true);
-//         })
-//     });
-
-//     it('标题', () => {
-//         wrapper.setProps({title: '选择年月' });
-//         return Vue.nextTick().then(function () {
-//             expect(wrapper.find('.nut-picker-title').text()).toBe('选择年月');
-//         })
-//     });
-
-//     it('设置默认值', () => {
-//         wrapper.setProps({defaultValueData: ['2020', '2'] });
-//         return Vue.nextTick().then(function () {
-//             expect(wrapper.findAll('.nut-picker-list-panel').at(0).attributes('style')).toBe('transform: translateY(-72px);');
-//             expect(wrapper.findAll('.nut-picker-list-panel').at(1).attributes('style')).toBe('transform: translateY(-36px);');
-//         })
-//     });
-// });
+import { shallowMount, mount } from '@vue/test-utils'
+import Picker from '../picker.vue'
+import PickerSlot from '../picker-slot.vue'
+import Vue from 'vue';
+
+
+describe('Picker.vue', () => {
+    const wrapper = mount(Picker, {
+        propsData:{
+            listData: [
+                ['2019', '2020', '2021', '2022', '2023' ],
+                ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
+            ],
+        }
+    });
+
+    it('调用PickerSlot个数', () => {
+        return Vue.nextTick().then(function () {
+            expect(wrapper.findAll('.nut-picker-list').length).toBe(2)
+        })
+    });
+
+    it('调用PickerSlot', () => {
+        return Vue.nextTick().then(function () {
+            expect(wrapper.contains(PickerSlot)).toBe(true)
+        })
+    });
+
+    it('未调用PickerSlot', () => {
+        wrapper.setProps({
+            listData: []
+        });
+        return Vue.nextTick().then(function () {
+            expect(wrapper.contains(PickerSlot)).toBe(false)
+        })
+    });
+
+    it('自定义class', () => {
+        wrapper.setProps({customClassName: 'nut-picker-test' });
+        return Vue.nextTick().then(function () {
+            expect(wrapper.find('.nut-picker').contains('.nut-picker-test')).toBe(true);
+        })
+    });
+
+    it('标题', () => {
+        wrapper.setProps({title: '选择年月'});
+        return Vue.nextTick().then(function () {
+            expect(wrapper.find('.nut-picker-title').text()).toBe('选择年月');
+        })
+    });
+});
+
+describe('PickerSlot.vue', () => {
+    const wrapper = shallowMount(PickerSlot, {
+        propsData:{
+            listData: ['2019', '2020', '2021', '2022', '2023' ],
+            defaultValue: '2020'
+        }
+    });
+
+    it('展示个数', () => {
+        return Vue.nextTick().then(function () {
+            expect(wrapper.findAll('.nut-picker-item').length).toBe(5);
+        })
+    });
+
+    it('设置默认值', () => {
+        return Vue.nextTick().then(function () {
+            expect(wrapper.find('.nut-picker-list-panel').attributes('style')).toBe('-webkit-transform: translateY(-36px);');
+        })
+    });
+});