@@ -2066,6 +2066,134 @@ describe("web socket server URL", () => {
20662066 await server . stop ( ) ;
20672067 } ) ;
20682068
2069+ it ( `should work with "server: 'https'" option ("${ webSocketServer } ")` , async ( ) => {
2070+ const hostname = "127.0.0.1" ;
2071+ const compiler = webpack ( config ) ;
2072+ const devServerOptions = {
2073+ webSocketServer,
2074+ port : port1 ,
2075+ server : "https" ,
2076+ } ;
2077+ const server = new Server ( devServerOptions , compiler ) ;
2078+
2079+ await server . start ( ) ;
2080+
2081+ const { page, browser } = await runBrowser ( ) ;
2082+
2083+ const pageErrors = [ ] ;
2084+ const consoleMessages = [ ] ;
2085+
2086+ page
2087+ . on ( "console" , ( message ) => {
2088+ consoleMessages . push ( message ) ;
2089+ } )
2090+ . on ( "pageerror" , ( error ) => {
2091+ pageErrors . push ( error ) ;
2092+ } ) ;
2093+
2094+ const webSocketRequests = [ ] ;
2095+
2096+ if ( webSocketServer === "ws" ) {
2097+ const client = page . _client ;
2098+
2099+ client . on ( "Network.webSocketCreated" , ( test ) => {
2100+ webSocketRequests . push ( test ) ;
2101+ } ) ;
2102+ } else {
2103+ page . on ( "request" , ( request ) => {
2104+ if ( / \/ w s \/ / . test ( request . url ( ) ) ) {
2105+ webSocketRequests . push ( { url : request . url ( ) } ) ;
2106+ }
2107+ } ) ;
2108+ }
2109+
2110+ await page . goto ( `https://${ hostname } :${ port1 } /` , {
2111+ waitUntil : "networkidle0" ,
2112+ } ) ;
2113+
2114+ const webSocketRequest = webSocketRequests [ 0 ] ;
2115+
2116+ if ( webSocketServer === "ws" ) {
2117+ expect ( webSocketRequest . url ) . toContain ( `wss://${ hostname } :${ port1 } /ws` ) ;
2118+ } else {
2119+ expect ( webSocketRequest . url ) . toContain (
2120+ `https://${ hostname } :${ port1 } /ws`
2121+ ) ;
2122+ }
2123+
2124+ expect ( consoleMessages . map ( ( message ) => message . text ( ) ) ) . toMatchSnapshot (
2125+ "console messages"
2126+ ) ;
2127+ expect ( pageErrors ) . toMatchSnapshot ( "page errors" ) ;
2128+
2129+ await browser . close ( ) ;
2130+ await server . stop ( ) ;
2131+ } ) ;
2132+
2133+ it ( `should work with "server: 'spdy'" option ("${ webSocketServer } ")` , async ( ) => {
2134+ const hostname = "127.0.0.1" ;
2135+ const compiler = webpack ( config ) ;
2136+ const devServerOptions = {
2137+ webSocketServer,
2138+ port : port1 ,
2139+ server : "spdy" ,
2140+ } ;
2141+ const server = new Server ( devServerOptions , compiler ) ;
2142+
2143+ await server . start ( ) ;
2144+
2145+ const { page, browser } = await runBrowser ( ) ;
2146+
2147+ const pageErrors = [ ] ;
2148+ const consoleMessages = [ ] ;
2149+
2150+ page
2151+ . on ( "console" , ( message ) => {
2152+ consoleMessages . push ( message ) ;
2153+ } )
2154+ . on ( "pageerror" , ( error ) => {
2155+ pageErrors . push ( error ) ;
2156+ } ) ;
2157+
2158+ const webSocketRequests = [ ] ;
2159+
2160+ if ( webSocketServer === "ws" ) {
2161+ const client = page . _client ;
2162+
2163+ client . on ( "Network.webSocketCreated" , ( test ) => {
2164+ webSocketRequests . push ( test ) ;
2165+ } ) ;
2166+ } else {
2167+ page . on ( "request" , ( request ) => {
2168+ if ( / \/ w s \/ / . test ( request . url ( ) ) ) {
2169+ webSocketRequests . push ( { url : request . url ( ) } ) ;
2170+ }
2171+ } ) ;
2172+ }
2173+
2174+ await page . goto ( `https://${ hostname } :${ port1 } /` , {
2175+ waitUntil : "networkidle0" ,
2176+ } ) ;
2177+
2178+ const webSocketRequest = webSocketRequests [ 0 ] ;
2179+
2180+ if ( webSocketServer === "ws" ) {
2181+ expect ( webSocketRequest . url ) . toContain ( `wss://${ hostname } :${ port1 } /ws` ) ;
2182+ } else {
2183+ expect ( webSocketRequest . url ) . toContain (
2184+ `https://${ hostname } :${ port1 } /ws`
2185+ ) ;
2186+ }
2187+
2188+ expect ( consoleMessages . map ( ( message ) => message . text ( ) ) ) . toMatchSnapshot (
2189+ "console messages"
2190+ ) ;
2191+ expect ( pageErrors ) . toMatchSnapshot ( "page errors" ) ;
2192+
2193+ await browser . close ( ) ;
2194+ await server . stop ( ) ;
2195+ } ) ;
2196+
20692197 it ( `should work when "port" option is "auto" ("${ webSocketServer } ")` , async ( ) => {
20702198 process . env . WEBPACK_DEV_SERVER_BASE_PORT = 50000 ;
20712199
0 commit comments