tstest/changelog.md

16 KiB

Changelog

2025-05-24 - 1.11.3 - fix(tstest)

Add timeout warning for long-running tests and introduce local settings configuration

  • Add .claude/settings.local.json with permission configuration for local development
  • Implement a timeout warning timer that notifies when tests run longer than 1 minute without an explicit timeout
  • Clear the timeout warning timer upon test completion
  • Remove unused import of logPrefixes in tstest.classes.tstest.ts

2025-05-24 - 1.11.2 - fix(tstest)

Improve timeout and error handling in test execution along with TAP parser timeout logic improvements.

  • In the TAP parser, ensure that expected tests are properly set when no tests are defined to avoid false negatives on timeout.
  • Use smartshell's terminate method and fallback kill to properly stop the entire process tree on timeout.
  • Clean up browser, server, and WebSocket instances reliably even when a timeout occurs.
  • Minor improvements in log file filtering and error logging for better clarity.

2025-05-24 - 1.11.1 - fix(tstest)

Clear timeout identifiers after successful test execution and add local CLAUDE settings

  • Ensure timeout IDs are cleared when tests complete to prevent lingering timeouts
  • Add .claude/settings.local.json with updated permission settings for CLI commands

2025-05-24 - 1.11.0 - feat(cli)

Add new timeout and file range options with enhanced logfile diff logging

  • Introduce --timeout option to safeguard tests from running too long
  • Add --startFrom and --stopAt options to control the range of test files executed
  • Enhance logfile organization by automatically moving previous logs and generating diff reports for failed or changed test outputs
  • Update CLI argument parsing and internal timeout handling for both Node.js and browser tests

2025-05-24 - 1.10.2 - fix(tstest-logging)

Improve log file handling with log rotation and diff reporting

  • Add .claude/settings.local.json to configure allowed shell and web operations
  • Introduce movePreviousLogFiles function to archive previous log files when --logfile is used
  • Enhance logging to generate error copies and diff reports between current and previous logs
  • Add type annotations for console overrides in browser evaluations for improved stability

2025-05-23 - 1.10.1 - fix(tstest)

Improve file range filtering and summary logging by skipping test files outside the specified range and reporting them in the final summary.

  • Introduce runSingleTestOrSkip to check file index against startFrom/stopAt values.
  • Log skipped files with appropriate messages and add them to the summary.
  • Update the logger to include total skipped files in the test summary.
  • Add permission settings in .claude/settings.local.json to support new operations.

2025-05-23 - 1.10.0 - feat(cli)

Add --startFrom and --stopAt options to filter test files by range

  • Introduced CLI options --startFrom and --stopAt in ts/index.ts for selective test execution
  • Added validation to ensure provided range values are positive and startFrom is not greater than stopAt
  • Propagated file range filtering into test grouping in tstest.classes.tstest.ts, applying the range filter across serial and parallel groups
  • Updated usage messages to include the new options

2025-05-23 - 1.9.4 - fix(docs)

Update documentation and configuration for legal notices and CI permissions. This commit adds a new local settings file for tool permissions, refines the legal and trademark sections in the readme, and improves glob test files with clearer log messages.

  • Added .claude/settings.local.json to configure permissions for various CLI commands
  • Revised legal and trademark documentation in the readme to clarify company ownership and usage guidelines
  • Updated glob test files with improved console log messages for better clarity during test discovery

2025-05-23 - 1.9.3 - fix(tstest)

Fix test timing display issue and update TAP protocol documentation

  • Changed TAP parser regex to non-greedy pattern to correctly separate test timing metadata
  • Enhanced readme.hints.md with detailed explanation of test timing fix and planned protocol upgrades
  • Updated readme.md with improved usage examples for tapbundle and comprehensive test framework documentation
  • Added new protocol design document (readme.protocol.md) and improvement plan (readme.plan.md) outlining future changes
  • Introduced .claude/settings.local.json update for npm and CLI permissions
  • Exported protocol utilities and added tapbundle protocol implementation for future enhancements

2025-05-23 - 1.9.2 - fix(logging)

Fix log file naming to prevent collisions and update logging system documentation.

  • Enhance safe filename generation in tstest logging to preserve directory structure using double underscores.
  • Update readme.hints.md to include detailed logging system documentation and behavior.
  • Add .claude/settings.local.json with updated permissions for build tools.

2025-05-23 - 1.9.1 - fix(dependencies)

Update dependency versions and add local configuration files

  • Bump @git.zone/tsbuild from ^2.5.1 to ^2.6.3
  • Bump @types/node from ^22.15.18 to ^22.15.21
  • Bump @push.rocks/smartexpect from ^2.4.2 to ^2.5.0
  • Bump @push.rocks/smartfile from ^11.2.0 to ^11.2.3
  • Bump @push.rocks/smartlog from ^3.1.1 to ^3.1.8
  • Add .npmrc with npm registry configuration
  • Add .claude/settings.local.json for local permissions

2025-05-16 - 1.9.0 - feat(docs)

