1 | class UTRError extends Error {
|
2 | get code () { return this._code }
|
3 |
|
4 | constructor (error, details) {
|
5 | super()
|
6 | this.name = `UTRError:${error.name}`
|
7 | this._code = error.code
|
8 | if (details) {
|
9 | this.message = details
|
10 | } else {
|
11 | this.message = error.name
|
12 | }
|
13 | }
|
14 | }
|
15 |
|
16 | const errors = [{
|
17 | name: 'GENERIC'
|
18 | }, {
|
19 | name: 'NPM_FAILED'
|
20 | }, {
|
21 | name: 'MISSING_OR_INVALID_BROWSER_CAPABILITIES'
|
22 | }, {
|
23 | name: 'BROWSER_PROBE_FAILED'
|
24 | }, {
|
25 | name: 'BROWSER_FAILED'
|
26 | }, {
|
27 | name: 'BROWSER_SCREENSHOT_FAILED'
|
28 | }, {
|
29 | name: 'BROWSER_SCREENSHOT_TIMEOUT'
|
30 | }, {
|
31 | name: 'BROWSER_SCREENSHOT_NOT_SUPPORTED'
|
32 | }, {
|
33 | name: 'QUNIT_ERROR'
|
34 | }, {
|
35 | name: 'MODE_INCOMPATIBLE_OPTION'
|
36 | }, {
|
37 | name: 'BROWSER_MISS_SCRIPTS_CAPABILITY'
|
38 | }, {
|
39 | name: 'NPM_DEPENDENCY_NOT_FOUND'
|
40 | }, {
|
41 | name: 'NYC_FAILED'
|
42 | }]
|
43 |
|
44 | errors.forEach((error, index) => {
|
45 | error.code = -1 - index
|
46 | UTRError[`${error.name}_CODE`] = error.code
|
47 | UTRError[error.name] = function (details = '') {
|
48 | return new UTRError(error, details)
|
49 | }
|
50 | })
|
51 |
|
52 | module.exports = {
|
53 | UTRError
|
54 | }
|