@@ -59,7 +59,7 @@ test.describe('Components', () => {
59
59
const isEditableValue = semver . gte ( config . use . react_version , '16.8.0' ) ;
60
60
61
61
// Then read the inspected values.
62
- const [ propName , propValue , sourceText ] = await page . evaluate (
62
+ const [ propName , propValue ] = await page . evaluate (
63
63
isEditable => {
64
64
const { createTestNameSelector, findAllNodes} =
65
65
window . REACT_DOM_DEVTOOLS ;
@@ -85,21 +85,41 @@ test.describe('Components', () => {
85
85
createTestNameSelector ( 'InspectedElementPropsTree' ) ,
86
86
createTestNameSelector ( selectorValue ) ,
87
87
] ) [ 0 ] ;
88
- const source = findAllNodes ( container , [
89
- createTestNameSelector ( 'InspectedElementView-Source' ) ,
90
- ] ) [ 0 ] ;
91
88
const value = isEditable . value
92
89
? valueElement . value
93
90
: valueElement . innerText ;
94
91
95
- return [ name , value , source . innerText ] ;
92
+ return [ name , value ] ;
96
93
} ,
97
94
{ name : isEditableName , value : isEditableValue }
98
95
) ;
99
96
100
97
expect ( propName ) . toBe ( 'label' ) ;
101
98
expect ( propValue ) . toBe ( '"one"' ) ;
102
- expect ( sourceText ) . toMatch ( / e 2 e - a p p [ a - z A - Z ] * \. j s / ) ;
99
+ } ) ;
100
+
101
+ test ( 'Should allow inspecting source of the element' , async ( ) => {
102
+ // Source inspection is available only in modern renderer.
103
+ runOnlyForReactRange ( '>=16.8' ) ;
104
+
105
+ // Select the first list item in DevTools.
106
+ await devToolsUtils . selectElement ( page , 'ListItem' , 'List\nApp' ) ;
107
+
108
+ // Then read the inspected values.
109
+ const sourceText = await page . evaluate ( ( ) => {
110
+ const { createTestNameSelector, findAllNodes} = window . REACT_DOM_DEVTOOLS ;
111
+ const container = document . getElementById ( 'devtools' ) ;
112
+
113
+ const source = findAllNodes ( container , [
114
+ createTestNameSelector ( 'InspectedElementView-Source' ) ,
115
+ ] ) [ 0 ] ;
116
+
117
+ return source . innerText ;
118
+ } ) ;
119
+
120
+ // If React version is specified, the e2e-regression.html page will be used
121
+ // If not, then e2e.html, see playwright.config.js, how url is constructed
122
+ expect ( sourceText ) . toMatch ( / e 2 e - a p p [ \- a - z A - Z ] * \. j s / ) ;
103
123
} ) ;
104
124
105
125
test ( 'should allow props to be edited' , async ( ) => {
0 commit comments