From 5d1c24c7f400a208504cf19e6e6a00e7d80a4678 Mon Sep 17 00:00:00 2001
From: Sergio Crisostomo <sergiosbox@gmail.com>
Date: Tue, 17 Oct 2017 15:13:42 +0200
Subject: [PATCH] correct behaviour when initialising date-picker with a empty string

---
 src/components/date-picker/picker.vue |  2 +-
 test/unit/specs/date-picker.spec.js   | 41 ++++++++++++++++++++++++++++-------------
 2 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/src/components/date-picker/picker.vue b/src/components/date-picker/picker.vue
index 55c6f9d..2960fca 100644
--- a/src/components/date-picker/picker.vue
+++ b/src/components/date-picker/picker.vue
@@ -517,7 +517,7 @@
                         val = val.join(RANGE_SEPARATOR);
                         val = parser(val, this.format || DEFAULT_FORMATS[type]);
                     } else if (typeof val === 'string' && type.indexOf('time') !== 0 ){
-                        val = parser(val, this.format || DEFAULT_FORMATS[type]);
+                        val = parser(val, this.format || DEFAULT_FORMATS[type]) || val;
                     }
 
                     this.internalValue = val;
diff --git a/test/unit/specs/date-picker.spec.js b/test/unit/specs/date-picker.spec.js
index 49e6ae4..2a5224d 100644
--- a/test/unit/specs/date-picker.spec.js
+++ b/test/unit/specs/date-picker.spec.js
@@ -103,19 +103,19 @@ describe('DatePicker.vue', () => {
 
       vm.dateType = 'year';
       promissedTick(picker)
-		.then(() => {
-          expect(picker.type).to.equal('year');
-          expect(picker.selectionMode).to.equal('year');
-
-          vm.dateType = 'date';
-          return promissedTick(picker);
-        })
-		.then(() => {
-          expect(picker.type).to.equal('date');
-          expect(picker.selectionMode).to.equal('day');
-
-          done();
-        });
+          .then(() => {
+            expect(picker.type).to.equal('year');
+            expect(picker.selectionMode).to.equal('year');
+
+            vm.dateType = 'date';
+            return promissedTick(picker);
+          })
+          .then(() => {
+            expect(picker.type).to.equal('date');
+            expect(picker.selectionMode).to.equal('day');
+
+            done();
+          });
     });
   });
 
@@ -176,4 +176,19 @@ describe('DatePicker.vue', () => {
       });
     });
   });
+
+  it('should accept a empty string as input v-model value', done => {
+    vm = createVue({
+      template: '<date-picker v-model="value" type="date"></date-picker>',
+      data(){
+        return {value: ''};
+      }
+    });
+
+    vm.$nextTick(() => {
+      expect(vm.value).to.equal('');
+      done();
+    });
+  });
+
 });
--
libgit2 0.21.4