@@ -15,33 +15,28 @@ function Test(component, config) {
1515 instance = TestUtils . renderIntoDocument ( component )
1616 }
1717
18- function getFirst ( object ) {
19- for ( let element in object )
20- return object [ element ]
21- }
22-
2318 const testComponent = {
2419 instance,
25- helpers : { } ,
26- params ( ) {
27- const length = Object . keys ( this . helpers ) . length
28- if ( this . helpers . elements && length === 1 ) {
29- return Object . assign ( { } , this , this . helpers . elements )
30- }
31- return this
32- } ,
20+ elements : { } ,
3321 element ( select , callback ) {
34- if ( ! this . helpers ) return
35-
3622 let element
3723 if ( typeof select === 'string' ) {
38- element = this . helpers . elements [ select ]
24+ element = this . elements [ select ]
3925 callback . call ( this , element )
4026 return this
4127 }
4228
43- element = getFirst ( this . helpers . elements )
44- select . call ( this , element )
29+ if ( Array . isArray ( select ) ) {
30+ const args = select . map ( elem => this . elements [ elem ] )
31+ callback . call ( this , ...args )
32+ return this
33+ }
34+
35+ if ( Object . keys ( this . elements ) . length === 1 ) {
36+ select . call ( this , this . elements [ Object . keys ( this . elements ) [ 0 ] ] )
37+ } else {
38+ throw new Error ( "There are multiple elements select one" )
39+ }
4540 return this
4641 } ,
4742 use ( callback , data ) {
@@ -58,7 +53,7 @@ function Test(component, config) {
5853 return this
5954 } ,
6055 test ( callback ) {
61- const param = this . params ( )
56+ const param = { ... this , ... this . elements }
6257 callback . call ( param , param )
6358 return this
6459 } ,
0 commit comments