jest-audio-reporter 2.2.3 → 2.2.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/README.md +6 -10
- package/cjs/AudioReporter.d.ts +0 -1
- package/cjs/AudioReporter.js.map +1 -1
- package/cjs/log.d.ts +0 -1
- package/cjs/log.js +2 -3
- package/cjs/log.js.map +1 -1
- package/cjs/options.js +1 -2
- package/cjs/options.js.map +1 -1
- package/package.json +41 -42
- package/ts/AudioReporter.spec.ts +0 -355
- package/ts/log.spec.ts +0 -55
- package/ts/options.spec.ts +0 -71
package/README.md
CHANGED
|
@@ -6,8 +6,6 @@
|
|
|
6
6
|
[![Github NodeJS][github-nodejs]][github-action-url]
|
|
7
7
|
[![Codecov][codecov-image]][codecov-url]
|
|
8
8
|
|
|
9
|
-
[![Semantic Release][semantic-release-image]][semantic-release-url]
|
|
10
|
-
|
|
11
9
|
[![Visual Studio Code][vscode-image]][vscode-url]
|
|
12
10
|
[![Wallaby.js][wallaby-image]][wallaby-url]
|
|
13
11
|
|
|
@@ -78,18 +76,16 @@ The audio files used for testing in this repository comes from <https://dova-s.j
|
|
|
78
76
|
|
|
79
77
|
Please refer to them for copyright information.
|
|
80
78
|
|
|
81
|
-
[codecov-image]: https://codecov.io/gh/
|
|
82
|
-
[codecov-url]: https://codecov.io/gh/
|
|
83
|
-
[coveralls-image]: https://coveralls.io/repos/github/
|
|
84
|
-
[coveralls-url]: https://coveralls.io/github/
|
|
79
|
+
[codecov-image]: https://codecov.io/gh/cyberuni/jest-audio-reporter/branch/main/graph/badge.svg
|
|
80
|
+
[codecov-url]: https://codecov.io/gh/cyberuni/jest-audio-reporter
|
|
81
|
+
[coveralls-image]: https://coveralls.io/repos/github/cyberuni/jest-audio-reporter/badge.svg
|
|
82
|
+
[coveralls-url]: https://coveralls.io/github/cyberuni/jest-audio-reporter
|
|
85
83
|
[downloads-image]: https://img.shields.io/npm/dm/jest-audio-reporter.svg?style=flat
|
|
86
84
|
[downloads-url]: https://npmjs.org/package/jest-audio-reporter
|
|
87
|
-
[github-nodejs]: https://github.com/
|
|
88
|
-
[github-action-url]: https://github.com/
|
|
85
|
+
[github-nodejs]: https://github.com/cyberuni/jest-audio-reporter/actions/workflows/release.yml/badge.svg
|
|
86
|
+
[github-action-url]: https://github.com/cyberuni/jest-audio-reporter/actions/workflows/release.yml
|
|
89
87
|
[npm-image]: https://img.shields.io/npm/v/jest-audio-reporter.svg?style=flat
|
|
90
88
|
[npm-url]: https://npmjs.org/package/jest-audio-reporter
|
|
91
|
-
[semantic-release-image]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
|
|
92
|
-
[semantic-release-url]: https://github.com/semantic-release/semantic-release
|
|
93
89
|
[vscode-image]: https://img.shields.io/badge/vscode-ready-green.svg
|
|
94
90
|
[vscode-url]: https://code.visualstudio.com/
|
|
95
91
|
[wallaby-image]: https://img.shields.io/badge/wallaby.js-configured-green.svg
|
package/cjs/AudioReporter.d.ts
CHANGED
package/cjs/AudioReporter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioReporter.js","sourceRoot":"","sources":["../ts/AudioReporter.ts"],"names":[],"mappings":";;;;;;AAGA,4DAA+B;AAC/B,4CAAmB;AAEnB,+BAA6C;AAC7C,uCAAmE;AACnE,mCAA+B;AAE/B,MAAa,aAAa;IAQxB,YAAmB,YAAiC,EAAE,WAA6B;QAAhE,iBAAY,GAAZ,YAAY,CAAqB;QAPpD,QAAG,GAAG,IAAA,eAAS,GAAE,CAAA;QAQf,IAAI,WAAW,CAAC,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"AudioReporter.js","sourceRoot":"","sources":["../ts/AudioReporter.ts"],"names":[],"mappings":"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"}
|
package/cjs/log.d.ts
CHANGED
package/cjs/log.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.createLog = createLog;
|
|
4
|
+
exports.logOptions = logOptions;
|
|
4
5
|
const store_1 = require("./store");
|
|
5
6
|
function createLog() {
|
|
6
7
|
return {
|
|
@@ -16,7 +17,6 @@ function createLog() {
|
|
|
16
17
|
}
|
|
17
18
|
};
|
|
18
19
|
}
|
|
19
|
-
exports.createLog = createLog;
|
|
20
20
|
function logOptions({ log }, raw, options) {
|
|
21
21
|
if (!raw.configs) {
|
|
22
22
|
log.debug('no config detected');
|
|
@@ -30,5 +30,4 @@ ${JSON.stringify(options, undefined, 2)}
|
|
|
30
30
|
`);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
exports.logOptions = logOptions;
|
|
34
33
|
//# sourceMappingURL=log.js.map
|
package/cjs/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../ts/log.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../ts/log.ts"],"names":[],"mappings":";;AAEA,8BAYC;AAED,gCAYC;AA5BD,mCAA+B;AAE/B,SAAgB,SAAS;IACvB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,OAAO;QACf,KAAK,CAAC,GAAG,IAAI;YACX,IAAI,aAAK,CAAC,KAAK;gBAAE,OAAM;YACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,uBAAuB;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO;IAC9C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACjC,CAAC;SACI,CAAC;QACJ,GAAG,CAAC,KAAK,CAAC;EACZ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGzC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;CACtC,CAAC,CAAA;IACA,CAAC;AACH,CAAC"}
|
package/cjs/options.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.processOptions =
|
|
6
|
+
exports.processOptions = processOptions;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
function processOptions(rawRCOptions) {
|
|
@@ -20,7 +20,6 @@ function processOptions(rawRCOptions) {
|
|
|
20
20
|
onSuiteFailure
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
-
exports.processOptions = processOptions;
|
|
24
23
|
function processRCFileEntry(files, dirs) {
|
|
25
24
|
if (!files)
|
|
26
25
|
return [];
|
package/cjs/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../ts/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../ts/options.ts"],"names":[],"mappings":";;;;;AAiCA,wCAeC;AAhDD,4CAAmB;AACnB,gDAAuB;AAgCvB,SAAgB,cAAc,CAAC,YAAY;IACzC,wDAAwD;IACxD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/E,MAAM,OAAO,GAAG,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC9D,MAAM,WAAW,GAAG,kBAAkB,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IACtE,MAAM,cAAc,GAAG,kBAAkB,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;IAE5E,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEvH,OAAO;QACL,gBAAgB;QAChB,OAAO;QACP,WAAW;QACX,cAAc;KACf,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAoC,EAAE,IAAc;IAC9E,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IACrB,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAC3D,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAClB,IAAI,cAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;aACI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9E,IAAI,IAAI,EAAE,CAAC;gBACT,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,76 +1,75 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jest-audio-reporter",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.4",
|
|
4
4
|
"description": "Plays audio on jest events",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jest",
|
|
7
7
|
"reporters",
|
|
8
8
|
"sounds"
|
|
9
9
|
],
|
|
10
|
-
"homepage": "https://github.com/
|
|
10
|
+
"homepage": "https://github.com/cyberuni/jest-audio-reporter",
|
|
11
11
|
"bugs": {
|
|
12
|
-
"url": "https://github.com/
|
|
12
|
+
"url": "https://github.com/cyberuni/jest-audio-reporter/issues"
|
|
13
13
|
},
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
16
|
-
"url": "https://github.com/
|
|
16
|
+
"url": "https://github.com/cyberuni/jest-audio-reporter.git"
|
|
17
17
|
},
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"main": "cjs/index.js",
|
|
20
20
|
"typings": "cjs/index.d.ts",
|
|
21
21
|
"files": [
|
|
22
22
|
"cjs",
|
|
23
|
-
"ts"
|
|
23
|
+
"ts",
|
|
24
|
+
"!ts/**/*.spec.ts"
|
|
24
25
|
],
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@jest/reporters": "^29.0.0",
|
|
28
|
+
"@jest/test-result": "^29.0.0",
|
|
29
|
+
"@jest/types": "^29.0.0",
|
|
30
|
+
"play-sound": "^1.1.5",
|
|
31
|
+
"rc": "^1.2.8"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@changesets/cli": "^3.0.0",
|
|
35
|
+
"@commitlint/cli": "^19.0.0",
|
|
36
|
+
"@commitlint/config-conventional": "^19.0.0",
|
|
37
|
+
"@types/jest": "^29.0.0",
|
|
38
|
+
"assertron": "^11.0.0",
|
|
39
|
+
"dependency-check": "^4.1.0",
|
|
40
|
+
"eslint": "^8.0.0",
|
|
41
|
+
"eslint-plugin-harmony": "^6.0.0",
|
|
42
|
+
"husky": "^9.0.0",
|
|
43
|
+
"jest": "^29.0.0",
|
|
44
|
+
"jest-junit": "^16.0.0",
|
|
45
|
+
"jest-progress-tracker": "^3.0.0",
|
|
46
|
+
"jest-validate": "^29.0.0",
|
|
47
|
+
"jest-watch-suspend": "^1.1.2",
|
|
48
|
+
"jest-watch-toggle-config": "^3.0.0",
|
|
49
|
+
"jest-watch-typeahead": "^2.0.0",
|
|
50
|
+
"npm-check-updates": "^16.0.0",
|
|
51
|
+
"npm-run-all2": "^6.0.0",
|
|
52
|
+
"rimraf": "^5.0.0",
|
|
53
|
+
"satisfier": "^5.1.0",
|
|
54
|
+
"ts-jest": "^29.0.0",
|
|
55
|
+
"typescript": "^5.0.0"
|
|
56
|
+
},
|
|
25
57
|
"scripts": {
|
|
26
58
|
"build": "tsc -p tsconfig.base.json",
|
|
27
59
|
"clean": "rimraf cjs dist",
|
|
28
60
|
"coverage": "jest --coverage",
|
|
61
|
+
"cs": "changeset",
|
|
29
62
|
"depscheck": "run-p dependency-check:unused dependency-check:missing",
|
|
30
63
|
"dependency-check": "run-p dependency-check:unused dependency-check:missing",
|
|
31
64
|
"dependency-check:unused": "dependency-check . --unused --no-dev -i @jest/reporters -i @jest/test-result -i @jest/types",
|
|
32
65
|
"dependency-check:missing": "dependency-check . --missing --no-dev",
|
|
33
66
|
"lint": "eslint --ext=ts,js .",
|
|
34
|
-
"release": "
|
|
67
|
+
"release": "changeset publish",
|
|
35
68
|
"size-limit": "echo no size-limit",
|
|
36
69
|
"test": "jest",
|
|
37
70
|
"verify": "run-p verify:build lint coverage",
|
|
38
71
|
"verify:build": "npm-run-all clean build --parallel dependency-check size-limit",
|
|
72
|
+
"version": "changeset version",
|
|
39
73
|
"watch": "jest --watch"
|
|
40
|
-
},
|
|
41
|
-
"husky": {
|
|
42
|
-
"hooks": {
|
|
43
|
-
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
"dependencies": {
|
|
47
|
-
"@jest/reporters": "^27.4.6",
|
|
48
|
-
"@jest/test-result": "^27.4.6",
|
|
49
|
-
"@jest/types": "^27.2.5",
|
|
50
|
-
"play-sound": "^1.1.5",
|
|
51
|
-
"rc": "^1.2.8"
|
|
52
|
-
},
|
|
53
|
-
"devDependencies": {
|
|
54
|
-
"@commitlint/cli": "^16.0.0",
|
|
55
|
-
"@commitlint/config-conventional": "^16.0.0",
|
|
56
|
-
"@types/jest": "^27.0.2",
|
|
57
|
-
"assertron": "^9.0.0",
|
|
58
|
-
"dependency-check": "^4.1.0",
|
|
59
|
-
"eslint": "^8.0.0",
|
|
60
|
-
"eslint-plugin-harmony": "^6.0.0",
|
|
61
|
-
"husky": "^7.0.4",
|
|
62
|
-
"jest": "^27.4.7",
|
|
63
|
-
"jest-junit": "^13.0.0",
|
|
64
|
-
"jest-progress-tracker": "^3.0.0",
|
|
65
|
-
"jest-validate": "^27.4.6",
|
|
66
|
-
"jest-watch-suspend": "^1.1.2",
|
|
67
|
-
"jest-watch-toggle-config": "^2.0.1",
|
|
68
|
-
"jest-watch-typeahead": "^1.0.0",
|
|
69
|
-
"npm-check-updates": "^12.0.0",
|
|
70
|
-
"npm-run-all": "^4.1.5",
|
|
71
|
-
"rimraf": "^3.0.2",
|
|
72
|
-
"satisfier": "^5.1.0",
|
|
73
|
-
"ts-jest": "^27.1.2",
|
|
74
|
-
"typescript": "^4.4.4"
|
|
75
74
|
}
|
|
76
|
-
}
|
|
75
|
+
}
|
package/ts/AudioReporter.spec.ts
DELETED
|
@@ -1,355 +0,0 @@
|
|
|
1
|
-
import { ReporterOnStartOptions } from '@jest/reporters'
|
|
2
|
-
import { AggregatedResult } from '@jest/test-result'
|
|
3
|
-
import { Config } from '@jest/types'
|
|
4
|
-
import t from 'assert'
|
|
5
|
-
import { AssertOrder } from 'assertron'
|
|
6
|
-
import AudioReporter from '.'
|
|
7
|
-
import { RuntimeOptions } from './options'
|
|
8
|
-
import { store } from './store'
|
|
9
|
-
|
|
10
|
-
test('Will not play onSuitePass if no test ran', () => {
|
|
11
|
-
const subject = new AudioReporter(gc(), {})
|
|
12
|
-
subject.options = runtimeOptions({ onSuitePass: ['audio/onSuitePass/昇格.mp3'] })
|
|
13
|
-
|
|
14
|
-
subject.player = { play() { throw new Error('should not play') } }
|
|
15
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 0 }))
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
test('Will not play onStart if test estimated to take less than 10s to run', () => {
|
|
19
|
-
const subject = new AudioReporter(gc(), {})
|
|
20
|
-
subject.options = runtimeOptions({
|
|
21
|
-
onSuitePass: ['audio/onSuitePass/昇格.mp3']
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
subject.player = { play() { throw new Error('should not play') } }
|
|
25
|
-
subject.onRunStart(ar(), { estimatedTime: 10, showStatus: false })
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
test('Will play onStart if test estimated to take more than 10s to run', () => {
|
|
29
|
-
const subject = new AudioReporter(gc(), {})
|
|
30
|
-
subject.options = runtimeOptions({ onSuitePass: ['audio/onSuitePass/昇格.mp3'] })
|
|
31
|
-
|
|
32
|
-
const o = new AssertOrder(1)
|
|
33
|
-
subject.player = { play() { o.once(1) } }
|
|
34
|
-
subject.onRunStart(ar(), { estimatedTime: 10.01, showStatus: false })
|
|
35
|
-
|
|
36
|
-
o.end()
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
test('Will play onStart if there is no estimate', () => {
|
|
40
|
-
const subject = new AudioReporter(gc(), {})
|
|
41
|
-
subject.options = runtimeOptions({ onSuitePass: ['audio/onSuitePass/昇格.mp3'] })
|
|
42
|
-
|
|
43
|
-
const o = new AssertOrder(1)
|
|
44
|
-
subject.player = { play() { o.once(1) } }
|
|
45
|
-
subject.onRunStart(ar({ numTotalTestSuites: 1 }), { estimatedTime: 0, showStatus: false })
|
|
46
|
-
|
|
47
|
-
o.end()
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
test('pick one if onStart has more than one entry', () => {
|
|
51
|
-
const subject = new AudioReporter(gc(), {})
|
|
52
|
-
subject.options = runtimeOptions({
|
|
53
|
-
onStart: ['audio/onSuitePass/昇格.mp3', 'audio/onSuitePass/勝利ジングル.mp3']
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
const calls = [0, 0]
|
|
57
|
-
subject.player = {
|
|
58
|
-
play(file) {
|
|
59
|
-
calls[subject.options.onStart.indexOf(file)]++
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
for (let i = 0; i < 100; i++)
|
|
63
|
-
subject.onRunStart(ar(), { estimatedTime: 10.01, showStatus: false })
|
|
64
|
-
|
|
65
|
-
t(calls[0] * calls[1] > 0)
|
|
66
|
-
})
|
|
67
|
-
test('pick one if onSuitePass is an array', () => {
|
|
68
|
-
const subject = new AudioReporter(gc(), {})
|
|
69
|
-
subject.options = runtimeOptions({
|
|
70
|
-
onSuitePass: ['audio/onSuitePass/昇格.mp3', 'audio/onSuitePass/勝利ジングル.mp3']
|
|
71
|
-
})
|
|
72
|
-
const calls = [0, 0]
|
|
73
|
-
subject.player = {
|
|
74
|
-
play(file) {
|
|
75
|
-
calls[subject.options.onSuitePass.indexOf(file)]++
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
for (let i = 0; i < 100; i++)
|
|
79
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 0 }))
|
|
80
|
-
|
|
81
|
-
t(calls[0] * calls[1] > 0)
|
|
82
|
-
})
|
|
83
|
-
test('pick one if onSuiteFailure is an array', () => {
|
|
84
|
-
const subject = new AudioReporter(gc(), {})
|
|
85
|
-
subject.options = runtimeOptions({
|
|
86
|
-
onSuiteFailure: ['audio/onSuitePass/昇格.mp3', 'audio/onSuitePass/勝利ジングル.mp3']
|
|
87
|
-
})
|
|
88
|
-
const calls = [0, 0]
|
|
89
|
-
subject.player = {
|
|
90
|
-
play(file) {
|
|
91
|
-
calls[subject.options.onSuiteFailure.indexOf(file)]++
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
for (let i = 0; i < 100; i++)
|
|
95
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 1 }))
|
|
96
|
-
|
|
97
|
-
t(calls[0] * calls[1] > 0)
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
describe('watch mode', () => {
|
|
101
|
-
test('play onSuitePass on first run', () => {
|
|
102
|
-
const subject = new AudioReporter(gc({ watch: true }), {})
|
|
103
|
-
subject.options = runtimeOptions({
|
|
104
|
-
onSuitePass: ['audio/onSuitePass/昇格.mp3']
|
|
105
|
-
})
|
|
106
|
-
store.reset()
|
|
107
|
-
|
|
108
|
-
const o = new AssertOrder(1)
|
|
109
|
-
subject.player = { play() { o.once(1) } }
|
|
110
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 0 }))
|
|
111
|
-
o.end()
|
|
112
|
-
})
|
|
113
|
-
test('do not play onSuitePass on second pass', () => {
|
|
114
|
-
const subject = new AudioReporter(gc({ watch: true }), {})
|
|
115
|
-
subject.options = runtimeOptions({
|
|
116
|
-
onSuitePass: ['audio/onSuitePass/昇格.mp3']
|
|
117
|
-
})
|
|
118
|
-
store.reset()
|
|
119
|
-
|
|
120
|
-
const o = new AssertOrder(1)
|
|
121
|
-
subject.player = { play() { o.once(1) } }
|
|
122
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 0 }))
|
|
123
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 0 }))
|
|
124
|
-
o.end()
|
|
125
|
-
})
|
|
126
|
-
test('play onSuitePass again on pass after failure', () => {
|
|
127
|
-
const subject = new AudioReporter(gc({ watch: true }), {})
|
|
128
|
-
subject.options = runtimeOptions({
|
|
129
|
-
onSuitePass: ['audio/onSuitePass/昇格.mp3'],
|
|
130
|
-
onSuiteFailure: ['audio/onSuitePass/昇格.mp3']
|
|
131
|
-
})
|
|
132
|
-
store.reset()
|
|
133
|
-
const o = new AssertOrder(1)
|
|
134
|
-
subject.player = {
|
|
135
|
-
play() {
|
|
136
|
-
o.exactly(1, 3)
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 0 }))
|
|
140
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 1 }))
|
|
141
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 0 }))
|
|
142
|
-
o.end()
|
|
143
|
-
})
|
|
144
|
-
test('do not play onSuitePass/Failure on interruption', () => {
|
|
145
|
-
const subject = new AudioReporter(gc({ watch: true }), {})
|
|
146
|
-
subject.options = runtimeOptions({
|
|
147
|
-
onSuitePass: ['audio/onSuitePass/昇格.mp3'],
|
|
148
|
-
onSuiteFailure: ['audio/onSuitePass/昇格.mp3']
|
|
149
|
-
})
|
|
150
|
-
store.reset()
|
|
151
|
-
|
|
152
|
-
subject.player = { play() { throw new Error('should not play') } }
|
|
153
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 0, wasInterrupted: true }))
|
|
154
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 1, wasInterrupted: true }))
|
|
155
|
-
})
|
|
156
|
-
test('kill onStart when run completes', () => {
|
|
157
|
-
const subject = new AudioReporter(gc({ watch: true }), {})
|
|
158
|
-
subject.options = runtimeOptions({
|
|
159
|
-
onStart: ['audio/onSuitePass/昇格.mp3']
|
|
160
|
-
})
|
|
161
|
-
store.reset()
|
|
162
|
-
|
|
163
|
-
const o = new AssertOrder(1)
|
|
164
|
-
subject.player = { play() { return { kill() { o.once(1) } } } }
|
|
165
|
-
subject.onRunStart(ar(), { estimatedTime: 11, showStatus: false })
|
|
166
|
-
subject.onRunComplete({}, ar())
|
|
167
|
-
o.end()
|
|
168
|
-
})
|
|
169
|
-
test('kill onSuitePass when run starts', () => {
|
|
170
|
-
const subject = new AudioReporter(gc({ watch: true }), {})
|
|
171
|
-
subject.options = runtimeOptions({
|
|
172
|
-
onStart: ['audio/onSuitePass/昇格.mp3'],
|
|
173
|
-
onSuitePass: ['audio/onSuitePass/昇格.mp3']
|
|
174
|
-
})
|
|
175
|
-
store.reset()
|
|
176
|
-
|
|
177
|
-
const o = new AssertOrder(1)
|
|
178
|
-
subject.player = { play() { return { kill() { o.once(1) } } } }
|
|
179
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 0 }))
|
|
180
|
-
subject.onRunStart(ar(), { estimatedTime: 11, showStatus: false })
|
|
181
|
-
o.end()
|
|
182
|
-
})
|
|
183
|
-
test('kill onSuiteFailure when run starts', () => {
|
|
184
|
-
const subject = new AudioReporter(gc({ watch: true }), {})
|
|
185
|
-
subject.options = runtimeOptions({
|
|
186
|
-
onStart: ['audio/onSuitePass/昇格.mp3'],
|
|
187
|
-
onSuiteFailure: ['audio/onSuitePass/昇格.mp3']
|
|
188
|
-
})
|
|
189
|
-
store.reset()
|
|
190
|
-
|
|
191
|
-
const o = new AssertOrder(1)
|
|
192
|
-
subject.player = { play() { return { kill() { o.once(1) } } } }
|
|
193
|
-
subject.onRunComplete({}, ar({ numTotalTestSuites: 1, numFailedTestSuites: 1 }))
|
|
194
|
-
subject.onRunStart(ar(), { estimatedTime: 11, showStatus: false })
|
|
195
|
-
o.end()
|
|
196
|
-
})
|
|
197
|
-
})
|
|
198
|
-
|
|
199
|
-
test('when debug = true, log is enabled', () => {
|
|
200
|
-
store.devel = true
|
|
201
|
-
try {
|
|
202
|
-
const subject = new AudioReporter(gc(), { debug: true })
|
|
203
|
-
t.strictEqual(subject.log.enabled, true)
|
|
204
|
-
}
|
|
205
|
-
catch {
|
|
206
|
-
store.devel = false
|
|
207
|
-
}
|
|
208
|
-
})
|
|
209
|
-
|
|
210
|
-
test('when debug = false, log is not enabled', () => {
|
|
211
|
-
const subject = new AudioReporter(gc(), { debug: false })
|
|
212
|
-
t.strictEqual(subject.log.enabled, false)
|
|
213
|
-
})
|
|
214
|
-
|
|
215
|
-
test('lower master volume in OSX affect onStart', () => {
|
|
216
|
-
const subject = new AudioReporter(gc(), { volume: 0.25 })
|
|
217
|
-
let actual
|
|
218
|
-
subject.player = { player: 'afplay', play(_file, option) { actual = option } }
|
|
219
|
-
|
|
220
|
-
subject.onRunStart(ar({ numTotalTestSuites: 1 }), roso({ estimatedTime: 11 }))
|
|
221
|
-
t.deepStrictEqual(actual, { afplay: ['-v', 0.01] })
|
|
222
|
-
})
|
|
223
|
-
|
|
224
|
-
test('lower master volume in OSX affect onComplete', () => {
|
|
225
|
-
const subject = new AudioReporter(gc(), { volume: 0.25 })
|
|
226
|
-
let actual
|
|
227
|
-
subject.player = { player: 'afplay', play(_file, option) { actual = option } }
|
|
228
|
-
|
|
229
|
-
subject.onRunComplete(undefined, ar({ numTotalTestSuites: 1 }))
|
|
230
|
-
t.deepStrictEqual(actual, { afplay: ['-v', 0.01] })
|
|
231
|
-
})
|
|
232
|
-
|
|
233
|
-
test('lower master volume in Windows affect onStart', () => {
|
|
234
|
-
const subject = new AudioReporter(gc(), { volume: 0.25 })
|
|
235
|
-
let actual
|
|
236
|
-
subject.player = { player: 'mplayer', play(_file, option) { actual = option } }
|
|
237
|
-
|
|
238
|
-
subject.onRunStart(ar({ numTotalTestSuites: 1 }), roso({ estimatedTime: 11 }))
|
|
239
|
-
t.deepStrictEqual(actual, { mplayer: ['-volume', 25] })
|
|
240
|
-
})
|
|
241
|
-
|
|
242
|
-
test('lower master volume in Windows affect onComplete', () => {
|
|
243
|
-
const subject = new AudioReporter(gc(), { volume: 0.25 })
|
|
244
|
-
let actual
|
|
245
|
-
subject.player = { player: 'mplayer', play(_file, option) { actual = option } }
|
|
246
|
-
|
|
247
|
-
subject.onRunComplete(undefined, ar({ numTotalTestSuites: 1 }))
|
|
248
|
-
t.deepStrictEqual(actual, { mplayer: ['-volume', 25] })
|
|
249
|
-
})
|
|
250
|
-
|
|
251
|
-
test('lower onStartVolume in OSX affect onStart', () => {
|
|
252
|
-
const subject = new AudioReporter(gc(), { onStartVolume: 0.25 })
|
|
253
|
-
let actual
|
|
254
|
-
subject.player = { player: 'afplay', play(_file, option) { actual = option } }
|
|
255
|
-
|
|
256
|
-
subject.onRunStart(ar({ numTotalTestSuites: 1 }), roso({ estimatedTime: 11 }))
|
|
257
|
-
t.deepStrictEqual(actual, { afplay: ['-v', 0.01] })
|
|
258
|
-
})
|
|
259
|
-
|
|
260
|
-
test('lower onStartVolume in OSX will not affect onComplete', () => {
|
|
261
|
-
const subject = new AudioReporter(gc(), { onStartVolume: 0.25 })
|
|
262
|
-
let actual
|
|
263
|
-
subject.player = { player: 'afplay', play(_file, option) { actual = option } }
|
|
264
|
-
|
|
265
|
-
subject.onRunComplete(undefined, ar({ numTotalTestSuites: 1 }))
|
|
266
|
-
t.deepStrictEqual(actual, { afplay: ['-v', 1] })
|
|
267
|
-
})
|
|
268
|
-
|
|
269
|
-
test('lower onStartVolume in Windows affect onStart', () => {
|
|
270
|
-
const subject = new AudioReporter(gc(), { onStartVolume: 0.25 })
|
|
271
|
-
let actual
|
|
272
|
-
subject.player = { player: 'mplayer', play(_file, option) { actual = option } }
|
|
273
|
-
|
|
274
|
-
subject.onRunStart(ar({ numTotalTestSuites: 1 }), roso({ estimatedTime: 11 }))
|
|
275
|
-
t.deepStrictEqual(actual, { mplayer: ['-volume', 25] })
|
|
276
|
-
})
|
|
277
|
-
|
|
278
|
-
test('lower onStartVolume in Windows will not affect onComplete', () => {
|
|
279
|
-
const subject = new AudioReporter(gc(), { onStartVolume: 0.25 })
|
|
280
|
-
let actual
|
|
281
|
-
subject.player = { player: 'mplayer', play(_file, option) { actual = option } }
|
|
282
|
-
|
|
283
|
-
subject.onRunComplete(undefined, ar({ numTotalTestSuites: 1 }))
|
|
284
|
-
t.deepStrictEqual(actual, { mplayer: ['-volume', 100] })
|
|
285
|
-
})
|
|
286
|
-
|
|
287
|
-
test('lower onCompleteVolume in OSX will not affect onStart', () => {
|
|
288
|
-
const subject = new AudioReporter(gc(), { onCompleteVolume: 0.25 })
|
|
289
|
-
let actual
|
|
290
|
-
subject.player = { player: 'afplay', play(_file, option) { actual = option } }
|
|
291
|
-
|
|
292
|
-
subject.onRunStart(ar({ numTotalTestSuites: 1 }), roso({ estimatedTime: 11 }))
|
|
293
|
-
t.deepStrictEqual(actual, { afplay: ['-v', 0.1] })
|
|
294
|
-
})
|
|
295
|
-
|
|
296
|
-
test('lower onCompleteVolume in OSX affect onComplete', () => {
|
|
297
|
-
const subject = new AudioReporter(gc(), { onCompleteVolume: 0.25 })
|
|
298
|
-
let actual
|
|
299
|
-
subject.player = { player: 'afplay', play(_file, option) { actual = option } }
|
|
300
|
-
|
|
301
|
-
subject.onRunComplete(undefined, ar({ numTotalTestSuites: 1 }))
|
|
302
|
-
t.deepStrictEqual(actual, { afplay: ['-v', 0.01] })
|
|
303
|
-
})
|
|
304
|
-
|
|
305
|
-
test('lower onCompleteVolume in Windows will not affect onStart', () => {
|
|
306
|
-
const subject = new AudioReporter(gc(), { onCompleteVolume: 0.25 })
|
|
307
|
-
let actual
|
|
308
|
-
subject.player = { player: 'mplayer', play(_file, option) { actual = option } }
|
|
309
|
-
|
|
310
|
-
subject.onRunStart(ar({ numTotalTestSuites: 1 }), roso({ estimatedTime: 11 }))
|
|
311
|
-
t.deepStrictEqual(actual, { mplayer: ['-volume', 50] })
|
|
312
|
-
})
|
|
313
|
-
|
|
314
|
-
test('lower onCompleteVolume in Windows affect onComplete', () => {
|
|
315
|
-
const subject = new AudioReporter(gc(), { onCompleteVolume: 0.25 })
|
|
316
|
-
let actual
|
|
317
|
-
subject.player = { player: 'mplayer', play(_file, option) { actual = option } }
|
|
318
|
-
|
|
319
|
-
subject.onRunComplete(undefined, ar({ numTotalTestSuites: 1 }))
|
|
320
|
-
t.deepStrictEqual(actual, { mplayer: ['-volume', 25] })
|
|
321
|
-
})
|
|
322
|
-
|
|
323
|
-
test('disable will not play when complete', async () => {
|
|
324
|
-
const subject = new AudioReporter(gc(), { disable: true })
|
|
325
|
-
subject.player = { player: 'mplayer', play() { throw new Error('should not call') } }
|
|
326
|
-
await subject.onRunComplete(undefined, ar({ numTotalTestSuites: 1 }))
|
|
327
|
-
})
|
|
328
|
-
|
|
329
|
-
test('disable will not play when complete', () => {
|
|
330
|
-
const subject = new AudioReporter(gc(), { disable: true })
|
|
331
|
-
subject.player = { player: 'mplayer', play() { throw new Error('should not call') } }
|
|
332
|
-
subject.onRunStart(ar({ numTotalTestSuites: 1 }), roso({ estimatedTime: 11 }))
|
|
333
|
-
})
|
|
334
|
-
|
|
335
|
-
function gc(config: Partial<Config.GlobalConfig> = {}) {
|
|
336
|
-
return config as Config.GlobalConfig
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
function ar(results: Partial<AggregatedResult> = {}) {
|
|
340
|
-
return results as AggregatedResult
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
function roso(options: Partial<ReporterOnStartOptions> = {}) {
|
|
344
|
-
return options as ReporterOnStartOptions
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
function runtimeOptions(options: Partial<RuntimeOptions>) {
|
|
348
|
-
return {
|
|
349
|
-
onStart: [],
|
|
350
|
-
onSuitePass: [],
|
|
351
|
-
onSuiteFailure: [],
|
|
352
|
-
onStartThreshold: 10,
|
|
353
|
-
...options
|
|
354
|
-
}
|
|
355
|
-
}
|
package/ts/log.spec.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import t from 'assert'
|
|
2
|
-
import { logOptions, createLog } from './log';
|
|
3
|
-
|
|
4
|
-
test('enabled log will print', () => {
|
|
5
|
-
const log = createLog()
|
|
6
|
-
log.enabled = true
|
|
7
|
-
let actual
|
|
8
|
-
log.writer = { info(msg) { actual = msg } } as any
|
|
9
|
-
log.debug('should print')
|
|
10
|
-
t.strictEqual(actual, 'should print')
|
|
11
|
-
})
|
|
12
|
-
|
|
13
|
-
test('log config location and option', () => {
|
|
14
|
-
const c = context()
|
|
15
|
-
logOptions(c, {
|
|
16
|
-
onSuitePass: ['music1.mp3'],
|
|
17
|
-
configs: [
|
|
18
|
-
'rcfile1',
|
|
19
|
-
'rcfile2'
|
|
20
|
-
]
|
|
21
|
-
}, { onSuitePass: ['music1.mp3'] })
|
|
22
|
-
t.deepStrictEqual(c.log.messages, [
|
|
23
|
-
[`configs location:
|
|
24
|
-
rcfile1
|
|
25
|
-
rcfile2
|
|
26
|
-
|
|
27
|
-
options:
|
|
28
|
-
{
|
|
29
|
-
"onSuitePass": [
|
|
30
|
-
"music1.mp3"
|
|
31
|
-
]
|
|
32
|
-
}
|
|
33
|
-
`]
|
|
34
|
-
])
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
test('no config prints no config detected', () => {
|
|
38
|
-
const log = createLog()
|
|
39
|
-
log.enabled = true
|
|
40
|
-
let actual
|
|
41
|
-
log.writer = { info(msg) { actual = msg } } as any
|
|
42
|
-
logOptions({ log }, {}, undefined)
|
|
43
|
-
t.strictEqual(actual, 'no config detected')
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
function context() {
|
|
47
|
-
return {
|
|
48
|
-
log: {
|
|
49
|
-
debug(...args) {
|
|
50
|
-
this.messages.push(args)
|
|
51
|
-
},
|
|
52
|
-
messages: []
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
package/ts/options.spec.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import a from 'assertron'
|
|
2
|
-
import path from 'path'
|
|
3
|
-
import { processOptions } from './options'
|
|
4
|
-
|
|
5
|
-
describe('processOptions', () => {
|
|
6
|
-
test('no config returns options with empty array', () => {
|
|
7
|
-
a.satisfies(processOptions({}), {
|
|
8
|
-
onStart: [],
|
|
9
|
-
onSuitePass: [],
|
|
10
|
-
onSuiteFailure: []
|
|
11
|
-
})
|
|
12
|
-
})
|
|
13
|
-
test(`onStartThreshold is parsed as int`, () => {
|
|
14
|
-
a.satisfies(processOptions({ onStartThreshold: '4' }), {
|
|
15
|
-
onStartThreshold: 4
|
|
16
|
-
})
|
|
17
|
-
})
|
|
18
|
-
test('onStartThreshold is default to 10', () => {
|
|
19
|
-
a.satisfies(processOptions({}), {
|
|
20
|
-
onStartThreshold: 10
|
|
21
|
-
})
|
|
22
|
-
})
|
|
23
|
-
test('simple string is convert to entry in array', () => {
|
|
24
|
-
const cwd = process.cwd()
|
|
25
|
-
const config = path.join(cwd, '.jest-audio-reporterrc')
|
|
26
|
-
a.satisfies(processOptions({ onStart: 'audio/onSuitePass/昇格.mp3', config, configs: [config] }), {
|
|
27
|
-
onStart: [path.resolve(cwd, 'audio/onSuitePass/昇格.mp3')]
|
|
28
|
-
})
|
|
29
|
-
})
|
|
30
|
-
test(`support absolute path`, () => {
|
|
31
|
-
const cwd = process.cwd()
|
|
32
|
-
const dirConfig = path.join(__dirname, '.jest-audio-reporterrc')
|
|
33
|
-
const actual = path.resolve(cwd, 'audio/onSuitePass/昇格.mp3')
|
|
34
|
-
a.satisfies(processOptions({ onStart: actual, config: dirConfig, configs: [dirConfig] }), {
|
|
35
|
-
onStart: [actual]
|
|
36
|
-
})
|
|
37
|
-
})
|
|
38
|
-
test(`not exist file is trimmed`, () => {
|
|
39
|
-
const dirConfig = path.join(__dirname, '.jest-audio-reporterrc')
|
|
40
|
-
a.satisfies(processOptions({ onStart: 'not-exist.mp3', config: dirConfig, configs: [dirConfig] }), {
|
|
41
|
-
onStart: a => a.length === 0
|
|
42
|
-
})
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
test(`support multiple config`, () => {
|
|
46
|
-
const cwd = process.cwd()
|
|
47
|
-
const config = path.join(cwd, '.jest-audio-reporterrc')
|
|
48
|
-
const dirConfig = path.join(__dirname, '.jest-audio-reporterrc')
|
|
49
|
-
const actual = path.resolve(cwd, 'audio/onSuitePass/昇格.mp3')
|
|
50
|
-
a.satisfies(processOptions({ onStart: actual, config: dirConfig, configs: [config, dirConfig] }), {
|
|
51
|
-
onStart: [actual]
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
a.satisfies(processOptions({ onStart: actual, config, configs: [dirConfig, config] }), {
|
|
55
|
-
onStart: [actual]
|
|
56
|
-
})
|
|
57
|
-
})
|
|
58
|
-
test(`support array`, () => {
|
|
59
|
-
const cwd = process.cwd()
|
|
60
|
-
const config = path.join(cwd, '.jest-audio-reporterrc')
|
|
61
|
-
const failureFile = path.resolve(cwd, 'audio/onSuitePass/昇格.mp3')
|
|
62
|
-
const actual = processOptions({
|
|
63
|
-
onSuiteFailure: ['audio/onSuitePass/昇格.mp3'],
|
|
64
|
-
config,
|
|
65
|
-
configs: [config]
|
|
66
|
-
})
|
|
67
|
-
a.satisfies(actual, {
|
|
68
|
-
onSuiteFailure: [failureFile]
|
|
69
|
-
})
|
|
70
|
-
})
|
|
71
|
-
})
|