ui5-test-runner 5.7.2 → 5.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -85,7 +85,10 @@ async function main () {
85
85
  output.debug('reserve', 'configuration', configuration)
86
86
  const server = serve(configuration)
87
87
  if (job.logServer) {
88
- server.on('redirected', output.redirected)
88
+ server
89
+ .on('incoming', output.logServerIncoming)
90
+ .on('redirected', output.logServerRedirected)
91
+ .on('closed', output.logServerClosed)
89
92
  }
90
93
 
91
94
  const { promise: serverStarted, resolve: serverReady, reject: serverError } = allocPromise()
@@ -148,7 +151,11 @@ async function main () {
148
151
  await end(job)
149
152
  }
150
153
  output.stop()
151
- await server.close()
154
+ await server.close({ close: true })
155
+ await new Promise(resolve => setTimeout(resolve, 100)) // wait for server handles to be released
156
+ if (job.logServer) {
157
+ output.logServerSummary()
158
+ }
152
159
  if (startedCommand) {
153
160
  await startedCommand.stop()
154
161
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ui5-test-runner",
3
- "version": "5.7.2",
3
+ "version": "5.7.4",
4
4
  "description": "Standalone test runner for UI5",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -49,7 +49,7 @@
49
49
  "ps-tree": "^1.2.0",
50
50
  "punybind": "^1.2.1",
51
51
  "punyexpr": "1.1.1",
52
- "reserve": "2.2.0"
52
+ "reserve": "2.3.1"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@openui5/types": "^1.136.0",
@@ -81,7 +81,10 @@ async function capabilities (job) {
81
81
  })
82
82
  const server = serve(configuration)
83
83
  if (job.logServer) {
84
- server.on('redirected', output.redirected)
84
+ server
85
+ .on('incoming', output.logServerIncoming)
86
+ .on('redirected', output.logServerRedirected)
87
+ .on('closed', output.logServerClosed)
85
88
  }
86
89
  server.on('error', (error) => {
87
90
  output.error('REserve error:', error)
package/src/clean.js CHANGED
@@ -16,7 +16,7 @@ module.exports = {
16
16
  let info
17
17
  if (handle._httpMessage) {
18
18
  const { path, method, host, protocol } = handle._httpMessage
19
- info = `${method} ${protocol}://${host}${path}`
19
+ info = `${method} ${protocol}//${host}${path}`
20
20
  } else {
21
21
  const { localAddress, localPort, remoteAddress, remotePort } = handle
22
22
  info = `from ${localAddress}:${localPort} to ${remoteAddress}:${remotePort}`
@@ -24,9 +24,9 @@ async function main () {
24
24
  const job = require(join(reportDir, 'job.js'))
25
25
  o('<?xml version="1.0" encoding="UTF-8"?>')
26
26
  o('<testsuites>')
27
- const urls = Object.keys(job.qunitPages)
27
+ const urls = Object.keys(job.qunitPages || {})
28
28
  for (const url of urls) {
29
- const qunitPage = job.qunitPages[url]
29
+ const qunitPage = job.qunitPages[url] || { modules: [] }
30
30
  for (const module of qunitPage.modules) {
31
31
  o(` <testsuite
32
32
  name="${xmlEscape(url)}"
package/src/output.js CHANGED
@@ -15,6 +15,10 @@ const interactive = process.stdout.columns !== undefined && !inJest
15
15
  const $output = Symbol('output')
16
16
  const $outputStart = Symbol('output-start')
17
17
  const $outputProgress = Symbol('output-progress')
18
+ const $logServerIncomingCount = Symbol('log-server-incoming')
19
+ const $logServerRedirectedCount = Symbol('log-server-redirected')
20
+ const $logServerClosedCount = Symbol('log-server-closed')
21
+ const $logServerRequests = Symbol('log-server-requests')
18
22
 
19
23
  if (!interactive) {
20
24
  const UTF8_BOM_CODE = '\ufeff'
@@ -295,8 +299,18 @@ function build (job) {
295
299
  }
296
300
  },
297
301
 
298
- redirected: wrap(({ method, url, statusCode, timeSpent }) => {
299
- if (url.startsWith('/_/progress')) {
302
+ logServerIncoming: wrap(({ id, method, url }) => {
303
+ if (url.startsWith('/_/')) {
304
+ return // avoids pollution
305
+ }
306
+ job[$logServerIncomingCount] = (job[$logServerIncomingCount] || 0) + 1
307
+ job[$logServerRequests] ??= {}
308
+ job[$logServerRequests][id] = { method, url }
309
+ log(job, p80()`🛜 INC ${id.toString(36).toUpperCase().padStart(4, ' ')} ${method.padEnd(7, ' ')} ${pad.lt(url)}`)
310
+ }),
311
+
312
+ logServerRedirected: wrap(({ id, method, url, statusCode, timeSpent }) => {
313
+ if (url.startsWith('/_/')) {
300
314
  return // avoids pollution
301
315
  }
302
316
  let statusText
@@ -305,7 +319,33 @@ function build (job) {
305
319
  } else {
306
320
  statusText = statusCode
307
321
  }
308
- log(job, p80()`${method.padEnd(7, ' ')} ${pad.lt(url)} ${statusText} ${timeSpent.toString().padStart(4, ' ')}ms`)
322
+ job[$logServerRedirectedCount] = (job[$logServerRedirectedCount] || 0) + 1
323
+ const request = job[$logServerRequests][id]
324
+ request.redirected = true
325
+ if (request.closed) {
326
+ delete job[$logServerRequests][id]
327
+ }
328
+ log(job, p80()`🛜 SRV ${id.toString(36).toUpperCase().padStart(4, ' ')} ${method.padEnd(7, ' ')} ${pad.lt(url)} ${statusText} ${timeSpent.toString().padStart(4, ' ')}ms`)
329
+ }),
330
+
331
+ logServerClosed: wrap(({ id, method, url }) => {
332
+ if (url.startsWith('/_/')) {
333
+ return // avoids pollution
334
+ }
335
+ job[$logServerClosedCount] = (job[$logServerClosedCount] || 0) + 1
336
+ const request = job[$logServerRequests][id]
337
+ request.closed = true
338
+ if (request.redirected) {
339
+ delete job[$logServerRequests][id]
340
+ }
341
+ log(job, p80()`🛜 CLS ${id.toString(36).toUpperCase().padStart(4, ' ')} ${method.padEnd(7, ' ')} ${pad.lt(url)}`)
342
+ }),
343
+
344
+ logServerSummary: wrap(() => {
345
+ log(job, p80()`🛜 requests: ${job[$logServerIncomingCount] || 0} incoming, ${job[$logServerRedirectedCount] || 0} redirected, ${job[$logServerClosedCount] || 0} closed.`)
346
+ if (job[$logServerRequests] && Object.keys(job[$logServerRequests]).length) {
347
+ log(job, job[$logServerRequests])
348
+ }
309
349
  }),
310
350
 
311
351
  status (status) {