Skip to content

Commit 4496149

Browse files
committed
✅ test: More fields test cases
1 parent adb4f88 commit 4496149

14 files changed

+315
-116
lines changed

src/fields/fieldColor.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input(type="color", v-model="value", :disabled="disabled", :placeholder="schema.placeholder")
2+
input(type="color", v-model="value", :disabled="disabled")
33
span.helper {{ value }}
44
</template>
55

src/fields/fieldStaticMap.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
1111
computed: {
1212
mapLink() {
13-
if (this.model.address && this.model.address.geo)
14-
return `http://maps.googleapis.com/maps/api/staticmap?center=${this.model.address.geo.lat},${this.model.address.geo.lng}&zoom=8&scale=false&size=800x300&maptype=roadmap&format=png&visual_refresh=true&markers=size:mid%7Ccolor:0xff0000%7Clabel:%7C${this.model.address.city}`;
13+
if (this.value && this.value.lat && this.value.lng)
14+
return `http://maps.googleapis.com/maps/api/staticmap?center=${this.value.lat},${this.value.lng}&zoom=8&scale=false&size=800x300&maptype=roadmap&format=png&visual_refresh=true&markers=size:mid%7Ccolor:0xff0000`;
1515
}
1616
}
1717
};

test/unit/specs/fields/fieldCheckbox.spec.js

+4-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from "chai";
2-
import { trigger } from "../util";
2+
import { createVueField, trigger } from "../util";
33

44
import Vue from "vue";
55
import FieldCheckbox from "src/fields/fieldCheckbox.vue";
@@ -9,22 +9,10 @@ Vue.component("FieldCheckbox", FieldCheckbox);
99
let el, vm, field;
1010

1111
function createField(schema = {}, model = null, disabled = false, options) {
12-
el = document.createElement("div");
13-
el.innerHTML = `<field-checkbox :schema.sync="schema" :model.sync="model" :disabled="disabled" v-ref:field></field-checkbox>`;
14-
vm = new Vue({
15-
el: el,
16-
data: {
17-
schema,
18-
model,
19-
disabled,
20-
options
21-
}
22-
});
23-
24-
field = vm.$refs.field;
25-
//console.log(el);
12+
[ el, vm, field ] = createVueField("fieldCheckbox", schema, model, disabled, options);
2613
}
2714

