Skip to content

Commit 5a3cf94

Browse files
authored
refactor: reduce fallow baseline noise (#451)
* refactor: reduce fallow baseline noise * fix: guard snapshot role lookup
1 parent 8be5fa2 commit 5a3cf94

9 files changed

Lines changed: 616 additions & 649 deletions

File tree

fallow-baselines/dupes.json

Lines changed: 52 additions & 73 deletions
Large diffs are not rendered by default.

fallow-baselines/health.json

Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,6 @@
55
"count": 1
66
}
77
},
8-
"src/__tests__/client-companion-tunnel-worker.test.ts": {
9-
"complexity_high": {
10-
"count": 1
11-
},
12-
"crap_high": {
13-
"count": 1
14-
}
15-
},
168
"src/__tests__/client-metro-companion.test.ts": {
179
"crap_moderate": {
1810
"count": 1
@@ -919,20 +911,8 @@
919911
}
920912
},
921913
"src/utils/output.ts": {
922-
"complexity_critical": {
923-
"count": 1
924-
},
925-
"complexity_high": {
926-
"count": 1
927-
},
928-
"crap_critical": {
929-
"count": 1
930-
},
931-
"crap_high": {
932-
"count": 1
933-
},
934914
"crap_moderate": {
935-
"count": 1
915+
"count": 2
936916
}
937917
},
938918
"src/utils/retry.ts": {
@@ -985,12 +965,6 @@
985965
}
986966
},
987967
"src/utils/snapshot-lines.ts": {
988-
"complexity_high": {
989-
"count": 1
990-
},
991-
"crap_high": {
992-
"count": 1
993-
},
994968
"crap_moderate": {
995969
"count": 1
996970
}
@@ -1062,49 +1036,48 @@
10621036
"src/daemon/handlers/snapshot-capture.ts:high impact",
10631037
"src/daemon/handlers/session-device-utils.ts:high impact",
10641038
"src/utils/process-identity.ts:high impact",
1065-
"src/cli.ts:complexity",
10661039
"src/client-shared.ts:high impact",
10671040
"src/daemon/handlers/session-replay-script.ts:complexity",
1041+
"src/daemon/config.ts:high impact",
10681042
"src/commands/selector-read-utils.ts:high impact",
10691043
"src/utils/args.ts:high impact",
1070-
"src/daemon/config.ts:high impact",
10711044
"src/daemon/android-snapshot-freshness.ts:high impact",
10721045
"src/daemon/session-store.ts:complexity",
10731046
"src/platforms/boot-diagnostics.ts:complexity",
10741047
"src/cli/commands/connection-runtime.ts:complexity",
10751048
"src/daemon/handlers/session-replay-heal.ts:complexity",
1049+
"src/cli/commands/output.ts:complexity",
10761050
"src/daemon/handlers/snapshot-alert.ts:complexity",
10771051
"src/cli/commands/connection.ts:untested risk",
1078-
"src/utils/snapshot-lines.ts:high impact",
10791052
"src/daemon/handlers/session-inventory.ts:complexity",
10801053
"src/utils/success-text.ts:high impact",
10811054
"src/daemon/handlers/install-source.ts:complexity",
1082-
"src/utils/output.ts:high impact",
1083-
"src/cli/commands/output.ts:complexity",
10841055
"src/daemon/script-utils.ts:high impact",
10851056
"src/utils/snapshot-processing.ts:high impact",
10861057
"src/daemon/handlers/session-open-target.ts:high impact",
1058+
"src/cli.ts:complexity",
1059+
"src/utils/output.ts:high impact",
10871060
"src/daemon/handlers/session-state.ts:complexity",
10881061
"src/daemon/handlers/session-open.ts:complexity",
10891062
"src/platforms/android/ui-hierarchy.ts:high impact",
10901063
"src/daemon/request-cancel.ts:high impact",
10911064
"src/utils/device.ts:high impact",
10921065
"src/platforms/android/input-actions.ts:complexity",
10931066
"src/daemon/app-log-process.ts:high impact",
1067+
"src/utils/snapshot-lines.ts:high impact",
10941068
"src/client-metro.ts:complexity",
10951069
"src/utils/selector-build.ts:high impact",
10961070
"src/platforms/ios/xml.ts:high impact",
1097-
"src/utils/keyed-lock.ts:high impact",
10981071
"src/utils/text-surface.ts:high impact",
1072+
"src/cli-test.ts:untested risk",
1073+
"src/utils/keyed-lock.ts:high impact",
10991074
"src/daemon/app-log-stream.ts:high impact",
11001075
"src/core/batch.ts:complexity",
11011076
"src/platforms/ios/runner-xctestrun.ts:complexity",
1102-
"src/cli-test.ts:untested risk",
11031077
"src/platforms/android/sdk.ts:high impact",
11041078
"src/utils/source-value.ts:high impact",
11051079
"src/utils/screenshot-diff-regions.ts:complexity",
11061080
"src/daemon/screenshot-overlay.ts:untested risk",
1107-
"src/utils/screenshot-diff-non-text.ts:complexity",
1108-
"src/__tests__/client-companion-tunnel-worker.test.ts:complexity"
1081+
"src/utils/screenshot-diff-non-text.ts:complexity"
11091082
]
11101083
}

src/__tests__/cli-network.test.ts

Lines changed: 50 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,52 @@ import os from 'node:os';
55
import path from 'node:path';
66
import { runCliCapture } from './cli-capture.ts';
77

