1
+ /* global browser, it, describe, element, by */
2
+
3
+ describe ( 'Schema Form validation messages' , function ( ) {
4
+
5
+ describe ( '#string' , function ( ) {
6
+ var URL = 'angular-schema-form-material/examples/material-example.html#/86fb7505a8ab6a43bc70' ;
7
+
8
+ it ( 'should not complain if it gets a normal string' , function ( ) {
9
+ browser . get ( URL ) ;
10
+ var input = element . all ( by . css ( 'form[name=ngform] input' ) ) . first ( ) ;
11
+ input . sendKeys ( 'string' ) ;
12
+
13
+ expect ( input . getAttribute ( 'value' ) ) . toEqual ( 'string' ) ;
14
+ expect ( input . evaluate ( 'ngModel.$valid' ) ) . toEqual ( true ) ;
15
+
16
+ } ) ;
17
+
18
+
19
+ var validationMessageTestBuider = function ( nr , value , validationMessage ) {
20
+ it ( 'should say "' + validationMessage + '" when input is ' + value , function ( ) {
21
+ browser . get ( URL ) ;
22
+ var input = element . all ( by . css ( 'form[name=ngform] input' ) ) . get ( nr ) ;
23
+ input . sendKeys ( value ) ;
24
+
25
+ var message = element . all ( by . css ( 'form[name=ngform] div[sf-message]' ) ) ; //.get(nr);
26
+ expect ( input . evaluate ( 'ngModel.$valid' ) ) . toEqual ( false ) ;
27
+
28
+ /* no error messages at this point */
29
+ //expect(message.getText()).toEqual(validationMessage);
30
+
31
+ } ) ;
32
+ } ;
33
+
34
+ var stringTests = {
35
+ 's' : 'String is too short (1 chars), minimum 3' ,
36
+ 'tooo long string' : 'String is too long (11 chars), maximum 10' ,
37
+ 'foo 66' : 'String does not match pattern: ^[a-zA-Z ]+$'
38
+ } ;
39
+
40
+ Object . keys ( stringTests ) . forEach ( function ( value ) {
41
+ validationMessageTestBuider ( 0 , value , stringTests [ value ] ) ;
42
+ } ) ;
43
+
44
+
45
+ var integerTests = {
46
+ '3' : '3 is less than the allowed minimum of 6' ,
47
+ '66' : '66 is greater than the allowed maximum of 50' ,
48
+ '11' : 'Value is not a multiple of 3' ,
49
+ // Chrome no longer lets you input anything but numbers in a type="number" input.
50
+ 'aaa' : 'Required' //'Value is not a valid number'
51
+ } ;
52
+
53
+ Object . keys ( integerTests ) . forEach ( function ( value ) {
54
+ validationMessageTestBuider ( 1 , value , integerTests [ value ] ) ;
55
+ } ) ;
56
+
57
+
58
+ it ( 'should say "Required" when fields are required' , function ( ) {
59
+ browser . get ( URL ) ;
60
+ element . all ( by . css ( 'form[name=ngform]' ) ) . submit ( ) ;
61
+ var input = element . all ( by . css ( 'form[name=ngform] input' ) ) . get ( 1 ) ;
62
+
63
+ var message = element . all ( by . css ( 'form[name=ngform] div[sf-message]' ) ) ; //.get(1);
64
+ expect ( input . evaluate ( 'ngModel.$valid' ) ) . toEqual ( false ) ;
65
+
66
+ /* no error messages at this point */
67
+ //expect(message.getText()).toEqual('Required');
68
+
69
+ } ) ;
70
+ } ) ;
71
+ } ) ;
0 commit comments