Update documentation to embed tapbundle and clarify module exports for browser compatibility; also add CI permission settings.

  • Embed tapbundle directly into tstest to simplify usage and ensure browser support.
  • Update import paths in examples from '@push.rocks/tapbundle' to '@git.zone/tstest/tapbundle'.
  • Revise the changelog to reflect version 1.8.0 improvements including enhanced test lifecycle hooks and parallel execution fixes.
  • Add .claude/settings.local.json to configure CI-related permissions and tool operations.

2025-05-16 - 1.8.0 - feat(documentation)

Enhance README with detailed test features and update local settings for build permissions.

  • Expanded the documentation to include tag filtering, parallel test execution groups, lifecycle hooks, snapshot testing, timeout control, retry logic, and test fixtures
  • Updated .claude/settings.local.json to allow additional permissions for various build and test commands

2025-05-16 - 1.7.0 - feat(tstest)

Enhance tstest with fluent API, suite grouping, tag filtering, fixture & snapshot testing, and parallel execution improvements

  • Updated npm scripts to run tests in verbose mode and support glob patterns with quotes
  • Introduced tag filtering support (--tags) in the CLI to run tests by specified tags
  • Implemented fluent syntax methods (tags, priority, retry, timeout) for defining tests and applying settings
  • Added test suite grouping with describe(), along with beforeEach and afterEach lifecycle hooks
  • Integrated a fixture system and snapshot testing via TapTools with base64 snapshot communication
  • Enhanced TAP parser regex, error collection, and snapshot handling for improved debugging
  • Improved parallel test execution by grouping files with a 'para__' pattern and running them concurrently

2025-05-15 - 1.6.0 - feat(package)

Revamp package exports and update permissions with an extensive improvement plan for test runner enhancements.

  • Replaced 'main' and 'typings' in package.json with explicit exports for improved module resolution.
  • Added .claude/settings.local.json to configure permissions for bash commands and web fetches.
  • Updated readme.plan.md with a comprehensive roadmap covering enhanced error reporting, rich test metadata, nested test suites, and advanced test features.

2025-05-15 - 1.5.0 - feat(cli)

Improve test runner configuration: update test scripts, reorganize test directories, update dependencies and add local settings for command permissions.

  • Updated package.json scripts to use pnpm and separate commands for tapbundle and tstest.
  • Reorganized tests into dedicated directories (test/tapbundle and test/tstest) and removed deprecated test files.
  • Refactored import paths and bumped dependency versions in tapbundle, tstest, and associated node utilities.
  • Added .claude/settings.local.json to configure local permissions for bash and web fetch commands.
  • Introduced ts/tspublish.json to define publish order.

2025-05-15 - 1.4.0 - feat(logging)

Display failed test console logs in default mode

  • Introduce log buffering in TsTestLogger to capture console output for failed tests
  • Enhance TapParser to collect and display error details when tests fail
  • Update README and project plan to document log improvements for debugging

2025-05-15 - 1.3.1 - fix(settings)

Add local permissions configuration and remove obsolete test output log

  • Added .claude/settings.local.json to configure allowed permissions for web fetch and bash commands
  • Removed test-output.log to eliminate accidental commit of test artifacts

2025-05-15 - 1.3.0 - feat(logger)

Improve logging output and add --logfile support for persistent logs

  • Add new .claude/settings.local.json with logging permissions configuration
  • Remove obsolete readme.plan.md
  • Introduce test/test.console.ts to capture and display console outputs during tests
  • Update CLI in ts/index.ts to replace '--log-file' with '--logfile' flag
  • Enhance TsTestLogger to support file logging, clean ANSI sequences, and improved JSON output
  • Forward TAP protocol logs to testConsoleOutput in TapParser for better console distinction

2025-05-15 - 1.2.0 - feat(logging)

Improve logging output, CLI option parsing, and test report formatting.

  • Added a centralized TsTestLogger with support for multiple verbosity levels, JSON output, and file logging (TODO).
  • Integrated new logger into CLI parsing, TapParser, TapCombinator, and TsTest classes to ensure consistent and structured output.
  • Introduced new CLI options (--quiet, --verbose, --no-color, --json, --log-file) for enhanced user control.
  • Enhanced visual design with progress indicators, detailed error aggregation, and performance summaries.
  • Updated documentation and logging code to align with improved CI/CD behavior, including skipping non-CI tests.

2025-05-15 - 1.1.0 - feat(cli)

Enhance test discovery with support for single file and glob pattern execution using improved CLI argument detection

  • Detect execution mode (file, glob, directory) based on CLI input in ts/index.ts
  • Refactor TestDirectory to load test files using SmartFile for single file and glob patterns
  • Update TsTest to pass execution mode and adjust test discovery accordingly
  • Bump dependency versions for typedserver, tsbundle, tapbundle, and others
  • Add .claude/settings.local.json for updated permissions configuration

2025-01-23 - 1.0.96 - fix(TsTest)

Fixed improper type-check for promise-like testModule defaults

  • Corrected the type-check for promise-like default exports in test modules
  • Removed unnecessary setTimeout used for async execution

2025-01-23 - 1.0.95 - fix(core)

