@@ -84,56 +84,68 @@ export function main() {
8484 expect ( g . errors ) . toEqual ( null ) ;
8585 } ) ;
8686 } ) ;
87- } ) ;
88-
89- describe ( "OptionalControl" , ( ) => {
90- it ( "should read properties from the wrapped component" , ( ) => {
91- var wrapperControl = new Control ( "value" , validations . required ) ;
92- var c = new OptionalControl ( wrapperControl , true ) ;
9387
94- expect ( c . value ) . toEqual ( 'value' ) ;
95- expect ( c . status ) . toEqual ( 'VALID' ) ;
96- expect ( c . validator ) . toEqual ( validations . required ) ;
97- } ) ;
88+ describe ( "optional components" , ( ) => {
89+ describe ( "contains" , ( ) => {
90+ var group ;
91+
92+ beforeEach ( ( ) => {
93+ group = new ControlGroup ( {
94+ "required" : new Control ( "requiredValue" ) ,
95+ "optional" : new Control ( "optionalValue" )
96+ } , {
97+ "optional" : false
98+ } ) ;
99+ } ) ;
98100
99- it ( "should update the wrapped component" , ( ) => {
100- var wrappedControl = new Control ( "value" ) ;
101- var c = new OptionalControl ( wrappedControl , true ) ;
101+ // rename contains into has
102+ it ( "should return false when the component is not included" , ( ) => {
103+ expect ( group . contains ( "optional" ) ) . toEqual ( false ) ;
104+ } )
102105
103- c . validator = validations . required ;
104- c . updateValue ( "newValue" ) ;
106+ it ( "should return false when there is no component with the given name" , ( ) => {
107+ expect ( group . contains ( "something else" ) ) . toEqual ( false ) ;
108+ } ) ;
105109
110+ it ( "should return true when the component is included" , ( ) => {
111+ expect ( group . contains ( "required" ) ) . toEqual ( true ) ;
106112
107- expect ( wrappedControl . validator ) . toEqual ( validations . required ) ;
108- expect ( wrappedControl . value ) . toEqual ( 'newValue' ) ;
109- } ) ;
113+ group . include ( "optional" ) ;
110114
111- it ( "should not include an inactive component into the group value" , ( ) => {
112- var group = new ControlGroup ( {
113- "required" : new Control ( "requiredValue" ) ,
114- "optional" : new OptionalControl ( new Control ( "optionalValue" ) , false )
115+ expect ( group . contains ( "optional" ) ) . toEqual ( true ) ;
116+ } ) ;
115117 } ) ;
116118
117- expect ( group . value ) . toEqual ( { "required" : "requiredValue" } ) ;
119+ it ( "should not include an inactive component into the group value" , ( ) => {
120+ var group = new ControlGroup ( {
121+ "required" : new Control ( "requiredValue" ) ,
122+ "optional" : new Control ( "optionalValue" )
123+ } , {
124+ "optional" : false
125+ } ) ;
118126
119- group . controls [ "optional" ] . cond = true ;
127+ expect ( group . value ) . toEqual ( { "required" : "requiredValue" } ) ;
120128
121- expect ( group . value ) . toEqual ( { "required" : "requiredValue" , "optional" : "optionalValue" } ) ;
122- } ) ;
129+ group . include ( "optional" ) ;
123130
124- it ( "should not run validations on an inactive component" , ( ) => {
125- var group = new ControlGroup ( {
126- "required" : new Control ( "requiredValue" , validations . required ) ,
127- "optional" : new OptionalControl ( new Control ( "" , validations . required ) , false )
131+ expect ( group . value ) . toEqual ( { "required" : "requiredValue" , "optional" : "optionalValue" } ) ;
128132 } ) ;
129133
130- expect ( group . valid ) . toEqual ( true ) ;
134+ it ( "should not run validations on an inactive component" , ( ) => {
135+ var group = new ControlGroup ( {
136+ "required" : new Control ( "requiredValue" , validations . required ) ,
137+ "optional" : new Control ( "" , validations . required )
138+ } , {
139+ "optional" : false
140+ } ) ;
141+
142+ expect ( group . valid ) . toEqual ( true ) ;
131143
132- group . controls [ "optional" ] . cond = true ;
144+ group . include ( "optional" ) ;
133145
134- expect ( group . valid ) . toEqual ( false ) ;
146+ expect ( group . valid ) . toEqual ( false ) ;
147+ } ) ;
135148 } ) ;
136149 } ) ;
137-
138150 } ) ;
139- }
151+ }
0 commit comments