412 lines
21 KiB
Markdown
412 lines
21 KiB
Markdown
# Changelog
|
|
|
|
## 2025-05-26 - 2.3.0 - feat(cli)
|
|
Add '--version' option and warn against global tstest usage in the tstest project
|
|
|
|
- Introduced a new '--version' CLI flag that prints the version from package.json
|
|
- Added logic in ts/index.ts to detect if tstest is run globally within its own project and issue a warning
|
|
- Added .claude/settings.local.json to configure allowed permissions for various commands
|
|
|
|
## 2025-05-26 - 2.2.6 - fix(tstest)
|
|
Improve timeout warning timer management and summary output formatting in the test runner.
|
|
|
|
- Removed the global timeoutWarningTimer and replaced it with local warning timers in runInNode and runInChrome methods.
|
|
- Added warnings when test files run for over one minute if no timeout is specified.
|
|
- Ensured proper clearing of warning timers on successful completion or timeout.
|
|
- Enhanced quiet mode summary output to clearly display passed and failed test counts.
|
|
|
|
## 2025-05-26 - 2.2.5 - fix(protocol)
|
|
Fix inline timing metadata parsing and enhance test coverage for performance metrics and timing edge cases
|
|
|
|
- Updated the protocol parser to correctly parse inline key:value pairs while excluding prefixed formats (META:, SKIP:, TODO:, EVENT:)
|
|
- Added new tests for performance metrics, timing edge cases, and protocol timing to verify accurate timing capture and retry handling
|
|
- Expanded documentation in readme.hints.md to detail the updated timing implementation and parser fixes
|
|
|
|
## 2025-05-26 - 2.2.4 - fix(logging)
|
|
Improve performance metrics reporting and add local permissions configuration
|
|
|
|
- Add .claude/settings.local.json to configure allowed permissions for various commands
|
|
- Update tstest logging: compute average test duration from actual durations and adjust slowest test display formatting
|
|
|
|
## 2025-05-26 - 2.2.3 - fix(readme/ts/tstest.plugins)
|
|
Update npm package scope and documentation to use '@git.zone' instead of '@gitzone', and add local settings configuration.
|
|
|
|
- Changed npm package links and source repository URLs in readme from '@gitzone/tstest' to '@git.zone/tstest'.
|
|
- Updated comments in ts/tstest.plugins.ts to reflect the correct '@git.zone' scope.
|
|
- Added .claude/settings.local.json file with local permission settings.
|
|
|
|
## 2025-05-26 - 2.2.2 - fix(config)
|
|
Cleanup project configuration by adding local CLAUDE settings and removing redundant license files
|
|
|
|
- Added .claude/settings.local.json with updated permissions for CLI and build tasks
|
|
- Removed license and license.md files to streamline repository content
|
|
|
|
## 2025-05-26 - 2.2.1 - fix(repo configuration)
|
|
Update repository metadata to use 'git.zone' naming and add local permission settings
|
|
|
|
- Changed githost from 'gitlab.com' to 'code.foss.global' and gitscope from 'gitzone' to 'git.zone' in npmextra.json
|
|
- Updated npm package name from '@gitzone/tstest' to '@git.zone/tstest' in npmextra.json and readme.md
|
|
- Added .claude/settings.local.json with new permission configuration
|
|
|
|
## 2025-05-26 - 2.2.0 - feat(watch mode)
|
|
Add watch mode support with CLI options and enhanced documentation
|
|
|
|
- Introduce '--watch' (or '-w') and '--watch-ignore' CLI flags for automatic test re-runs
|
|
- Integrate @push.rocks/smartchok for file watching with 300ms debouncing
|
|
- Update readme.md and readme.hints.md with detailed instructions and examples for watch mode
|
|
- Add a demo test file (test/watch-demo/test.demo.ts) to illustrate the new feature
|
|
- Add smartchok dependency in package.json
|
|
|
|
## 2025-05-26 - 2.1.0 - feat(core)
|
|
Implement Protocol V2 with enhanced settings and lifecycle hooks
|
|
|
|
- Migrated to Protocol V2 using Unicode markers and structured metadata with new ts_tapbundle_protocol module
|
|
- Refactored TAP parser/emitter to support improved protocol parsing and error reporting
|
|
- Integrated global settings via tap.settings() and lifecycle hooks (beforeAll/afterAll, beforeEach/afterEach)
|
|
- Enhanced expect wrapper with diff generation for clearer assertion failures
|
|
- Updated test loader to automatically run 00init.ts for proper test configuration
|
|
- Revised documentation (readme.hints.md, readme.plan.md) to reflect current implementation status and remaining work
|
|
|
|
## 2025-05-25 - 2.0.0 - BREAKING CHANGE(protocol)
|
|
Introduce protocol v2 implementation and update build configuration with revised build order, new tspublish files, and enhanced documentation
|
|
|
|
- Added ts_tapbundle_protocol directory with isomorphic implementation for protocol v2
|
|
- Updated readme.hints.md and readme.plan.md to explain the complete replacement of the v1 protocol and new build process
|
|
- Revised build order in tspublish.json files across ts, ts_tapbundle, ts_tapbundle_node, and ts_tapbundle_protocol
|
|
- Introduced .claude/settings.local.json with updated permission settings for CLI and build tools
|
|
|
|
## 2025-05-24 - 1.11.5 - fix(tstest)
|
|
Fix timeout handling to correctly evaluate TAP results after killing the test process.
|
|
|
|
- Added call to evaluateFinalResult() after killing the process in runInNode to ensure final TAP output is processed.
|
|
|
|
## 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
|
|
|
|
- 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 <seconds> 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.
|