15+
2816
describe("FieldCheckbox.vue", () => {
2917

3018
describe("check template", () => {
@@ -42,7 +30,7 @@ describe("FieldCheckbox.vue", () => {
4230
input = el.getElementsByTagName("input")[0];
4331
});
4432

45-
it("should contain az input text element", () => {
33+
it("should contain a checkbox element", () => {
4634
expect(field).to.be.exist;
4735
expect(field.$el).to.be.exist;
4836

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import { expect } from "chai";
2+
import { createVueField, trigger } from "../util";
3+
4+
import Vue from "vue";
5+
import FieldColor from "src/fields/fieldColor.vue";
6+
7+
Vue.component("FieldColor", FieldColor);
8+
9+
let el, vm, field;
10+
11+
function createField(schema = {}, model = null, disabled = false, options) {
12+
[ el, vm, field ] = createVueField("fieldColor", schema, model, disabled, options);
13+
}
14+
15+
describe("fieldColor.vue", () => {
16+
17+
describe("check template", () => {
18+
let schema = {
19+
type: "color",
20+
label: "Color",
21+
model: "color"
22+
};
23+
let model = { color: "#ff8822" };
24+
let input;
25+
26+
before( () => {
27+
createField(schema, model, false);
28+
input = el.getElementsByTagName("input")[0];
29+
});
30+
31+
it("should contain an input color element", () => {
32+
expect(field).to.be.exist;
33+
expect(field.$el).to.be.exist;
34+
35+
expect(input).to.be.defined;
36+
expect(input.type).to.be.equal("color");
37+
//expect(input.classList.contains("form-control")).to.be.true;
38+
expect(input.disabled).to.be.false;
39+
});
40+
41+
it("should contain the value", (done) => {
42+
vm.$nextTick( () => {
43+
expect(input.value).to.be.equal("#ff8822");
44+
done();
45+
});
46+
});
47+
48+
it("should set disabled", (done) => {
49+
field.disabled = true;
50+
vm.$nextTick( () => {
51+
expect(input.disabled).to.be.true;
52+
done();
53+
});
54+
});
55+
56+
it("input value should be the model value after changed", (done) => {
57+
model.color = "#ffff00";
58+
vm.$nextTick( () => {
59+
expect(input.value).to.be.equal("#ffff00");
60+
done();
61+
});
62+
63+
});
64+
65+
it("model value should be the input value if changed", (done) => {
66+
input.value = "#123456";
67+
trigger(input, "change");
68+
69+
vm.$nextTick( () => {
70+
expect(model.color).to.be.equal("#123456");
71+
done();
72+
});
73+
74+
});
75+
76+
});
77+
78+
});

test/unit/specs/fields/fieldEmail.spec.js

+4-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from "chai";
2-
import { trigger } from "../util";
2+
import { createVueField, trigger } from "../util";
33

44
import Vue from "vue";
55
import FieldEmail from "src/fields/fieldEmail.vue";
@@ -9,22 +9,10 @@ Vue.component("FieldEmail", FieldEmail);
99
let el, vm, field;
1010

1111
function createField(schema = {}, model = null, disabled = false, options) {
12-
el = document.createElement("div");
13-
el.innerHTML = `<field-email :schema.sync="schema" :model.sync="model" :disabled="disabled" v-ref:field></field-email>`;
14-
vm = new Vue({
15-
el: el,
16-
data: {
17-
schema,
18-
model,
19-
disabled,
20-
options
21-
}
22-
});
23-
24-
field = vm.$refs.field;
25-
//console.log(el);
12+
[ el, vm, field ] = createVueField("fieldEmail", schema, model, disabled, options);
2613
}
2714

15+
2816
describe("fieldEmail.vue", () => {
2917

3018
describe("check template", () => {
@@ -43,7 +31,7 @@ describe("fieldEmail.vue", () => {
4331
input = el.getElementsByTagName("input")[0];
4432
});
4533

46-
it("should contain az input email element", () => {
34+
it("should contain an input email element", () => {
4735
expect(field).to.be.exist;
4836
expect(field.$el).to.be.exist;
4937

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import { expect } from "chai";
2+
import { createVueField, trigger } from "../util";
3+
4+
import Vue from "vue";
5+
import FieldLabel from "src/fields/fieldLabel.vue";
6+
7+
Vue.component("FieldLabel", FieldLabel);
8+
9+
let el, vm, field;
10+
11+
function createField(schema = {}, model = null, disabled = false, options) {
12+
[ el, vm, field ] = createVueField("fieldLabel", schema, model, disabled, options);
13+
}
14+
15+
describe("fieldLabel.vue", () => {
16+
17+
describe("check template", () => {
18+
let schema = {
19+
type: "label",
20+
label: "Timestamp",
21+
model: "timestamp"
22+
};
23+
let model = { timestamp: "2 days ago" };
24+
let span;
25+
26+
before( () => {
27+
createField(schema, model, false);
28+
span = el.getElementsByTagName("span")[0];
29+
});
30+
31+
it("should contain a span element", () => {
32+
expect(field).to.be.exist;
33+
expect(field.$el).to.be.exist;
34+
35+
expect(span).to.be.defined;
36+
});
37+
38+
it("should contain the value", (done) => {
39+
vm.$nextTick( () => {
40+
expect(span.textContent).to.be.equal("2 days ago");
41+
done();
42+
});
43+
});
44+
45+
it("input value should be the model value after changed", (done) => {
46+
model.timestamp = "Foo bar";
47+
vm.$nextTick( () => {
48+
expect(span.textContent).to.be.equal("Foo bar");
49+
done();
50+
});
51+
52+
});
53+
54+
});
55+
56+
});

test/unit/specs/fields/fieldNumber.spec.js

+4-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from "chai";
2-
import { trigger } from "../util";
2+
import { createVueField, trigger } from "../util";
33

44
import Vue from "vue";
55
import FieldNumber from "src/fields/fieldNumber.vue";
@@ -9,22 +9,10 @@ Vue.component("FieldNumber", FieldNumber);
99
let el, vm, field;
1010

1111
function createField(schema = {}, model = null, disabled = false, options) {
12-
el = document.createElement("div");
13-
el.innerHTML = `<field-number :schema.sync="schema" :model.sync="model" :disabled="disabled" v-ref:field></field-number>`;
14-
vm = new Vue({
15-
el: el,
16-
data: {
17-
schema,
18-
model,
19-
disabled,
20-
options
21-
}
22-
});
23-
24-
field = vm.$refs.field;
25-
//console.log(el);
12+
[ el, vm, field ] = createVueField("fieldNumber", schema, model, disabled, options);
2613
}
2714

15+
2816
describe("fieldNumber.vue", () => {
2917

3018
describe("check template", () => {
@@ -45,7 +33,7 @@ describe("fieldNumber.vue", () => {
4533
input = el.getElementsByTagName("input")[0];
4634
});
4735

48-
it("should contain az input number element", () => {
36+
it("should contain an input number element", () => {
4937
expect(field).to.be.exist;
5038
expect(field.$el).to.be.exist;
5139

test/unit/specs/fields/fieldPassword.spec.js

+4-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from "chai";
2-
import { trigger } from "../util";
2+
import { createVueField, trigger } from "../util";
33

44
import Vue from "vue";
55
import FieldPassword from "src/fields/fieldPassword.vue";
@@ -9,22 +9,10 @@ Vue.component("FieldPassword", FieldPassword);
99
let el, vm, field;
1010

1111
function createField(schema = {}, model = null, disabled = false, options) {
12-
el = document.createElement("div");
13-
el.innerHTML = `<field-password :schema.sync="schema" :model.sync="model" :disabled="disabled" v-ref:field></field-password>`;
14-
vm = new Vue({
15-
el: el,
16-
data: {
17-
schema,
18-
model,
19-
disabled,
20-
options
21-
}
22-
});
23-
24-
field = vm.$refs.field;
25-
//console.log(el);
12+
[ el, vm, field ] = createVueField("fieldPassword", schema, model, disabled, options);
2613
}
2714

15+
2816
describe("fieldPassword.vue", () => {
2917

3018
describe("check template", () => {
@@ -43,7 +31,7 @@ describe("fieldPassword.vue", () => {
4331
input = el.getElementsByTagName("input")[0];
4432
});
4533

46-
it("should contain az input password element", () => {
34+
it("should contain an input password element", () => {
4735
expect(field).to.be.exist;
4836
expect(field.$el).to.be.exist;
4937

0 commit comments

Comments
 (0)