1
+ import { expect } from "chai" ;
2
+ import { trigger } from "../util" ;
3
+
4
+ import Vue from "vue" ;
5
+ import FieldNumber from "src/fields/fieldNumber.vue" ;
6
+
7
+ Vue . component ( "FieldNumber" , FieldNumber ) ;
8
+
9
+ let el , vm , field ;
10
+
11
+ 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);
26
+ }
27
+
28
+ describe ( "fieldNumber.vue" , ( ) => {
29
+
30
+ describe ( "check template" , ( ) => {
31
+ let schema = {
32
+ type : "number" ,
33
+ label : "Age" ,
34
+ model : "age" ,
35
+ readonly : false ,
36
+ min : 18 ,
37
+ max : 100 ,
38
+ placeholder : "Field placeholder"
39
+ } ;
40
+ let model = { age : 27 } ;
41
+ let input ;
42
+
43
+ before ( ( ) => {
44
+ createField ( schema , model , false ) ;
45
+ input = el . getElementsByTagName ( "input" ) [ 0 ] ;
46
+ } ) ;
47
+
48
+ it ( "should contain az input number element" , ( ) => {
49
+ expect ( field ) . to . be . exist ;
50
+ expect ( field . $el ) . to . be . exist ;
51
+
52
+ expect ( input ) . to . be . defined ;
53
+ expect ( input . type ) . to . be . equal ( "number" ) ;
54
+ expect ( input . classList . contains ( "form-control" ) ) . to . be . true ;
55
+ expect ( input . placeholder ) . to . be . equal ( schema . placeholder ) ;
56
+ expect ( input . readOnly ) . to . be . false ;
57
+ expect ( input . min ) . to . be . equal ( "18" ) ;
58
+ expect ( input . max ) . to . be . equal ( "100" ) ;
59
+ expect ( input . disabled ) . to . be . false ;
60
+ } ) ;
61
+
62
+ it ( "should contain the value" , ( done ) => {
63
+ vm . $nextTick ( ( ) => {
64
+ expect ( input . value ) . to . be . equal ( "27" ) ;
65
+ done ( ) ;
66
+ } ) ;
67
+ } ) ;
68
+
69
+ it ( "should set readOnly" , ( done ) => {
70
+ schema . readonly = true ;
71
+ vm . $nextTick ( ( ) => {
72
+ expect ( input . readOnly ) . to . be . true ;
73
+ done ( ) ;
74
+ } ) ;
75
+ } ) ;
76
+
77
+ it ( "should set disabled" , ( done ) => {
78
+ field . disabled = true ;
79
+ vm . $nextTick ( ( ) => {
80
+ expect ( input . disabled ) . to . be . true ;
81
+ done ( ) ;
82
+ } ) ;
83
+ } ) ;
84
+
85
+ it ( "input value should be the model value after changed" , ( done ) => {
86
+ model . age = 35 ;
87
+ vm . $nextTick ( ( ) => {
88
+ expect ( input . value ) . to . be . equal ( "35" ) ;
89
+ done ( ) ;
90
+ } ) ;
91
+
92
+ } ) ;
93
+
94
+ it ( "model value should be the input value if changed" , ( done ) => {
95
+ input . value = "50" ;
96
+ trigger ( input , "input" ) ;
97
+
98
+ vm . $nextTick ( ( ) => {
99
+ expect ( model . age ) . to . be . equal ( 50 ) ;
100
+ done ( ) ;
101
+ } ) ;
102
+
103
+ } ) ;
104
+
105
+ } ) ;
106
+
107
+ } ) ;
0 commit comments