Skip to content

Commit f86a839

Browse files
author
Shay
committed
Merge branch '201-console-log-statements-vervangen-door-echo-in-de-codebase' into 'main'
Resolve "console.log statements vervangen door echo in de codebase" See merge request elgentos/magento2-playwright!17
2 parents 44e9ed4 + 279f113 commit f86a839

File tree

4 files changed

+100
-20
lines changed

4 files changed

+100
-20
lines changed

tests/setup.spec.ts

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@ import fs from 'fs';
55
import path from 'path';
66
import { inputValues } from '@config';
77
import { requireEnv } from '@utils/env.utils';
8+
import { createLogger } from '@utils/logger';
89

910
import MagentoAdminPage from '@poms/adminhtml/magentoAdmin.page';
1011
import RegisterPage from '@poms/frontend/register.page';
1112

13+
const logger = createLogger('Setup');
14+
1215
const magentoAdminUsername = requireEnv('MAGENTO_ADMIN_USERNAME');
1316
const magentoAdminPassword = requireEnv('MAGENTO_ADMIN_PASSWORD');
1417

@@ -66,28 +69,27 @@ base.describe('Setting up the testing environment', () => {
6669
);
6770
});
6871

69-
await base.step(`Step 2: (optional) Update env file`, async () => {
70-
console.log(process.env.CI);
71-
if (process.env.CI === 'true') {
72-
console.log("Running in CI environment. Skipping .env update.");
73-
base.skip();
74-
}
75-
76-
const envPath = path.resolve(__dirname, '../.env');
77-
try {
78-
if (fs.existsSync(envPath)) {
79-
const envContent = fs.readFileSync(envPath, 'utf-8');
80-
if (!envContent.includes(`SETUP_COMPLETE_${browserEngine}='DONE'`)) {
81-
fs.appendFileSync(envPath, `\nSETUP_COMPLETE_${browserEngine}='DONE'`);
82-
console.log(`Environment setup completed. Added SETUP_COMPLETE_${browserEngine}='DONE' to .env`);
72+
await base.step(`Step 2: (optional) Update env file`, async () => {
73+
if (process.env.CI === 'true') {
74+
logger.info("Running in CI environment. Skipping .env update.");
75+
base.skip();
76+
}
77+
78+
const envPath = path.resolve(__dirname, '../.env');
79+
try {
80+
if (fs.existsSync(envPath)) {
81+
const envContent = fs.readFileSync(envPath, 'utf-8');
82+
if (!envContent.includes(`SETUP_COMPLETE_${browserEngine}='DONE'`)) {
83+
fs.appendFileSync(envPath, `\nSETUP_COMPLETE_${browserEngine}='DONE'`);
84+
logger.info(`Environment setup completed. Added SETUP_COMPLETE_${browserEngine}='DONE' to .env`);
85+
}
86+
} else {
87+
throw new Error('.env file not found. Please ensure it exists in the root directory.');
8388
}
84-
} else {
85-
throw new Error('.env file not found. Please ensure it exists in the root directory.');
89+
} catch (error) {
90+
const err = error as Error;
91+
throw new Error(`Failed to update .env file: ${err.message}`);
8692
}
87-
} catch (error) {
88-
const err = error as Error;
89-
throw new Error(`Failed to update .env file: ${err.message}`);
90-
}
9193
});
9294
});
9395
});

tests/utils/logger/Logger.ts

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
// @ts-check
2+
3+
export class Logger {
4+
private readonly context: string;
5+
private readonly isDebug: boolean;
6+
7+
constructor(context: string) {
8+
this.context = context;
9+
this.isDebug = process.env.DEBUG === 'true' || process.env.NODE_ENV === 'development';
10+
}
11+
12+
private formatMessage(level: string, args: unknown[]): string {
13+
const prefix = `[${this.context}] [${level.toUpperCase()}]`;
14+
const message = args.map(arg => {
15+
try {
16+
return typeof arg === 'string' ? arg : JSON.stringify(arg);
17+
} catch {
18+
return '[Unserializable]';
19+
}
20+
}).join(' ');
21+
return `${prefix} ${message}\n`;
22+
}
23+
24+
private write(level: string, args: unknown[]): void {
25+
if (!this.isDebug && level === 'log') {
26+
return;
27+
}
28+
const msg = this.formatMessage(level, args);
29+
if (typeof process !== 'undefined' && process.stdout?.write) {
30+
if (level === 'error') {
31+
process.stderr.write(msg);
32+
} else {
33+
process.stdout.write(msg);
34+
}
35+
} else {
36+
// eslint-disable-next-line no-console
37+
switch (level) {
38+
case 'log':
39+
case 'info':
40+
console.info(msg.trim());
41+
break;
42+
case 'warn':
43+
console.warn(msg.trim());
44+
break;
45+
case 'error':
46+
console.error(msg.trim());
47+
break;
48+
}
49+
}
50+
}
51+
52+
public log(...args: unknown[]): void {
53+
this.write('log', args);
54+
}
55+
56+
public info(...args: unknown[]): void {
57+
this.write('info', args);
58+
}
59+
60+
public warn(...args: unknown[]): void {
61+
this.write('warn', args);
62+
}
63+
64+
public error(...args: unknown[]): void {
65+
this.write('error', args);
66+
}
67+
}

tests/utils/logger/factory.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// @ts-check
2+
3+
import { Logger } from './Logger';
4+
5+
export function createLogger(context: string): Logger {
6+
return new Logger(context);
7+
}

tests/utils/logger/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// @ts-check
2+
3+
export { Logger } from './Logger';
4+
export { createLogger } from './factory';

0 commit comments

Comments
 (0)