diff --git a/changelog.md b/changelog.md index a24df3a..fbf93c8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,12 @@ # Changelog +## 2025-05-24 - 1.11.4 - fix(logging) +Improve warning logging and add permission settings file + +- Replace multiple logger.error calls with logger.warning for tests running over 1 minute +- Add warning method in tstest logger to display warning messages consistently +- Introduce .claude/settings.local.json to configure allowed permissions + ## 2025-05-24 - 1.11.3 - fix(tstest) Add timeout warning for long-running tests and introduce local settings configuration diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index b866063..98c32dc 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@git.zone/tstest', - version: '1.11.3', + version: '1.11.4', description: 'a test utility to run tests that match test/**/*.ts' } diff --git a/ts/tstest.classes.tstest.ts b/ts/tstest.classes.tstest.ts index 28a2a73..b2ddf39 100644 --- a/ts/tstest.classes.tstest.ts +++ b/ts/tstest.classes.tstest.ts @@ -48,10 +48,9 @@ export class TsTest { // Start timeout warning timer if no timeout was specified if (this.timeoutSeconds === null) { this.timeoutWarningTimer = setTimeout(() => { - // Use the logger instead of console.error to ensure the warning is visible - this.logger.error('Warning: Test is running for more than 1 minute.'); - this.logger.error('Consider using --timeout option to set a timeout for test files.'); - this.logger.error('Example: tstest test --timeout=300 (for 5 minutes)'); + this.logger.warning('Test is running for more than 1 minute.'); + this.logger.warning('Consider using --timeout option to set a timeout for test files.'); + this.logger.warning('Example: tstest test --timeout=300 (for 5 minutes)'); }, 60000); // 1 minute } diff --git a/ts/tstest.logging.ts b/ts/tstest.logging.ts index 8c53b52..5aeec99 100644 --- a/ts/tstest.logging.ts +++ b/ts/tstest.logging.ts @@ -443,6 +443,20 @@ export class TsTestLogger { this.log(this.format(`\n${status}`, statusColor)); } + // Warning display + warning(message: string) { + if (this.options.json) { + this.logJson({ event: 'warning', message }); + return; + } + + if (this.options.quiet) { + console.log(`WARNING: ${message}`); + } else { + this.log(this.format(` ⚠️ ${message}`, 'orange')); + } + } + // Error display error(message: string, file?: string, stack?: string) { if (this.options.json) {