Fix delay handling in Chrome test execution

  • Replaced smartdelay.delayFor with native Promise-based delay mechanism in runInChrome method.

2025-01-23 - 1.0.94 - fix(TsTest)

Fix test module execution by ensuring promise resolution delay

  • Added a delay to ensure promise resolution when dynamically importing test modules in the runInChrome method.

2025-01-23 - 1.0.93 - fix(tstest)

Handle globalThis.tapPromise in browser runtime evaluation

  • Added support for using globalThis.tapPromise in the browser evaluation logic.
  • Added log messages to indicate the usage of globalThis.tapPromise.

2025-01-23 - 1.0.92 - fix(core)

Improve error logging for test modules without default promise

  • Added logging to display the exported test module content when it does not export a default promise.

2025-01-23 - 1.0.91 - fix(core)

Refactored tstest class to enhance promise handling for test modules.

  • Removed .gitlab-ci.yml configuration file.
  • Updated package.json dependency versions.
  • Added a condition to handle promiselike objects in tests.

2024-04-18 - 1.0.89 to 1.0.90 - Enhancements and Bug Fixes

Multiple updates and fixes have been made.

  • Updated core components to enhance stability and performance.

2024-03-07 - 1.0.86 to 1.0.88 - Core Updates

Continued improvements and updates in the core module.

  • Applied critical fixes to enhance core stability.

2024-01-19 - 1.0.85 to 1.0.89 - Bug Fixes

Series of core updates have been implemented.

  • Addressed known bugs and improved overall system functionality.

2023-11-09 - 1.0.81 to 1.0.84 - Maintenance Updates

Maintenance updates focusing on core reliability.

  • Improved core module through systematic updates.
  • Strengthened system robustness.

2023-08-26 - 1.0.77 to 1.0.80 - Critical Fixes

Critical fixes implemented in core functionality.

  • Enhanced core processing to fix existing issues.

2023-07-13 - 1.0.75 to 1.0.76 - Stability Improvements

Stability enhancements and minor improvements.

  • Focused on ensuring a stable operational core.

2022-11-08 - 1.0.73 to 1.0.74 - Routine Fixes

Routine core fixes to address reported issues.

  • Addressed minor issues in the core module.

2022-08-03 - 1.0.71 to 1.0.72 - Core Enhancements

Enhancements applied to core systems.

  • Tweaked core components for enhanced reliability.

2022-05-04 - 1.0.69 to 1.0.70 - System Reliability Fixes

Fixes targeting the reliability of the core systems.

  • Improved system reliability through targeted core updates.

2022-03-17 - 1.0.65 to 1.0.68 - Major Core Updates

Major updates and bug fixes delivered for core components.

  • Enhanced central operations through key updates.

2022-02-15 - 1.0.60 to 1.0.64 - Core Stability Improvements

Focused updates on core stability and performance.

  • Reinforced stability through systematic core changes.

2021-11-07 - 1.0.54 to 1.0.59 - Core Fixes and Improvements

Multiple core updates aimed at fixing and improving the system.

  • Addressed outstanding bugs and improved performance in the core.

2021-08-20 - 1.0.50 to 1.0.53 - Core Functionality Updates

Continued updates to improve core functionality and user experience.

  • Implemented essential core fixes to enhance user experience.

2020-10-01 - 1.0.44 to 1.0.49 - Core System Enhancements

Critical enhancements to core systems.

  • Improved core operations and tackled existing issues.

2020-09-29 - 1.0.40 to 1.0.43 - Essential Fixes

Series of essential fixes for the core system.

  • Rectified known issues and bolstered core functionalities.

2020-07-10 - 1.0.35 to 1.0.39 - Core Function Fixes

Focused improvements and fixes for critical components.

  • Addressed critical core functions to boost system performance.

2020-06-01 - 1.0.31 to 1.0.34 - Core Updates

Updates to maintain core functionality efficacy.

  • Fixed inefficiencies and updated essential components.

2019-10-02 - 1.0.26 to 1.0.29 - Core Maintenance

Regular maintenance and updates for core reliability.

  • Addressed multiple core issues and enhanced system stability.

2019-05-28 - 1.0.20 to 1.0.25 - Core Improvements

General improvements targeting core functionalities.

  • Made systematic improvements to core processes.

2019-04-08 - 1.0.16 to 1.0.19 - Bug Squashing

Resolved numerous issues within core operations.

  • Fixed and optimized core functionalities for better performance.

2018-12-06 - 1.0.15 - Dependency Updates

Updates aimed at improving dependency management.

  • Ensured dependencies are up-to-date for optimal performance.

2018-08-14 - 1.0.14 - Test Improvement

Major improvements in testing mechanisms and logging.

  • Improved test results handling for accuracy and reliability.
  • Enhanced logging features for increased clarity.

2018-08-04 - 1.0.1 to 1.0.13 - Initial Implementation and Fixes

Initial release and critical updates focusing on core stability and functionality.

  • Implemented core components and established initial system structure.
  • Addressed key bugs and enhanced initial functionality.