flake-monster 0.4.3 → 0.4.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flake-monster",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "description": "Source-to-source test hardener that injects async delays to surface flaky tests",
5
5
  "type": "module",
6
6
  "bin": {
@@ -44,10 +44,18 @@ export function registerTestCommand(program) {
44
44
  const jsonOutput = options.format === 'json';
45
45
 
46
46
  // Resolve which runner parser to use
47
- const runner = options.runner === 'auto'
47
+ let runner = options.runner === 'auto'
48
48
  ? detectRunner(testCmd)
49
49
  : options.runner;
50
50
 
51
+ // node:test default reporter (spec) outputs to stderr, not stdout.
52
+ // Force TAP reporter for machine-parseable output on stdout.
53
+ let effectiveCmd = testCmd;
54
+ if (runner === 'node-test' && !testCmd.includes('--test-reporter')) {
55
+ effectiveCmd = testCmd.replace(/node\s+--test/, 'node --test --test-reporter tap');
56
+ runner = 'tap';
57
+ }
58
+
51
59
  const profile = FlakeProfile.fromConfig(merged);
52
60
  const registry = new AdapterRegistry();
53
61
  registry.register(createJavaScriptAdapter());
@@ -68,7 +76,7 @@ export function registerTestCommand(program) {
68
76
 
69
77
  reporter.log(`FlakeMonster test harness`);
70
78
  reporter.log(` Runs: ${runs} | Mode: ${profile.mode} | Base seed: ${baseSeed}`);
71
- reporter.log(` Command: ${testCmd}`);
79
+ reporter.log(` Command: ${effectiveCmd}`);
72
80
  reporter.log(` Patterns: ${globs.join(', ')}`);
73
81
  if (runner) {
74
82
  reporter.log(` Runner: ${runner}`);
@@ -117,7 +125,7 @@ export function registerTestCommand(program) {
117
125
 
118
126
  let exitCode, stdout, stderr, durationMs;
119
127
  try {
120
- ({ exitCode, stdout, stderr } = await execAsync(testCmd, projectRoot, {
128
+ ({ exitCode, stdout, stderr } = await execAsync(effectiveCmd, projectRoot, {
121
129
  onStdout: reporter.quiet ? undefined : (chunk) => sticky.writeAbove(chunk),
122
130
  onStderr: reporter.quiet ? undefined : (chunk) => sticky.writeAboveStderr(chunk),
123
131
  }));
@@ -178,7 +186,7 @@ export function registerTestCommand(program) {
178
186
 
179
187
  let exitCode, stdout, stderr, durationMs;
180
188
  try {
181
- ({ exitCode, stdout, stderr } = await workspace.execAsync(testCmd, {
189
+ ({ exitCode, stdout, stderr } = await workspace.execAsync(effectiveCmd, {
182
190
  onStdout: reporter.quiet ? undefined : (chunk) => sticky.writeAbove(chunk),
183
191
  onStderr: reporter.quiet ? undefined : (chunk) => sticky.writeAboveStderr(chunk),
184
192
  }));