8+
function makeFailedReplayResult() {
9+
return {
10+
file: '/tmp/02-fail.ad',
11+
session: 'default:test:suite:2',
12+
status: 'failed',
13+
durationMs: 5,
14+
attempts: 2,
15+
artifactsDir: '/tmp/test-artifacts/02-fail',
16+
error: { message: 'Replay failed at step 1 (open Demo): boom' },
17+
};
18+
}
19+
20+
function makeReplaySuiteResponse() {
21+
const failedReplayResult = makeFailedReplayResult();
22+
23+
return {
24+
ok: true as const,
25+
data: {
26+
total: 3,
27+
executed: 2,
28+
passed: 1,
29+
failed: 1,
30+
skipped: 1,
31+
notRun: 0,
32+
durationMs: 25,
33+
failures: [failedReplayResult],
34+
tests: [
35+
{
36+
file: '/tmp/01-pass.ad',
37+
session: 'default:test:suite:1',
38+
status: 'passed',
39+
durationMs: 10,
40+
attempts: 1,
41+
},
42+
failedReplayResult,
43+
{
44+
file: '/tmp/03-skip.ad',
45+
status: 'skipped',
46+
durationMs: 0,
47+
message: 'missing platform metadata for --platform android',
48+
},
49+
],
50+
},
51+
};
52+
}
53+
854
test('network dump prints parsed entries and metadata', async () => {
955
const result = await runCliCapture(['network', 'dump', '10', '--include', 'all'], async () => ({
1056
ok: true,
@@ -53,53 +99,7 @@ test('network dump prints parsed entries and metadata', async () => {
5399
});
54100

55101
test('test command prints suite summary and exits non-zero on failures', async () => {
56-
const result = await runCliCapture(['test', './suite'], async () => ({
57-
ok: true,
58-
data: {
59-
total: 3,
60-
executed: 2,
61-
passed: 1,
62-
failed: 1,
63-
skipped: 1,
64-
notRun: 0,
65-
durationMs: 25,
66-
failures: [
67-
{
68-
file: '/tmp/02-fail.ad',
69-
session: 'default:test:suite:2',
70-
status: 'failed',
71-
durationMs: 5,
72-
attempts: 2,
73-
artifactsDir: '/tmp/test-artifacts/02-fail',
74-
error: { message: 'Replay failed at step 1 (open Demo): boom' },
75-
},
76-
],
77-
tests: [
78-
{
79-
file: '/tmp/01-pass.ad',
80-
session: 'default:test:suite:1',
81-
status: 'passed',
82-
durationMs: 10,
83-
attempts: 1,
84-
},
85-
{
86-
file: '/tmp/02-fail.ad',
87-
session: 'default:test:suite:2',
88-
status: 'failed',
89-
durationMs: 5,
90-
attempts: 2,
91-
artifactsDir: '/tmp/test-artifacts/02-fail',
92-
error: { message: 'Replay failed at step 1 (open Demo): boom' },
93-
},
94-
{
95-
file: '/tmp/03-skip.ad',
96-
status: 'skipped',
97-
durationMs: 0,
98-
message: 'missing platform metadata for --platform android',
99-
},
100-
],
101-
},
102-
}));
102+
const result = await runCliCapture(['test', './suite'], async () => makeReplaySuiteResponse());
103103

104104
assert.equal(result.code, 1);
105105
assert.equal(result.calls.length, 1);
@@ -113,53 +113,9 @@ test('test command prints suite summary and exits non-zero on failures', async (
113113
});
114114

115115
test('test command --verbose prints all test statuses', async () => {
116-
const result = await runCliCapture(['test', './suite', '--verbose'], async () => ({
117-
ok: true,
118-
data: {
119-
total: 3,
120-
executed: 2,
121-
passed: 1,
122-
failed: 1,
123-
skipped: 1,
124-
notRun: 0,
125-
durationMs: 25,
126-
failures: [
127-
{
128-
file: '/tmp/02-fail.ad',
129-
session: 'default:test:suite:2',
130-
status: 'failed',
131-
durationMs: 5,
132-
attempts: 2,
133-
artifactsDir: '/tmp/test-artifacts/02-fail',
134-
error: { message: 'Replay failed at step 1 (open Demo): boom' },
135-
},
136-
],
137-
tests: [
138-
{
139-
file: '/tmp/01-pass.ad',
140-
session: 'default:test:suite:1',
141-
status: 'passed',
142-
durationMs: 10,
143-
attempts: 1,
144-
},
145-
{
146-
file: '/tmp/02-fail.ad',
147-
session: 'default:test:suite:2',
148-
status: 'failed',
149-
durationMs: 5,
150-
attempts: 2,
151-
artifactsDir: '/tmp/test-artifacts/02-fail',
152-
error: { message: 'Replay failed at step 1 (open Demo): boom' },
153-
},
154-
{
155-
file: '/tmp/03-skip.ad',
156-
status: 'skipped',
157-
durationMs: 0,
158-
message: 'missing platform metadata for --platform android',
159-
},
160-
],
161-
},
162-
}));
116+
const result = await runCliCapture(['test', './suite', '--verbose'], async () =>
117+
makeReplaySuiteResponse(),
118+
);
163119

164120
assert.equal(result.code, 1);
165121
assert.match(result.stderr, /Running replay suite\.\.\./);

0 commit comments

Comments
 (0)