1 | 'use strict'
|
2 |
|
3 | module.exports = {
|
4 | getPageTimeout (job) {
|
5 | if (job.pageTimeout || job.globalTimeout) {
|
6 | if (job.globalTimeout) {
|
7 | return Math.min(job.globalTimeout - (new Date() - job.start), job.pageTimeout || Number.MAX_SAFE_INTEGER)
|
8 | }
|
9 | return job.pageTimeout
|
10 | }
|
11 | return 0
|
12 | },
|
13 |
|
14 | globallyTimedOut (job) {
|
15 | if (job.globalTimeout) {
|
16 | return new Date() - job.start > job.globalTimeout
|
17 | }
|
18 | return false
|
19 | },
|
20 |
|
21 | pageTimedOut (job, url) {
|
22 | const page = job.qunitPages && job.qunitPages[url]
|
23 | if (page) {
|
24 | const now = new Date()
|
25 | page.end = now
|
26 | page.timedOut = true
|
27 | page.modules.forEach(module => {
|
28 | module.tests.forEach(test => {
|
29 | if (!test.report) {
|
30 | ++page.failed
|
31 | if (test.start && !test.end) {
|
32 | test.end = now
|
33 | }
|
34 | test.logs ??= []
|
35 | test.logs.push({
|
36 | result: false,
|
37 | message: 'Page timed out'
|
38 | })
|
39 | test.report = {
|
40 | skipped: false,
|
41 | todo: false,
|
42 | failed: 1,
|
43 | passed: 0,
|
44 | total: 1
|
45 | }
|
46 | }
|
47 | })
|
48 | })
|
49 | job.failed = true
|
50 | job.timedOut = true
|
51 | }
|
52 | }
|
53 | }
|