1+ import chai from 'chai' ;
12import { expect } from 'chai' ;
3+ import sinonChai from 'sinon-chai' ;
4+ import sinon from 'sinon' ;
25import Vue from 'vue' ;
36import VueFormly from 'vue-formly' ;
47import FormlyBootstrap from 'src/index' ;
58Vue . use ( VueFormly ) ;
69Vue . use ( FormlyBootstrap ) ;
10+ chai . use ( sinonChai ) ;
711
8- let el , vm , data ;
12+ let el , vm , data , spy ;
913
1014function createForm ( ) {
1115 el = document . createElement ( 'div' ) ;
@@ -19,10 +23,10 @@ function createForm(){
1923}
2024
2125function trigger ( target , event , process ) {
22- var e = document . createEvent ( 'HTMLEvents' )
23- e . initEvent ( event , true , true )
24- if ( process ) process ( e )
25- target . dispatchEvent ( e )
26+ var e = document . createEvent ( 'HTMLEvents' ) ;
27+ e . initEvent ( event , true , true ) ;
28+ if ( process ) process ( e ) ;
29+ target . dispatchEvent ( e ) ;
2630}
2731
2832describe ( 'components' , ( ) => {
@@ -42,17 +46,64 @@ describe('components', () => {
4246 beforeEach ( ( ) => {
4347 data . form . test . type = 'input' ;
4448 data . form . test . inputType = 'text' ;
49+ spy = sinon . spy ( ) ;
4550 } ) ;
4651
47- it ( 'dirty' , ( ) => {
52+ it ( 'dirty/active ' , ( ) => {
4853 createForm ( ) ;
4954 expect ( vm . form . test . $dirty ) . to . be . false ;
55+ expect ( vm . form . test . $active ) . to . be . false ;
5056 } ) ;
5157
5258 it ( 'blur' , ( ) => {
59+ let copy = { } ;
60+ data . form . test . onBlur = function ( e ) {
61+ copy = this . form ;
62+ } ;
5363 createForm ( ) ;
5464 trigger ( vm . $el . querySelectorAll ( 'input' ) [ 0 ] , 'blur' ) ;
65+ expect ( vm . form . test . $active ) . to . be . false ;
5566 expect ( vm . form . test . $dirty ) . to . be . true ;
67+ //check that "this" is the same
68+ //the deep equal of "this" seemed to time out
69+ expect ( copy ) . to . deep . equal ( vm . form ) ;
70+ } ) ;
71+
72+ it ( 'focus' , ( ) => {
73+ data . form . test . onFocus = spy ;
74+ createForm ( ) ;
75+ trigger ( vm . $el . querySelectorAll ( 'input' ) [ 0 ] , 'focus' ) ;
76+ expect ( spy . called ) . to . be . true ;
77+ expect ( vm . form . test . $active ) . to . be . true ;
78+ } ) ;
79+
80+ it ( 'click' , ( ) => {
81+ data . form . test . onClick = spy ;
82+ createForm ( ) ;
83+ trigger ( vm . $el . querySelectorAll ( 'input' ) [ 0 ] , 'click' ) ;
84+ expect ( spy . called ) . to . be . true ;
85+ } ) ;
86+
87+ it ( 'change' , ( ) => {
88+ data . form . test . onChange = spy ;
89+ createForm ( ) ;
90+ trigger ( vm . $el . querySelectorAll ( 'input' ) [ 0 ] , 'change' ) ;
91+ expect ( spy . called ) . to . be . true ;
92+ expect ( vm . form . test . $dirty ) . to . be . true ;
93+ } ) ;
94+
95+ it ( 'keyup' , ( ) => {
96+ data . form . test . onKeyup = spy ;
97+ createForm ( ) ;
98+ trigger ( vm . $el . querySelectorAll ( 'input' ) [ 0 ] , 'keyup' ) ;
99+ expect ( spy . called ) . to . be . true ;
100+ } ) ;
101+
102+ it ( 'keydown' , ( ) => {
103+ data . form . test . onKeydown = spy ;
104+ createForm ( ) ;
105+ trigger ( vm . $el . querySelectorAll ( 'input' ) [ 0 ] , 'keydown' ) ;
106+ expect ( spy . called ) . to . be . true ;
56107 } ) ;
57108
58109 } ) ;
0 commit comments