Skip to content

Commit 474dcc7

Browse files
authored
Merge pull request #954 from d-zero-dev/worktree-peppy-swimming-glacier
fix(dealer): omit undefined prefix in Lanes verbose update without header
2 parents 5dc5515 + 02f252f commit 474dcc7

2 files changed

Lines changed: 37 additions & 2 deletions

File tree

‎packages/@d-zero/dealer/src/lanes.spec.ts‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,37 @@ describe('Lanes dispose', () => {
4545
expect(process.stdout.listenerCount('resize')).toBe(resizeBefore);
4646
});
4747
});
48+
49+
describe('Lanes verbose update', () => {
50+
test('update() without header() writes the log with no "undefined" prefix', () => {
51+
using lanes = new Lanes({ verbose: true });
52+
53+
lanes.update(0, 'some log message');
54+
55+
expect(stdoutWriteSpy).toHaveBeenCalledWith(
56+
expect.stringContaining('some log message'),
57+
);
58+
expect(stdoutWriteSpy).not.toHaveBeenCalledWith(expect.stringContaining('undefined'));
59+
});
60+
61+
test('update() after header() still prefixes the log with the header', () => {
62+
using lanes = new Lanes({ verbose: true });
63+
64+
lanes.header('My Header');
65+
lanes.update(0, 'some log message');
66+
67+
const lastCall = stdoutWriteSpy.mock.calls.at(-1)?.[0] as string;
68+
expect(lastCall).toContain('My Header');
69+
expect(lastCall).toContain('some log message');
70+
});
71+
72+
test('update() after header("") still writes without a prefix (empty string is falsy)', () => {
73+
using lanes = new Lanes({ verbose: true });
74+
75+
lanes.header('');
76+
lanes.update(0, 'some log message');
77+
78+
const lastCall = stdoutWriteSpy.mock.calls.at(-1)?.[0] as string;
79+
expect(lastCall).not.toContain('undefined');
80+
});
81+
});

‎packages/@d-zero/dealer/src/lanes.ts‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,14 @@ export class Lanes {
115115
}
116116
/**
117117
* 指定した ID のログを更新する。
118-
* verbose モードではヘッダーとログを連結して即時出力する。
118+
* verbose モードではヘッダー設定済みならヘッダーとログを連結し、未設定なら
119+
* ログのみを即時出力する。
119120
* @param id - 更新するログの ID
120121
* @param log - ログメッセージ
121122
*/
122123
update(id: number, log: string) {
123124
if (this.#verbose) {
124-
this.#display.write(`${RESET}${this.#header}${RESET} ${log}`);
125+
this.#display.write(this.#header ? `${RESET}${this.#header}${RESET} ${log}` : log);
125126
return;
126127
}
127128

0 commit comments

Comments
 (0)