Skip to content

Commit 6c12a6c

Browse files
author
Barthélémy Ledoux
authored
fix: run-ct does not hang on windows anymore (#16022)
1 parent df789cc commit 6c12a6c

File tree

5 files changed

+18
-22
lines changed

5 files changed

+18
-22
lines changed

npm/webpack-dev-server/src/startServer.ts

+1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ export async function start ({ webpackConfig: userWebpackConfig, options, ...use
5151
hot: false,
5252
inline: false,
5353
publicPath: devServerPublicPathRoute,
54+
noInfo: true,
5455
}
5556

5657
return new WebpackDevServer(compiler, webpackDevServerConfig)

packages/server-ct/src/socket-ct.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
import Debug from 'debug'
12
import * as socketIo from '@packages/socket'
23
import devServer from '@packages/server/lib/plugins/dev-server'
34
import { SocketBase } from '@packages/server/lib/socket-base'
45
import { DestroyableHttpServer } from '@packages/server/lib/util/server_destroy'
56

7+
const debug = Debug('cypress:server-ct:socket-ct')
8+
69
export class SocketCt extends SocketBase {
710
constructor (config: Record<string, any>) {
811
super(config)
@@ -26,7 +29,7 @@ export class SocketCt extends SocketBase {
2629

2730
return super.startListening(server, automation, config, options, {
2831
onSocketConnection (socket: socketIo.SocketIOServer) {
29-
32+
debug('do onSocketConnection')
3033
},
3134
})
3235
}

packages/server/lib/project-base.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export type Cfg = Record<string, any>
4848

4949
const localCwd = cwd()
5050
const multipleForwardSlashesRe = /[^:\/\/](\/{2,})/g
51+
const backSlashesRe = /\\/g
5152

5253
const debug = Debug('cypress:server:project')
5354
const debugScaffold = Debug('cypress:server:scaffold')
@@ -373,6 +374,7 @@ export class ProjectBase<TServer extends ServerE2E | ServerCt> extends EE {
373374
},
374375

375376
onConnect: (id) => {
377+
debug('socket:connected')
376378
this.emit('socket:connected', id)
377379
},
378380

@@ -574,10 +576,14 @@ export class ProjectBase<TServer extends ServerE2E | ServerCt> extends EE {
574576

575577
const folderToUse = type === 'integration' ? integrationFolder : componentFolder
576578

579+
// To avoid having invalid urls from containing backslashes,
580+
// we normalize specUrls to posix by replacing backslash by slash
581+
// Indeed, path.realtive will return something different on windows
582+
// than on posix systems which can lead to problems
577583
const url = `/${path.join(type, path.relative(
578584
folderToUse,
579585
path.resolve(projectRoot, pathToSpec),
580-
))}`
586+
)).replace(backSlashesRe, '/')}`
581587

582588
debug('prefixed path for spec %o', { pathToSpec, type, url })
583589

@@ -591,7 +597,8 @@ export class ProjectBase<TServer extends ServerE2E | ServerCt> extends EE {
591597
browserUrl,
592598
'#/tests',
593599
escapeFilenameInUrl(specUrl),
594-
].join('/').replace(multipleForwardSlashesRe, replacer)
600+
].join('/')
601+
.replace(multipleForwardSlashesRe, replacer)
595602
}
596603

597604
scaffold (cfg: Cfg) {

packages/server/lib/server-e2e.ts

+2
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ export class ServerE2E extends ServerBase<SocketE2E> {
109109
}
110110
}
111111

112+
debug('createServer connecting to server')
113+
112114
this.server.on('connect', this.onConnect.bind(this))
113115
this.server.on('upgrade', (req, socket, head) => this.onUpgrade(req, socket, head, socketIoRoute))
114116
this.server.once('error', onError)

yarn.lock

+2-19
Original file line numberDiff line numberDiff line change
@@ -16322,7 +16322,7 @@ detect-node@^2.0.4:
1632216322
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
1632316323
integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
1632416324

16325-
[email protected], detect-port-alt@^1.1.6:
16325+
1632616326
version "1.1.6"
1632716327
resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275"
1632816328
integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==
@@ -36453,23 +36453,6 @@ superagent@^3.8.3:
3645336453
qs "^6.5.1"
3645436454
readable-stream "^2.3.5"
3645536455

36456-
superagent@^5.1.0:
36457-
version "5.3.1"
36458-
resolved "https://registry.yarnpkg.com/superagent/-/superagent-5.3.1.tgz#d62f3234d76b8138c1320e90fa83dc1850ccabf1"
36459-
integrity sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==
36460-
dependencies:
36461-
component-emitter "^1.3.0"
36462-
cookiejar "^2.1.2"
36463-
debug "^4.1.1"
36464-
fast-safe-stringify "^2.0.7"
36465-
form-data "^3.0.0"
36466-
formidable "^1.2.2"
36467-
methods "^1.1.2"
36468-
mime "^2.4.6"
36469-
qs "^6.9.4"
36470-
readable-stream "^3.6.0"
36471-
semver "^7.3.2"
36472-
3647336456
3647436457
version "4.0.0"
3647536458
resolved "https://registry.yarnpkg.com/supertest-session/-/supertest-session-4.0.0.tgz#3b442cbc37ede15a4acf7f8c570b836d880f8a40"
@@ -39663,7 +39646,7 @@ webpack-virtual-modules@^0.2.2:
3966339646
dependencies:
3966439647
debug "^3.0.0"
3966539648

39666-
webpack@4, webpack@^4.0.0, webpack@^4.18.1, webpack@^4.35.3, webpack@^4.44.1, webpack@^4.44.2:
39649+
webpack@4, webpack@^4.0.0, webpack@^4.18.1, webpack@^4.44.1, webpack@^4.44.2:
3966739650
version "4.46.0"
3966839651
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542"
3966939652
integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==

0 commit comments

Comments
 (0)