1+ /* global browser, it, describe, element, by */
2+
3+ describe ( 'Schema Form validation messages' , function ( ) {
4+
5+ describe ( 'tv4-validators' , function ( ) {
6+ var URL = 'angular-schema-form-material/examples/material-example.html#/86fb7505a8ab6a43bc70' ;
7+
8+ var validationMessageTestBuilder = function ( testToDo ) {
9+
10+ Object . keys ( testToDo . validationCodes ) . forEach ( function ( validationCodeIndex ) {
11+ it ( 'validation test, expecting class "' + testToDo . validationCodes [ validationCodeIndex ] + ' when input is ' + testToDo . value , function ( ) {
12+
13+ browser . get ( URL ) ;
14+ var input = element . all ( by . css ( 'form[name=ngform] input' ) ) . get ( testToDo . field ) ;
15+ input . sendKeys ( testToDo . value ) ;
16+
17+ expect ( input . evaluate ( 'ngModel.$valid' ) ) . toEqual ( testToDo . valid ) ;
18+ expect ( input . getAttribute ( 'class' ) ) . toMatch ( testToDo . validationCodes [ validationCodeIndex ] )
19+
20+
21+ } ) ;
22+
23+ } ) ;
24+
25+ } ;
26+
27+
28+ var testsToDo = [
29+ {
30+ field : 0 , //0 string, 1 integer
31+ value : "s" ,
32+ validationCodes : [ 'ng-invalid-tv4-200' ] ,
33+ valid : false
34+ } ,
35+ {
36+ field : 0 ,
37+ value : 'tooo long string' ,
38+ validationCodes : [ 'ng-invalid-tv4-201' ] ,
39+ valid : false
40+ } ,
41+ {
42+ field : 0 ,
43+ value : 'foo 66' ,
44+ validationCodes : [ 'ng-invalid-tv4-202' ] ,
45+ valid : false
46+ } ,
47+ {
48+ field : 0 ,
49+ value : 'foobar' ,
50+ validationCodes : [ 'ng-valid-tv4-200' ] ,
51+ valid : true
52+ } ,
53+ {
54+ field : 1 ,
55+ value : '3' ,
56+ validationCodes : [ 'ng-invalid-tv4-101' ] ,
57+ valid : false
58+ } ,
59+ {
60+ field : 1 ,
61+ value : '66' ,
62+ validationCodes : [ 'ng-invalid-tv4-103' ] ,
63+ valid : false
64+ } ,
65+ {
66+ field : 1 ,
67+ value : '11' ,
68+ validationCodes : [ 'ng-invalid-tv4-100' ] ,
69+ valid : false
70+ } ,
71+ {
72+ field : 1 ,
73+ value : 'aaa' ,
74+ validationCodes : [ 'ng-invalid-tv4-302' ] ,
75+ valid : false
76+ }
77+ ] ;
78+
79+
80+ Object . keys ( testsToDo ) . forEach ( function ( testToDoIndex ) {
81+ validationMessageTestBuilder ( testsToDo [ testToDoIndex ] ) ;
82+ } ) ;
83+
84+
85+ } ) ;
86+ } ) ;
0 commit comments