Skip to content

Commit e033529

Browse files
authoredFeb 16, 2024
feat(logger): add flushLogs method to tests (#16)
1 parent b9d42b5 commit e033529

File tree

8 files changed

+47
-3
lines changed

8 files changed

+47
-3
lines changed
 

‎.github/stale.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ daysUntilClose: 7
66

77
# Issues with these labels will never be considered stale
88
exemptLabels:
9-
- "Type: Security"
9+
- 'Type: Security'
1010

1111
# Label to use when marking an issue as stale
12-
staleLabel: "Status: Abandoned"
12+
staleLabel: 'Status: Abandoned'
1313

1414
# Comment to post when marking an issue as stale. Set to `false` to disable
1515
markComment: >

‎README.md

+11
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,17 @@ const logs = ui.logger.getRenderer().getLogs()
155155
console.log(logs)
156156
```
157157

158+
You can also flush all logs by calling `flushLogs`.
159+
160+
```ts
161+
ui.logger.info('Hello world')
162+
163+
const logs = ui.logger.getRenderer().getLogs()
164+
console.log(logs.length); // 1
165+
ui.logger.getRenderer().flushLogs();
166+
console.log(logs.length); // 0
167+
```
168+
158169
## Logger actions
159170
Logger actions are pre-styled logs to display the outcome of an action. For example, the action can be to create/update or delete a file.
160171

‎src/logger/main.ts

+4
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ export class Logger implements RendererContract {
4545
return this.getRenderer().getLogs()
4646
}
4747

48+
flushLogs(): void {
49+
this.getRenderer().flushLogs()
50+
}
51+
4852
constructor(options: Partial<LoggerOptions> = {}) {
4953
const dimOutput = options.dim === undefined ? false : options.dim
5054

‎src/renderers/console.ts

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ export class ConsoleRenderer implements RendererContract {
1818
return []
1919
}
2020

21+
flushLogs(): void {}
22+
2123
log(message: string) {
2224
console.log(message)
2325
}

‎src/renderers/memory.ts

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ export class MemoryRenderer implements RendererContract {
1919
return this.#logs
2020
}
2121

22+
flushLogs(): void {
23+
this.#logs = []
24+
}
25+
2226
/**
2327
* Log message
2428
*/

‎src/types.ts

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export { Colors }
1818
*/
1919
export interface RendererContract {
2020
getLogs(): { message: string; stream: 'stdout' | 'stderr' }[]
21+
flushLogs(): void
2122

2223
/**
2324
* Log a message

‎tests/logger.spec.ts

+22
Original file line numberDiff line numberDiff line change
@@ -474,3 +474,25 @@ test.group('Logger | await', () => {
474474
assert.deepEqual(renderer.getLogs(), [])
475475
})
476476
})
477+
478+
test.group('Logger | flushLogs', () => {
479+
test('flush logs should empty logs array', ({ assert }) => {
480+
const logger = new Logger({})
481+
const renderer = new MemoryRenderer()
482+
483+
logger.useRenderer(renderer)
484+
485+
logger.log('Hello world')
486+
487+
assert.deepEqual(renderer.getLogs(), [
488+
{
489+
message: `Hello world`,
490+
stream: 'stdout',
491+
},
492+
])
493+
494+
logger.flushLogs()
495+
496+
assert.deepEqual(renderer.getLogs(), [])
497+
})
498+
})

‎tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
"rootDir": "./",
55
"outDir": "./build"
66
}
7-
}
7+
}

0 commit comments

Comments
 (0)
Please sign in to comment.