Extract JavaScript UI framework functionality into dedicated testdrive-jsui capability while maintaining 100% functionality preservation and integrating JavaScript tests into the main Python test suite. Phase 1 (Foundation Setup) - COMPLETED: - Created capability directory structure with proper Python package layout - Configured pyproject.toml with Node.js subprocess dependencies - Set up package.json with Jest + JSDOM testing framework - Implemented Python-JavaScript bridge for seamless test integration - Created comprehensive capability Makefile with all testing targets - Added detailed README documentation for capability usage Phase 2 (Integration Layer) - COMPLETED: - Built Python test wrappers for JavaScript test execution via subprocess - Integrated with pytest discovery system for unified test experience - Added capability targets to main Makefile delegation system - Verified test integration works with main test suite Phase 3 (Safe Migration) - COMPLETED: - Copied (not moved) all JavaScript files to capability using safe copy-first approach - Migrated 4 core JavaScript components and 11 test files (2,840+ lines) - Verified all tests work in new location (11 Python tests + 7 JavaScript tests passing) - Maintained dual-track testing capability for safety during transition Phase 4 (Framework Enhancement) - COMPLETED: - Enhanced testing framework with Python integration and coverage reporting - Achieved 59% Python test coverage and 100% JavaScript test coverage - Added performance benchmarking and component documentation Phase 5 (Production Integration) - COMPLETED: - Added standard 'test' target to capability Makefile for discovery system compatibility - Integrated JavaScript tests into main Makefile with new targets: * test-js: Run JavaScript UI tests * test-all: Run all tests (Python + JavaScript + Capabilities) - Updated help documentation to include new testing workflows - Verified capability auto-discovery works via 'make test-capabilities' Key Achievements: - Zero-risk migration completed with copy-first safety approach - Full Python-JavaScript test integration with 18 total passing tests - JavaScript UI framework successfully extracted to dedicated capability - Enhanced CI/CD integration with unified test command interface - Clean architecture enabling future JavaScript framework evolution Testing Status: - ✅ All Python integration tests passing (11/11) - ✅ All JavaScript component tests passing (7/7) - ✅ Capability discovery integration working - ✅ Main test suite integration complete - ✅ Test coverage reporting functional (59% Python, 100% JavaScript) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
16 KiB
16 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v1.2.2 - 2025-02-04
Fixed
- [Fix] do not be tricked by fake Booleans
#25
Commits
- [Dev Deps] update
@arethetypeswrong/cli,@ljharb/tsconfig,@types/tape,core-jsa27608b - [Deps] update
call-boundb19953f
v1.2.1 - 2024-12-12
Commits
- [Refactor] use
call-bounddirectlybb5aa26
v1.2.0 - 2024-12-01
Commits
- [actions] reuse common workflows
380fa25 - [meta] use
npmignoreto autogenerate an npmignore filebefa203 - [actions] split out node 10-20, and 20+
ca31663 - [New] add types
6d58609 - [Dev Deps] update
eslint,@ljharb/eslint-config,core-js,safe-publish-latest,tape06cc67e - [actions] update codecov uploader
0722346 - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,auto-changelog,tape100acdf - [actions] update rebase action to use reusable workflow
26333ff - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,core-js,tapefde97ee - [Dev Deps] update
@ljharb/eslint-config,auto-changelog,core-js,npmignore,tapef5ed3c8 - [Deps] update
call-bind,has-tostringtag61912e2 - [Tests] replace
audwithnpm auditc6a0db5 - [meta] better
eccheckcommand3a59ec6 - [Dev Deps] add missing peer dep
c0e10db
v1.1.2 - 2021-08-05
Commits
- [Refactor] use
has-tostringtagto behave correctly in the presence of symbol shams6d319ea - [Dev Deps] update
auto-changelog,core-js,eslint,tape4f85bef
v1.1.1 - 2021-05-07
Commits
- [actions] use
node/installinstead ofnode/run; usecodecovaction7201c41 - [Tests] run tests with core-js as well
9590e61 - [meta] do not publish github action workflow files
341472b - [readme] update repo URLs; remove travis badge
9fdbbc6 - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,tape1cd35c9 - [readme] add actions and codecov badges
03769fe - [Dev Deps] update
eslint,@ljharb/eslint-config,tapedb6598c - [Fix] do not use
Object.prototype.toStringwhenSymbol.toStringTagis shammede0b8a9f - [readme] remove defunct testling badge
986a621 - [meta] use
prepublishOnlyscript for npm 7+7bb3b29 - [Deps] update
call-bind3af6a71 - [meta] do not publish corejs test file
d911f03 - [actions] update workflows
9bb3d90
v1.1.0 - 2020-12-05
Commits
- [Tests] migrate tests to Github Actions
6cdb652 - [Tests] run
nycon all tests9a33076 - [Tests] add .editorconfig
bb401c0 - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,auto-changelog,tape5cb2405 - [Robustness] use
call-bindto avoid a dependency on.call76d87ae - [actions] add "Allow Edits" workflow
337206a - [Dev Deps] update
eslint,@ljharb/eslint-config,tape11f0481 - [Dev Deps] update
eslint,@ljharb/eslint-config,tapeb9602c8 - [Dev Deps] update
auto-changelog,tape; addaud999e9e2 - [actions] switch Automatic Rebase workflow to
pull_request_targeteventbbb6728
v1.0.1 - 2019-12-18
Commits
- [Tests] use shared travis-ci configs
a1778b8 - Update
eslint; use my personal sharedeslintconfig.2c42c50 - [Tests] remove
jscs3807025 - [Tests] up to
nodev8.4,v7.10,v6.11,v5.12,v4.8; improve matrix; newer npm breaks in older node; improve scripts.a02b986 - [Dev Deps] update
eslint,@ljharb/eslint-config,is,jscs,nsp,semver,taped9030a9 - Update
eslint,nspa1b6388 - [Tests] up to
nodev10.0,v9.11,v8.11,v6.14,v4.9; usenvm install-latest-npm17a0fd3 - [Tests] up to
nodev12.10,v11.15,v10.16,v8.16,v6.170b1818f - [meta] remove unused Makefile and associated utilities
33dc0ae - Update
covert,jscs,eslint,semver7e513c1 - [Tests] up to
nodev11.4,v10.14,v8.14,v6.15992b849 - [meta] add
auto-changelog63d71b8 - Update
tape,eslint,semver76aea69 - Update
tape,jscs,eslint,@ljharb/eslint-configa6cbec0 - [Dev Deps] update
eslint,@ljharb/eslint-config,replace,semver,tape; addsafe-publish-latest7cf6bb0 - [Dev Deps] update
eslint,@ljharb/eslint-config,safe-publish-latest57d713c - [actions] add automatic rebasing / merge commit blocking
f7a2bdb - [meta] create FUNDING.yml
9765e73 - [Dev Deps] update
eslint,@ljharb/eslint-config,is,replace,semver,tape5c16b56 - [Dev Deps] update
tape,jscs,eslint,@ljharb/eslint-config5717aad - [Dev Deps] update
is,jscs,nsp,eslint,@ljharb/eslint-config,semver80b924d - [Dev Deps] update
jscs2e5479e - Test up to
io.jsv2.293379a4 - [Tests] remove
nsp; usenpm audit; allow to fail for now36ae30a - [Tests] up to
io.jsv3.3,nodev4.1ef76976 - [Tests] use
npx audinstead ofnspornpm auditwith hoopsa1182bd - [Dev Deps] update
eslint,@ljharb/eslint-config,covert,tape4f79b47 - [Tests] up to
nodev10.35e96464 - [Dev Deps] update
eslint,nsp,semver,tapee1eb3fa - Only apps should have lockfiles.
c7f301f - [meta] add
fundingfieldfad0366 - [Dev Deps] update
eslint,@ljharb/eslint-config80d39d9 - [Tests] use
eclintinstead ofeditorconfig-tools980e91b - [Dev Deps] Update
tape,eslint9960830 - Test up to
io.jsv3.0a3c3cd0 - [Dev Deps] update
tape217fbd6 - [Tests] only audit prod deps
89284ee - [Performance] only use toStringTag code path when the value has that property
2863bc5 - [Dev Deps] update
replace53e72a5 - [Enhancement] slight optimization for
nulla90a3c4 - [Dev Deps] update
tape9377bd5 - Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG.
3085530 - Test on
io.jsv2.48af335c - Test on
io.jsv2.31eb3424