Skip to content

Commit 598691b

Browse files
committed
Add obfuscated log test
1 parent 35c5371 commit 598691b

1 file changed

Lines changed: 36 additions & 3 deletions

File tree

packages/worker/src/__unit__/logger.test.ts

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,44 @@
11
import { TransformCallback, Writable } from 'node:stream';
22
import { createBuildLoggerWithSecretsFilter } from '../logger';
33
import z from 'zod';
4+
import { EnvironmentSecretType } from '@expo/eas-build-job';
5+
6+
async function waitForStreamFlush(): Promise<void> {
7+
await new Promise(resolve => setImmediate(resolve));
8+
}
49

510
describe('logger', () => {
6-
async function waitForStreamFlush(): Promise<void> {
7-
await new Promise(resolve => setImmediate(resolve));
8-
}
11+
it('obfuscates secrets in logs', async () => {
12+
const { logger, outputStream } = await createBuildLoggerWithSecretsFilter([
13+
{ name: 'TEST_SECRET', value: 'secret', type: EnvironmentSecretType.STRING },
14+
{
15+
name: 'ANOTHER_SECRET_BASE64',
16+
value: 'YW5vdGhlclNlY3JldA==',
17+
type: EnvironmentSecretType.STRING,
18+
},
19+
]);
20+
21+
const logs: any[] = [];
22+
23+
const writable = new Writable({
24+
objectMode: true,
25+
write(chunk: any, _encoding: BufferEncoding, callback: TransformCallback) {
26+
logs.push(chunk);
27+
callback(null, chunk);
28+
},
29+
});
30+
31+
outputStream.pipe(writable);
32+
33+
logger.info('this is a secret');
34+
logger.info(`another secret in base64 is ${Buffer.from('anotherSecret').toString('base64')}`);
35+
36+
await waitForStreamFlush();
37+
38+
expect(logs.length).toBe(2);
39+
expect(logs[0].msg).toBe('this is a ******');
40+
expect(logs[1].msg).toBe('another ****** in base64 is ********************');
41+
});
942

1043
it('adds logId to each log', async () => {
1144
const { logger, outputStream } = await createBuildLoggerWithSecretsFilter([]);

0 commit comments

Comments
 (0)