@@ -29,7 +29,7 @@ function injectNWTL(browser) {
29
29
}
30
30
31
31
32
- module . exports . getQueriesFrom = ( browser ) => {
32
+ const getQueriesFrom = ( browser , container ) => {
33
33
const queries = { } ;
34
34
Object . keys ( baseQueries ) . forEach ( queryName => {
35
35
queries [ queryName ] = ( ...args ) => new Promise ( ( resolve , reject ) => {
@@ -42,7 +42,7 @@ module.exports.getQueriesFrom = (browser) => {
42
42
43
43
injectNWTL ( browser )
44
44
// eslint-disable-next-line no-shadow
45
- browser . execute ( function ( queryName , ...args ) {
45
+ browser . execute ( function ( queryName , container , ...args ) {
46
46
try {
47
47
args = args . map ( arg => {
48
48
if ( arg . RegExp ) {
@@ -51,14 +51,15 @@ module.exports.getQueriesFrom = (browser) => {
51
51
}
52
52
return arg ;
53
53
} ) ;
54
+ const root = container ? document . querySelector ( container ) : document . body ;
54
55
if ( / A l l B y / . test ( queryName ) ) {
55
- const elms = window . TestingLibraryDom [ queryName ] ( document . body , ...args ) ;
56
+ const elms = window . TestingLibraryDom [ queryName ] ( root , ...args ) ;
56
57
57
58
const selector = elms . map ( elm => window . Simmer ( elm ) ) . join ( ', ' ) ;
58
59
59
60
return selector ;
60
61
} else {
61
- const elm = window . TestingLibraryDom [ queryName ] ( document . body , ...args ) ;
62
+ const elm = window . TestingLibraryDom [ queryName ] ( root , ...args ) ;
62
63
63
64
const selector = window . Simmer ( elm ) ;
64
65
@@ -67,7 +68,7 @@ module.exports.getQueriesFrom = (browser) => {
67
68
} catch ( e ) {
68
69
return { error : { message : e . message , stack : e . stack } } ;
69
70
}
70
- } , [ queryName , ...args ] , ( result ) => {
71
+ } , [ queryName , container , ...args ] , ( result ) => {
71
72
72
73
73
74
if ( result . value . error ) {
@@ -83,7 +84,8 @@ module.exports.getQueriesFrom = (browser) => {
83
84
}
84
85
resolve ( {
85
86
selector,
86
- nth ( index ) { return ( ( { selector, index } ) ) }
87
+ nth ( index ) { return ( ( { selector : selector . split ( / , / ) [ index ] , browser : ( ) => browser } ) ) } ,
88
+ browser : ( ) => browser
87
89
} )
88
90
89
91
@@ -93,7 +95,12 @@ module.exports.getQueriesFrom = (browser) => {
93
95
94
96
return queries ;
95
97
}
96
-
97
- module . exports . configure = ( config ) => {
98
+ const within = ( selector ) => {
99
+ return getQueriesFrom ( selector . browser ( ) , selector . selector ) ;
100
+ }
101
+ const configure = ( config ) => {
98
102
_config = config ;
103
+ }
104
+ module . exports = {
105
+ configure, getQueriesFrom, within
99
106
}
0 commit comments