From 3d2e821bfb72d9324210fc077bcc655ed62c743f Mon Sep 17 00:00:00 2001 From: Icebob Date: Thu, 3 Nov 2016 22:04:29 +0100 Subject: [PATCH] :bug: Fix options prop default #91 --- src/formGenerator.vue | 34 +++++++++++++++++------ test/unit/specs/VueFormGenerator.spec.js | 35 +++++++++++++++++++++++- 2 files changed, 60 insertions(+), 9 deletions(-) diff --git a/src/formGenerator.vue b/src/formGenerator.vue index 21128905..37f39d02 100644 --- a/src/formGenerator.vue +++ b/src/formGenerator.vue @@ -32,13 +32,31 @@ div export default { components: fieldComponents, - props: [ - "schema", - "options", - "model", - "multiple", - "isNewModel" - ], + props: { + schema: Object, + + model: Object, + + options: { + type: Object, + default() { + return { + validateAfterLoad: false, + validateAfterChanged: false + } + } + }, + + multiple: { + type: Boolean, + default: false + }, + + isNewModel: { + type: Boolean, + default: false + } + }, data () { return { @@ -76,7 +94,7 @@ div compiled() { // First load, running validation if neccessary - if (this.options && this.options.validateAfterLoad === true && this.isNewModel !== true) + if (this.options.validateAfterLoad === true && this.isNewModel !== true) this.validate(); else this.clearValidationErrors(); diff --git a/test/unit/specs/VueFormGenerator.spec.js b/test/unit/specs/VueFormGenerator.spec.js index 589f8e71..3a52dc32 100644 --- a/test/unit/specs/VueFormGenerator.spec.js +++ b/test/unit/specs/VueFormGenerator.spec.js @@ -7,7 +7,7 @@ Vue.use(VueFormGenerator); let el, vm; -function createFormGenerator(schema = {}, model = null, options = {}, multiple = false) { +function createFormGenerator(schema = {}, model = null, options, multiple) { el = document.createElement("div"); // eslint-disable-next-line quotes el.innerHTML = ``; @@ -414,6 +414,39 @@ describe("VueFormGenerator.vue", () => { }); + describe("check if option null", () => { + let schema = { + fields: [ + { + type: "text", + label: "Name", + model: "name" + } + ] + }; + + let model = { name: "Me" }; + let form, el, vm; + + before( () => { + [el, vm] = createFormGenerator(schema, model); + form = vm.$refs.form; + document.body.appendChild(el); + }); + + after( () => { + document.body.removeChild(el); + }); + + it("should be validation error at ready()", (done) => { + vm.$nextTick( () => { + expect(form).to.be.defined; + expect(form.options).to.be.defined; + done(); + }); + }); + }); + describe("check validateAfterLoad option", () => { let schema = { fields: [