@@ -7,11 +7,23 @@ const ReactDOM = window.ReactDOM;
77class SelectFixture extends React . Component {
88 state = { value : '' } ;
99 _nestedDOMNode = null ;
10+ _singleFormDOMNode = null ;
11+ _multipleFormDOMNode = null ;
1012
1113 onChange = event => {
1214 this . setState ( { value : event . target . value } ) ;
1315 } ;
1416
17+ resetSingleOptionForm = event => {
18+ event . preventDefault ( ) ;
19+ this . _singleFormDOMNode . reset ( ) ;
20+ } ;
21+
22+ resetMultipleOptionForm = event => {
23+ event . preventDefault ( ) ;
24+ this . _multipleFormDOMNode . reset ( ) ;
25+ } ;
26+
1527 componentDidMount ( ) {
1628 this . _renderNestedSelect ( ) ;
1729 }
@@ -100,6 +112,49 @@ class SelectFixture extends React.Component {
100112 </ select >
101113 </ div >
102114 </ TestCase >
115+
116+ < TestCase title = "A single select being reset" >
117+ < TestCase . Steps >
118+ < li > Open the select</ li >
119+ < li > Select "baz" or "foo"</ li >
120+ < li > Click the "Reset" button</ li >
121+ </ TestCase . Steps >
122+ < TestCase . ExpectedResult >
123+ The select should be reset to the inital value, "bar"
124+ </ TestCase . ExpectedResult >
125+
126+ < div className = "test-fixture" >
127+ < form ref = { n => ( this . _singleFormDOMNode = n ) } >
128+ < select defaultValue = "bar" >
129+ < option value = "foo" > foo</ option >
130+ < option value = "bar" > bar</ option >
131+ < option value = "baz" > baz</ option >
132+ </ select >
133+ < button onClick = { this . resetSingleOptionForm } > Reset</ button >
134+ </ form >
135+ </ div >
136+ </ TestCase >
137+
138+ < TestCase title = "A multiple select being reset" >
139+ < TestCase . Steps >
140+ < li > Select any combination of options</ li >
141+ < li > Click the "Reset" button</ li >
142+ </ TestCase . Steps >
143+ < TestCase . ExpectedResult >
144+ The select should be reset to the initial values "foo" and "baz"
145+ </ TestCase . ExpectedResult >
146+
147+ < div className = "test-fixture" >
148+ < form ref = { n => ( this . _multipleFormDOMNode = n ) } >
149+ < select multiple defaultValue = { [ 'foo' , 'baz' ] } >
150+ < option value = "foo" > foo</ option >
151+ < option value = "bar" > bar</ option >
152+ < option value = "baz" > baz</ option >
153+ </ select >
154+ < button onClick = { this . resetMultipleOptionForm } > Reset</ button >
155+ </ form >
156+ </ div >
157+ </ TestCase >
103158 </ FixtureSet >
104159 ) ;
105160 }
0 commit comments