@drownek/paper-e2e-runner 1.0.2 → 1.0.5
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/dist/lib/stack-trace.d.ts +36 -0
- package/dist/lib/stack-trace.d.ts.map +1 -0
- package/dist/lib/stack-trace.js +97 -0
- package/dist/lib/stack-trace.js.map +1 -0
- package/dist/runner.d.ts +2 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +149 -15
- package/dist/runner.js.map +1 -1
- package/package.json +8 -3
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for capturing and parsing V8 stack traces.
|
|
3
|
+
*
|
|
4
|
+
* Two concerns live here:
|
|
5
|
+
* 1. Capturing a call-site stack string at a known point (e.g. inside expect()),
|
|
6
|
+
* so that assertion errors can point back to the test file rather than runner internals.
|
|
7
|
+
* 2. Parsing a raw stack string to extract the first frame that references a given test file,
|
|
8
|
+
* returning its line and column numbers.
|
|
9
|
+
*/
|
|
10
|
+
export interface StackLocation {
|
|
11
|
+
line: number;
|
|
12
|
+
column: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Capture the current call-site stack trace as a string.
|
|
16
|
+
*
|
|
17
|
+
* @param constructorOpt - When provided, all frames at and above this function
|
|
18
|
+
* are stripped from the trace (standard V8 `captureStackTrace` behavior).
|
|
19
|
+
* Pass the constructor of the class whose instantiation you want to hide.
|
|
20
|
+
*/
|
|
21
|
+
export declare function captureCallSite(constructorOpt?: Function): string;
|
|
22
|
+
/**
|
|
23
|
+
* Walk a V8 stack string and return the location of the first frame that
|
|
24
|
+
* references `testFile`.
|
|
25
|
+
*
|
|
26
|
+
* Handles both URL-style frames (`file:///C:/…:line:col`) and plain path
|
|
27
|
+
* frames (`at Something (C:/…:line:col)`). The `testFile` value is
|
|
28
|
+
* normalized from a compiled `dist/*.spec.js` path back to the original
|
|
29
|
+
* `*.spec.ts` source path before matching, so source-mapped stacks resolve
|
|
30
|
+
* correctly.
|
|
31
|
+
*
|
|
32
|
+
* @returns The `{line, column}` of the matching frame, or `null` if no frame
|
|
33
|
+
* references the given test file.
|
|
34
|
+
*/
|
|
35
|
+
export declare function extractLineNumberFromStack(stack: string | undefined, testFile: string): StackLocation | null;
|
|
36
|
+
//# sourceMappingURL=stack-trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-trace.d.ts","sourceRoot":"","sources":["../../lib/stack-trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,CAMjE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAoB5G"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for capturing and parsing V8 stack traces.
|
|
3
|
+
*
|
|
4
|
+
* Two concerns live here:
|
|
5
|
+
* 1. Capturing a call-site stack string at a known point (e.g. inside expect()),
|
|
6
|
+
* so that assertion errors can point back to the test file rather than runner internals.
|
|
7
|
+
* 2. Parsing a raw stack string to extract the first frame that references a given test file,
|
|
8
|
+
* returning its line and column numbers.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Capture the current call-site stack trace as a string.
|
|
12
|
+
*
|
|
13
|
+
* @param constructorOpt - When provided, all frames at and above this function
|
|
14
|
+
* are stripped from the trace (standard V8 `captureStackTrace` behavior).
|
|
15
|
+
* Pass the constructor of the class whose instantiation you want to hide.
|
|
16
|
+
*/
|
|
17
|
+
export function captureCallSite(constructorOpt) {
|
|
18
|
+
const err = new Error();
|
|
19
|
+
if (constructorOpt) {
|
|
20
|
+
Error.captureStackTrace(err, constructorOpt);
|
|
21
|
+
}
|
|
22
|
+
return err.stack || '';
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Walk a V8 stack string and return the location of the first frame that
|
|
26
|
+
* references `testFile`.
|
|
27
|
+
*
|
|
28
|
+
* Handles both URL-style frames (`file:///C:/…:line:col`) and plain path
|
|
29
|
+
* frames (`at Something (C:/…:line:col)`). The `testFile` value is
|
|
30
|
+
* normalized from a compiled `dist/*.spec.js` path back to the original
|
|
31
|
+
* `*.spec.ts` source path before matching, so source-mapped stacks resolve
|
|
32
|
+
* correctly.
|
|
33
|
+
*
|
|
34
|
+
* @returns The `{line, column}` of the matching frame, or `null` if no frame
|
|
35
|
+
* references the given test file.
|
|
36
|
+
*/
|
|
37
|
+
export function extractLineNumberFromStack(stack, testFile) {
|
|
38
|
+
if (!stack)
|
|
39
|
+
return null;
|
|
40
|
+
// Normalize the test file path to the form that will appear in a
|
|
41
|
+
// source-mapped stack: forward slashes, no leading `dist/`, `.spec.ts` extension.
|
|
42
|
+
const normalizedTestFile = testFile
|
|
43
|
+
.replace(/\\/g, '/')
|
|
44
|
+
.replace(/^dist\//, '')
|
|
45
|
+
.replace(/\.spec\.js$/, '.spec.ts');
|
|
46
|
+
const lines = stack.split('\n');
|
|
47
|
+
for (const line of lines) {
|
|
48
|
+
const location = matchFileUrlFrame(line, normalizedTestFile, testFile)
|
|
49
|
+
?? matchPlainPathFrame(line, normalizedTestFile, testFile);
|
|
50
|
+
if (location)
|
|
51
|
+
return location;
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
// Internal helpers – each matches one stack-frame style
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
/**
|
|
59
|
+
* Match a `file:///` URL-style frame, e.g.:
|
|
60
|
+
* at file:///C:/project/dist/foo.spec.js:12:5
|
|
61
|
+
*/
|
|
62
|
+
function matchFileUrlFrame(line, normalizedTestFile, rawTestFile) {
|
|
63
|
+
const match = line.match(/file:\/\/\/(.+?):(\d+):(\d+)/);
|
|
64
|
+
if (!match)
|
|
65
|
+
return null;
|
|
66
|
+
const filePath = match[1].replace(/\\/g, '/');
|
|
67
|
+
if (referencesTestFile(filePath, normalizedTestFile, rawTestFile)) {
|
|
68
|
+
return { line: parseInt(match[2], 10), column: parseInt(match[3], 10) };
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Match a plain-path frame, e.g.:
|
|
74
|
+
* at Object.<anonymous> (C:/project/dist/foo.spec.js:12:5)
|
|
75
|
+
* at C:/project/dist/foo.spec.js:12:5
|
|
76
|
+
*/
|
|
77
|
+
function matchPlainPathFrame(line, normalizedTestFile, rawTestFile) {
|
|
78
|
+
const match = line.match(/at\s+(?:.*?\s+\()?(.+?):(\d+):(\d+)\)?/);
|
|
79
|
+
if (!match)
|
|
80
|
+
return null;
|
|
81
|
+
const filePath = match[1].replace(/\\/g, '/');
|
|
82
|
+
if (referencesTestFile(filePath, normalizedTestFile, rawTestFile)) {
|
|
83
|
+
return { line: parseInt(match[2], 10), column: parseInt(match[3], 10) };
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Return `true` when `filePath` (from a stack frame) refers to the same test
|
|
89
|
+
* file as the normalized or raw test-file strings.
|
|
90
|
+
*/
|
|
91
|
+
function referencesTestFile(filePath, normalizedTestFile, rawTestFile) {
|
|
92
|
+
const rawNormalised = rawTestFile.replace(/\\/g, '/');
|
|
93
|
+
return (filePath.includes(normalizedTestFile) ||
|
|
94
|
+
filePath.endsWith(normalizedTestFile) ||
|
|
95
|
+
filePath.includes(rawNormalised));
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=stack-trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-trace.js","sourceRoot":"","sources":["../../lib/stack-trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,cAAyB;IACrD,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IACxB,IAAI,cAAc,EAAE,CAAC;QACjB,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAyB,EAAE,QAAgB;IAClF,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,iEAAiE;IACjE,kFAAkF;IAClF,MAAM,kBAAkB,GAAG,QAAQ;SAC9B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,CAAC;eAC/D,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAE/D,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;IAClC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,wDAAwD;AACxD,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,iBAAiB,CAAC,IAAY,EAAE,kBAA0B,EAAE,WAAmB;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE9C,IAAI,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,IAAY,EAAE,kBAA0B,EAAE,WAAmB;IACtF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE9C,IAAI,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,QAAgB,EAAE,kBAA0B,EAAE,WAAmB;IACzF,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,CACH,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACrC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CACnC,CAAC;AACN,CAAC"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -11,7 +11,9 @@ export interface ServerWrapper {
|
|
|
11
11
|
}
|
|
12
12
|
export declare function test(name: string, fn: (context: TestContext) => Promise<void>): void;
|
|
13
13
|
declare class RunnerMatchers<T = unknown> extends Matchers<T> {
|
|
14
|
+
private readonly callSite;
|
|
14
15
|
constructor(actual: T, isNot?: boolean);
|
|
16
|
+
private waitAbit;
|
|
15
17
|
toHaveReceivedMessage(this: RunnerMatchers<PlayerWrapper>, expectedMessage: string, strict?: boolean): Promise<void>;
|
|
16
18
|
toContainItem(this: RunnerMatchers<PlayerWrapper>, itemName: string): Promise<void>;
|
|
17
19
|
}
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../runner.ts"],"names":[],"mappings":"AACA,OAAmB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAK7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAA0B,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../runner.ts"],"names":[],"mappings":"AACA,OAAmB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAK7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAA0B,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAQ3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAEnC,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAkBD,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAEpF;AAsCD,cAAM,cAAc,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,MAAM,EAAE,CAAC,EAAE,KAAK,GAAE,OAAe;YAM/B,QAAQ;IAIhB,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,aAAa,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC3H,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB5F;AACD,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAEtD;AAED,qBAAa,aAAa;IACtB,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;gBAEjG,GAAG,EAAE,GAAG;IASd,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK7C;AAoDD,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAqRpD"}
|
package/dist/runner.js
CHANGED
|
@@ -6,10 +6,16 @@ import { join } from 'path';
|
|
|
6
6
|
import { pathToFileURL } from 'url';
|
|
7
7
|
import { ItemWrapper, GuiWrapper, createPlayerExtensions } from './lib/wrappers.js';
|
|
8
8
|
import { Matchers } from "./lib/expect.js";
|
|
9
|
+
import { randomUUID } from "node:crypto";
|
|
10
|
+
import { install as installSourceMapSupport } from 'source-map-support';
|
|
11
|
+
import { captureCallSite, extractLineNumberFromStack } from './lib/stack-trace.js';
|
|
12
|
+
// Enable source map support for accurate TypeScript stack traces
|
|
13
|
+
installSourceMapSupport();
|
|
9
14
|
export { ItemWrapper, GuiWrapper };
|
|
10
15
|
const testRegistry = [];
|
|
11
16
|
let currentPlayer = null;
|
|
12
17
|
let messageBuffer = [];
|
|
18
|
+
const activeBots = [];
|
|
13
19
|
export function test(name, fn) {
|
|
14
20
|
testRegistry.push({ name, fn });
|
|
15
21
|
}
|
|
@@ -41,22 +47,61 @@ function waitFor(checkFn, emitter, eventName, predicateFn, timeoutMsg, timeoutMs
|
|
|
41
47
|
class RunnerMatchers extends Matchers {
|
|
42
48
|
constructor(actual, isNot = false) {
|
|
43
49
|
super(actual, isNot);
|
|
50
|
+
this.callSite = captureCallSite(RunnerMatchers);
|
|
51
|
+
}
|
|
52
|
+
async waitAbit(ms = 500) {
|
|
53
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
44
54
|
}
|
|
45
55
|
async toHaveReceivedMessage(expectedMessage, strict = false) {
|
|
46
56
|
const player = this.actual;
|
|
47
57
|
const bot = player.bot;
|
|
48
58
|
const isMatch = (msg) => strict ? msg === expectedMessage : msg.includes(expectedMessage);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
59
|
+
if (this.isNot) {
|
|
60
|
+
await this.waitAbit(500);
|
|
61
|
+
const found = messageBuffer.find(isMatch);
|
|
62
|
+
if (found) {
|
|
63
|
+
const error = new Error(`Expected NOT to receive message matching "${expectedMessage}", but received: "${found}"`);
|
|
64
|
+
error.stack = this.callSite;
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
const checkFn = () => messageBuffer.find(isMatch);
|
|
71
|
+
await waitFor(checkFn, bot, 'message', (jsonMsg) => {
|
|
72
|
+
const msgStr = String(jsonMsg);
|
|
73
|
+
return isMatch(msgStr) ? msgStr : undefined;
|
|
74
|
+
}, `Expected message "${expectedMessage}" not received`);
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
// Replace the error stack with our captured call site
|
|
78
|
+
const newError = new Error(error.message);
|
|
79
|
+
newError.stack = this.callSite;
|
|
80
|
+
throw newError;
|
|
81
|
+
}
|
|
54
82
|
}
|
|
55
83
|
async toContainItem(itemName) {
|
|
56
84
|
const player = this.actual;
|
|
57
85
|
const bot = player.bot;
|
|
58
86
|
const checkFn = () => bot.inventory.items().some(item => item.name.includes(itemName));
|
|
59
|
-
|
|
87
|
+
if (this.isNot) {
|
|
88
|
+
await this.waitAbit(500);
|
|
89
|
+
if (checkFn()) {
|
|
90
|
+
const error = new Error(`Expected inventory NOT to contain item "${itemName}", but it was found`);
|
|
91
|
+
error.stack = this.callSite;
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
await waitFor(checkFn, bot, 'windowUpdate', checkFn, `Expected item "${itemName}" not found`);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
// Replace the error stack with our captured call site
|
|
101
|
+
const newError = new Error(error.message);
|
|
102
|
+
newError.stack = this.callSite;
|
|
103
|
+
throw newError;
|
|
104
|
+
}
|
|
60
105
|
}
|
|
61
106
|
}
|
|
62
107
|
export function expect(target) {
|
|
@@ -115,11 +160,12 @@ export async function runTestSession() {
|
|
|
115
160
|
const javaPath = process.env.JAVA_PATH;
|
|
116
161
|
const testFileFilter = process.env.TEST_FILES;
|
|
117
162
|
const testNameFilter = process.env.TEST_NAMES;
|
|
163
|
+
const testResults = [];
|
|
118
164
|
if (!serverJar || !serverDir) {
|
|
119
165
|
throw new Error('SERVER_JAR, JAVA_PATH and SERVER_DIR environment variables must be set');
|
|
120
166
|
}
|
|
121
167
|
console.log('\nStarting Paper server...');
|
|
122
|
-
const jvmArgsString = process.env.JVM_ARGS || '
|
|
168
|
+
const jvmArgsString = process.env.JVM_ARGS || '';
|
|
123
169
|
const jvmArgs = jvmArgsString.split(' ').filter(arg => arg.trim() !== '');
|
|
124
170
|
console.log(`JVM Arguments: ${jvmArgs.join(' ')}`);
|
|
125
171
|
const serverProcess = spawn(javaPath, [...jvmArgs, '-jar', serverJar, '--nogui'], {
|
|
@@ -172,7 +218,8 @@ export async function runTestSession() {
|
|
|
172
218
|
}
|
|
173
219
|
console.log(` Test: ${testCase.name}`);
|
|
174
220
|
messageBuffer.length = 0;
|
|
175
|
-
const
|
|
221
|
+
const uniqueId = randomUUID().split('-')[0];
|
|
222
|
+
const botUsername = `Test_${uniqueId}`;
|
|
176
223
|
console.log(`[Bot] Creating bot: ${botUsername}`);
|
|
177
224
|
const bot = mineflayer.createBot({
|
|
178
225
|
host: 'localhost',
|
|
@@ -182,6 +229,7 @@ export async function runTestSession() {
|
|
|
182
229
|
auth: 'offline'
|
|
183
230
|
});
|
|
184
231
|
currentPlayer = bot;
|
|
232
|
+
activeBots.push(bot);
|
|
185
233
|
await new Promise((resolve, reject) => {
|
|
186
234
|
const timeout = setTimeout(() => {
|
|
187
235
|
reject(new Error('Bot failed to spawn within 10 seconds'));
|
|
@@ -235,24 +283,110 @@ export async function runTestSession() {
|
|
|
235
283
|
};
|
|
236
284
|
await testCase.fn({ player, server });
|
|
237
285
|
console.log(` PASSED\n`);
|
|
286
|
+
testResults.push({ file, testName: testCase.name, passed: true });
|
|
238
287
|
}
|
|
239
288
|
catch (error) {
|
|
240
|
-
|
|
241
|
-
|
|
289
|
+
const errorMsg = error.message;
|
|
290
|
+
const stack = error.stack;
|
|
291
|
+
const location = extractLineNumberFromStack(stack, file);
|
|
292
|
+
console.log(` FAILED: ${errorMsg}\n`);
|
|
293
|
+
testResults.push({
|
|
294
|
+
file,
|
|
295
|
+
testName: testCase.name,
|
|
296
|
+
passed: false,
|
|
297
|
+
error: errorMsg,
|
|
298
|
+
stack,
|
|
299
|
+
lineNumber: location?.line,
|
|
300
|
+
columnNumber: location?.column
|
|
301
|
+
});
|
|
242
302
|
}
|
|
243
303
|
finally {
|
|
304
|
+
bot.removeAllListeners('error');
|
|
305
|
+
bot.removeAllListeners('end');
|
|
244
306
|
bot.quit();
|
|
245
307
|
currentPlayer = null;
|
|
246
|
-
|
|
308
|
+
const index = activeBots.indexOf(bot);
|
|
309
|
+
if (index > -1)
|
|
310
|
+
activeBots.splice(index, 1);
|
|
247
311
|
}
|
|
248
312
|
}
|
|
249
313
|
}
|
|
250
|
-
console.log('\
|
|
314
|
+
console.log('\n========================================');
|
|
315
|
+
console.log('Test Summary');
|
|
316
|
+
console.log('========================================');
|
|
317
|
+
const passed = testResults.filter(r => r.passed);
|
|
318
|
+
const failed = testResults.filter(r => !r.passed);
|
|
319
|
+
console.log(`Total: ${testResults.length}`);
|
|
320
|
+
console.log(`Passed: ${passed.length}`);
|
|
321
|
+
console.log(`Failed: ${failed.length}`);
|
|
322
|
+
if (failed.length > 0) {
|
|
323
|
+
console.log('\nFailed Tests:');
|
|
324
|
+
for (const result of failed) {
|
|
325
|
+
const filePath = result.file.replace(/^dist[/\\]/, '').replace(/\.spec\.js$/, '.spec.ts');
|
|
326
|
+
const absolutePath = join(process.cwd(), filePath);
|
|
327
|
+
const lineNumber = result.lineNumber;
|
|
328
|
+
const columnNumber = result.columnNumber || 1;
|
|
329
|
+
const fileUrl = pathToFileURL(absolutePath).href + (lineNumber ? `:${lineNumber}:${columnNumber}` : '');
|
|
330
|
+
console.log(` ✗ ${result.testName}`);
|
|
331
|
+
console.log(` ${result.error}`);
|
|
332
|
+
console.log(` ${fileUrl}`);
|
|
333
|
+
}
|
|
334
|
+
console.log('');
|
|
335
|
+
setTimeout(() => {
|
|
336
|
+
process.exit(1);
|
|
337
|
+
}, 1000).unref();
|
|
338
|
+
throw new Error(`${failed.length} test(s) failed`);
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
console.log('\nAll tests passed!');
|
|
342
|
+
}
|
|
251
343
|
}
|
|
252
344
|
finally {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
345
|
+
await Promise.all(activeBots.map(bot => {
|
|
346
|
+
return new Promise((resolve) => {
|
|
347
|
+
const timeout = setTimeout(() => {
|
|
348
|
+
console.log(`[WARNING] Bot ${bot.username} cleanup timeout, forcing end`);
|
|
349
|
+
resolve();
|
|
350
|
+
}, 2000);
|
|
351
|
+
bot.once('end', () => {
|
|
352
|
+
clearTimeout(timeout);
|
|
353
|
+
resolve();
|
|
354
|
+
});
|
|
355
|
+
try {
|
|
356
|
+
bot.quit();
|
|
357
|
+
}
|
|
358
|
+
catch (err) {
|
|
359
|
+
clearTimeout(timeout);
|
|
360
|
+
resolve();
|
|
361
|
+
}
|
|
362
|
+
});
|
|
363
|
+
}));
|
|
364
|
+
activeBots.length = 0;
|
|
365
|
+
serverProcess.stdin.write('stop\n');
|
|
366
|
+
// Wait for the server to exit gracefully
|
|
367
|
+
await new Promise((resolve) => {
|
|
368
|
+
const timeout = setTimeout(() => {
|
|
369
|
+
console.log('[WARNING] Server did not stop gracefully, forcing shutdown...');
|
|
370
|
+
serverProcess.kill();
|
|
371
|
+
resolve();
|
|
372
|
+
}, 30000); // 30 second timeout
|
|
373
|
+
serverProcess.once('exit', (code) => {
|
|
374
|
+
clearTimeout(timeout);
|
|
375
|
+
if (code !== 0) {
|
|
376
|
+
console.log(`[WARNING] Server exited with code: ${code}`);
|
|
377
|
+
}
|
|
378
|
+
resolve();
|
|
379
|
+
});
|
|
380
|
+
});
|
|
381
|
+
// Clean up all listeners and streams
|
|
382
|
+
serverProcess.removeAllListeners();
|
|
383
|
+
serverProcess.stdin.end();
|
|
384
|
+
serverProcess.stdout.destroy();
|
|
385
|
+
serverProcess.stderr.destroy();
|
|
386
|
+
// Give the event loop a moment to drain, then force exit
|
|
387
|
+
setTimeout(() => {
|
|
388
|
+
process.exit(0);
|
|
389
|
+
}, 1000).unref();
|
|
256
390
|
}
|
|
257
391
|
}
|
|
258
392
|
//# sourceMappingURL=runner.js.map
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@drownek/paper-e2e-runner",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "End-to-end testing framework for Paper/Spigot Minecraft plugins",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/runner.js",
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build": "tsc",
|
|
13
|
-
"prepublishOnly": "npm run build"
|
|
13
|
+
"prepublishOnly": "npm run build",
|
|
14
|
+
"watch": "tsc --watch"
|
|
14
15
|
},
|
|
15
16
|
"files": [
|
|
16
17
|
"dist"
|
|
@@ -35,10 +36,14 @@
|
|
|
35
36
|
"url": "https://github.com/drownek/paper-e2e-test/issues"
|
|
36
37
|
},
|
|
37
38
|
"dependencies": {
|
|
38
|
-
"
|
|
39
|
+
"js-yaml": "^4.1.0",
|
|
40
|
+
"mineflayer": "^4.0.0",
|
|
41
|
+
"source-map-support": "^0.5.21"
|
|
39
42
|
},
|
|
40
43
|
"devDependencies": {
|
|
44
|
+
"@types/js-yaml": "^4.0.9",
|
|
41
45
|
"@types/node": "^22.10.5",
|
|
46
|
+
"@types/source-map-support": "^0.5.10",
|
|
42
47
|
"typescript": "^5.7.3"
|
|
43
48
|
},
|
|
44
49
|
"engines": {
|