1+ import { expect } from "chai" ;
2+ import { createVueField , trigger } from "../util" ;
3+
4+ import Vue from "vue" ;
5+ import FieldCleave from "src/fields/fieldCleave.vue" ;
6+
7+ Vue . component ( "FieldCleave" , FieldCleave ) ;
8+
9+ let el , vm , field ;
10+
11+ function createField ( schema = { } , model = null , disabled = false , options ) {
12+ [ el , vm , field ] = createVueField ( "fieldCleave" , schema , model , disabled , options ) ;
13+ }
14+
15+ describe ( "fieldCleave.vue" , ( ) => {
16+
17+ describe ( "check template" , ( ) => {
18+ let schema = {
19+ type : "masked" ,
20+ label : "Phone" ,
21+ model : "phone" ,
22+ phone : true ,
23+ phoneRegionCode : 'HU' ,
24+ readonly : false ,
25+ placeholder : "Field placeholder"
26+ } ;
27+ let model = { phone : "(30) 123-4567" } ;
28+ let input ;
29+
30+ before ( ( ) => {
31+ createField ( schema , model , false ) ;
32+ input = el . getElementsByTagName ( "input" ) [ 0 ] ;
33+ } ) ;
34+
35+ it ( "should contain an masked input element" , ( ) => {
36+ expect ( field ) . to . be . exist ;
37+ expect ( field . $el ) . to . be . exist ;
38+
39+ expect ( input ) . to . be . defined ;
40+ expect ( input . type ) . to . be . equal ( "text" ) ;
41+ expect ( input . classList . contains ( "form-control" ) ) . to . be . true ;
42+ expect ( input . placeholder ) . to . be . equal ( schema . placeholder ) ;
43+ expect ( input . readOnly ) . to . be . false ;
44+ expect ( input . disabled ) . to . be . false ;
45+ } ) ;
46+
47+ it ( "should contain the value" , ( done ) => {
48+ vm . $nextTick ( ( ) => {
49+ expect ( input . value ) . to . be . equal ( "(30) 123-4567" ) ;
50+ done ( ) ;
51+ } ) ;
52+ } ) ;
53+
54+ it ( "should set readOnly" , ( done ) => {
55+ schema . readonly = true ;
56+ vm . $nextTick ( ( ) => {
57+ expect ( input . readOnly ) . to . be . true ;
58+ done ( ) ;
59+ } ) ;
60+ } ) ;
61+
62+ it ( "should set disabled" , ( done ) => {
63+ field . disabled = true ;
64+ vm . $nextTick ( ( ) => {
65+ expect ( input . disabled ) . to . be . true ;
66+ done ( ) ;
67+ } ) ;
68+ } ) ;
69+
70+ it ( "input value should be the model value after changed" , ( done ) => {
71+ model . phone = "(70) 555-4433" ;
72+ vm . $nextTick ( ( ) => {
73+ expect ( input . value ) . to . be . equal ( "(70) 555-4433" ) ;
74+ done ( ) ;
75+ } ) ;
76+
77+ } ) ;
78+
79+ it ( "model value should be the input value if changed" , ( done ) => {
80+ input . value = "(21) 888-6655" ;
81+ trigger ( input , "input" ) ;
82+
83+ vm . $nextTick ( ( ) => {
84+ expect ( model . phone ) . to . be . equal ( "(21) 888-6655" ) ;
85+ done ( ) ;
86+ } ) ;
87+
88+ } ) ;
89+
90+ } ) ;
91+
92+ } ) ;
0 commit comments