@@ -14,16 +14,16 @@ import getDevToolsFrontendUrl from '../utils/getDevToolsFrontendUrl';
14
14
describe ( 'getDevToolsFrontendUrl' , ( ) => {
15
15
const webSocketDebuggerUrl =
16
16
'ws://localhost:8081/inspector/debug?device=1a9372c&page=-1' ;
17
+ const devServerUrl = 'http://localhost:8081' ;
17
18
18
- describe ( 'given an absolute devServerUrl' , ( ) => {
19
- const devServerUrl = 'http://localhost:8081' ;
19
+ const experiments = {
20
+ enableNetworkInspector : false ,
21
+ enableNewDebugger : false ,
22
+ enableOpenDebuggerRedirect : false ,
23
+ } ;
20
24
21
- it ( 'should return a valid url for all experiments off' , async ( ) => {
22
- const experiments = {
23
- enableNetworkInspector : false ,
24
- enableNewDebugger : false ,
25
- enableOpenDebuggerRedirect : false ,
26
- } ;
25
+ describe ( 'relative: false (default)' , ( ) => {
26
+ test ( 'should return a valid url for all experiments off' , async ( ) => {
27
27
const actual = getDevToolsFrontendUrl (
28
28
experiments ,
29
29
webSocketDebuggerUrl ,
@@ -33,18 +33,13 @@ describe('getDevToolsFrontendUrl', () => {
33
33
expect ( url . host ) . toBe ( 'localhost:8081' ) ;
34
34
expect ( url . pathname ) . toBe ( '/debugger-frontend/rn_inspector.html' ) ;
35
35
expect ( url . searchParams . get ( 'ws' ) ) . toBe (
36
- 'localhost:8081 /inspector/debug?device=1a9372c&page=-1' ,
36
+ '/inspector/debug?device=1a9372c&page=-1' ,
37
37
) ;
38
38
} ) ;
39
39
40
- it ( 'should return a valid url for enableNetworkInspector experiment on' , async ( ) => {
41
- const experiments = {
42
- enableNetworkInspector : true ,
43
- enableNewDebugger : true ,
44
- enableOpenDebuggerRedirect : false ,
45
- } ;
40
+ test ( 'should return a valid url for enableNetworkInspector experiment on' , async ( ) => {
46
41
const actual = getDevToolsFrontendUrl (
47
- experiments ,
42
+ { ... experiments , enableNetworkInspector : true , enableNewDebugger : true } ,
48
43
webSocketDebuggerUrl ,
49
44
devServerUrl ,
50
45
) ;
@@ -53,14 +48,26 @@ describe('getDevToolsFrontendUrl', () => {
53
48
expect ( url . pathname ) . toBe ( '/debugger-frontend/rn_inspector.html' ) ;
54
49
expect ( url . searchParams . get ( 'unstable_enableNetworkPanel' ) ) . toBe ( 'true' ) ;
55
50
expect ( url . searchParams . get ( 'ws' ) ) . toBe (
56
- 'localhost:8081 /inspector/debug?device=1a9372c&page=-1' ,
51
+ '/inspector/debug?device=1a9372c&page=-1' ,
57
52
) ;
58
53
} ) ;
59
- } ) ;
60
54
61
- describe ( 'given a relative devServerUrl' , ( ) => {
62
- const relativeDevServerUrl = '' ;
55
+ test ( 'should return a full WS URL if on a different host than the dev server' , ( ) => {
56
+ const otherWebSocketDebuggerUrl =
57
+ 'ws://localhost:9000/inspector/debug?device=1a9372c&page=-1' ;
58
+ const actual = getDevToolsFrontendUrl (
59
+ experiments ,
60
+ otherWebSocketDebuggerUrl ,
61
+ devServerUrl ,
62
+ ) ;
63
+ const url = new URL ( actual ) ;
64
+ expect ( url . searchParams . get ( 'ws' ) ) . toBe (
65
+ 'localhost:9000/inspector/debug?device=1a9372c&page=-1' ,
66
+ ) ;
67
+ } ) ;
68
+ } ) ;
63
69
70
+ describe ( 'relative: true' , ( ) => {
64
71
function assertValidRelativeURL ( relativeURL : string ) : URL {
65
72
const anyBaseURL = new URL ( 'https://www.example.com' ) ;
66
73
try {
@@ -71,40 +78,53 @@ describe('getDevToolsFrontendUrl', () => {
71
78
}
72
79
}
73
80
74
- it ( 'should return a valid url for all experiments off' , async ( ) => {
75
- const experiments = {
76
- enableNetworkInspector : false ,
77
- enableNewDebugger : false ,
78
- enableOpenDebuggerRedirect : false ,
79
- } ;
81
+ test ( 'should return a valid url for all experiments off' , async ( ) => {
80
82
const actual = getDevToolsFrontendUrl (
81
83
experiments ,
82
84
webSocketDebuggerUrl ,
83
- relativeDevServerUrl ,
85
+ devServerUrl ,
86
+ {
87
+ relative : true ,
88
+ } ,
84
89
) ;
85
90
const url = assertValidRelativeURL ( actual ) ;
86
91
expect ( url . pathname ) . toBe ( '/debugger-frontend/rn_inspector.html' ) ;
87
92
expect ( url . searchParams . get ( 'ws' ) ) . toBe (
88
- 'localhost:8081 /inspector/debug?device=1a9372c&page=-1' ,
93
+ '/inspector/debug?device=1a9372c&page=-1' ,
89
94
) ;
90
95
} ) ;
91
96
92
- it ( 'should return a valid url for enableNetworkInspector experiment on' , async ( ) => {
93
- const experiments = {
94
- enableNetworkInspector : true ,
95
- enableNewDebugger : true ,
96
- enableOpenDebuggerRedirect : false ,
97
- } ;
97
+ test ( 'should return a valid url for enableNetworkInspector experiment on' , async ( ) => {
98
98
const actual = getDevToolsFrontendUrl (
99
- experiments ,
99
+ { ... experiments , enableNetworkInspector : true , enableNewDebugger : true } ,
100
100
webSocketDebuggerUrl ,
101
- relativeDevServerUrl ,
101
+ devServerUrl ,
102
+ {
103
+ relative : true ,
104
+ } ,
102
105
) ;
103
106
const url = assertValidRelativeURL ( actual ) ;
104
107
expect ( url . pathname ) . toBe ( '/debugger-frontend/rn_inspector.html' ) ;
105
108
expect ( url . searchParams . get ( 'unstable_enableNetworkPanel' ) ) . toBe ( 'true' ) ;
106
109
expect ( url . searchParams . get ( 'ws' ) ) . toBe (
107
- 'localhost:8081/inspector/debug?device=1a9372c&page=-1' ,
110
+ '/inspector/debug?device=1a9372c&page=-1' ,
111
+ ) ;
112
+ } ) ;
113
+
114
+ test ( 'should return a full WS URL if on a different host than the dev server' , ( ) => {
115
+ const otherWebSocketDebuggerUrl =
116
+ 'ws://localhost:8082/inspector/debug?device=1a9372c&page=-1' ;
117
+ const actual = getDevToolsFrontendUrl (
118
+ experiments ,
119
+ otherWebSocketDebuggerUrl ,
120
+ devServerUrl ,
121
+ {
122
+ relative : true ,
123
+ } ,
124
+ ) ;
125
+ const url = assertValidRelativeURL ( actual ) ;
126
+ expect ( url . searchParams . get ( 'ws' ) ) . toBe (
127
+ 'localhost:8082/inspector/debug?device=1a9372c&page=-1' ,
108
128
) ;
109
129
} ) ;
110
130
} ) ;
0 commit comments