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>
15 KiB
15 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.3.0 - 2025-02-22
Commits
- [Dev Deps] update
es-abstract,es-value-fixtures,for-each,object-inspect9b61553 - [Deps] update
call-bind-apply-helpers,es-object-atoms,get-protoa341fee - [New] add
Float16Arrayde22116
v1.2.7 - 2025-01-02
Commits
- [Refactor] use
get-protodirectly00ab955 - [Deps] update
math-intrinsicsc716cdd - [Dev Deps] update
call-bound,es-abstractdc648a6
v1.2.6 - 2024-12-11
Commits
- [Refactor] use
math-intrinsics841be86 - [Refactor] use
es-object-atoms42057df - [Deps] update
call-bind-apply-helpers45afa24 - [Dev Deps] update
call-bound9cba9c6
v1.2.5 - 2024-12-06
Commits
- [actions] split out node 10-20, and 20+
6e2b9dd - [Refactor] use
dunder-protoandcall-bind-apply-helpersinstead ofhas-protoc095d17 - [Refactor] use
gopd9841d5b - [Dev Deps] update
@ljharb/eslint-config,auto-changelog,es-abstract,es-value-fixtures,gopd,mock-property,object-inspect,tape2d07e01 - [Deps] update
gopd,has-proto,has-symbols,hasown974d8bf - [Dev Deps] update
call-bind,es-abstract,tapedf9dde1 - [Refactor] cache
es-define-propertyas well43ef543 - [Deps] update
has-proto,has-symbols,hasownad4949d - [Tests] use
call-bounddirectlyad5c406 - [Deps] update
has-proto,hasown45414ca - [Tests] replace
audwithnpm audit18d3509 - [Deps] update
es-define-propertyaadaa3b - [Dev Deps] add missing peer dep
c296a16
v1.2.4 - 2024-02-05
Commits
- [Refactor] use all 7 <+ ES6 Errors from
es-errorsbcac811
v1.2.3 - 2024-02-03
Commits
- [Refactor] use
es-errors, so things that only need those do not needget-intrinsicf11db9c - [Dev Deps] update
aud,es-abstract,mock-property,npmignoreb7ac7d1 - [meta] simplify
exportsfaa0cc6 - [meta] add missing
engines.node774dd0b - [Dev Deps] update
tape5828e8e - [Robustness] use null objects for lookups
eb9a11f - [meta] add
sideEffectsflag89bcc7a
v1.2.2 - 2023-10-20
Commits
- [Dev Deps] update
@ljharb/eslint-config,aud,call-bind,es-abstract,mock-property,object-inspect,tapef51bcf2 - [Refactor] use
hasowninstead ofhas18d14b7 - [Deps] update
function-bind6e109c8
v1.2.1 - 2023-05-13
Commits
v1.2.0 - 2023-01-19
Commits
- [actions] update checkout action
ca6b12f - [Dev Deps] update
@ljharb/eslint-config,es-abstract,object-inspect,tape41a3727 - [Fix] ensure
Error.prototypeis undeniablec511e97 - [Dev Deps] update
aud,es-abstract,tape1bef8a8 - [Dev Deps] update
aud,es-abstract0d41f16 - [New] add
BigInt64ArrayandBigUint64Arraya6cca25 - [Tests] use
gopdecf7722
v1.1.3 - 2022-09-12
Commits
- [Dev Deps] update
es-abstract,es-value-fixtures,tape07ff291 - [Fix] properly check for % signs
50ac176
v1.1.2 - 2022-06-08
Fixed
- [Fix] properly validate against extra % signs
#16
Commits
- [actions] reuse common workflows
0972547 - [meta] use
npmignoreto autogenerate an npmignore file5ba0b51 - [actions] use
node/installinstead ofnode/run; usecodecovactionc364492 - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,auto-changelog,es-abstract,object-inspect,tapedc04dad - [Dev Deps] update
eslint,@ljharb/eslint-config,es-abstract,object-inspect,safe-publish-latest,tape1c14059 - [Tests] use
mock-propertyb396ef0 - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,auto-changelog,object-inspect,tapec2c758d - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,es-abstract,es-value-fixtures,object-inspect,tape29e3c09 - [actions] update codecov uploader
8cbc141 - [Dev Deps] update
@ljharb/eslint-config,es-abstract,es-value-fixtures,object-inspect,tape10b6f5c - [readme] add github actions/codecov badges
4e25400 - [Tests] use
for-eachinstead offoreachc05b957 - [Dev Deps] update
es-abstract29b05ae - [meta] use
prepublishOnlyscript for npm 7+95c285d - [Deps] update
has-symbols593cb4f - [readme] fix repo URLs
1c8305b - [Deps] update
has-symbolsc7138b6 - [Dev Deps] remove unused
has-bigintsbd63aff
v1.1.1 - 2021-02-03
Fixed
- [meta] export
./package.json#9
Commits
- [readme] flesh out the readme; use
evalmdd12f12c - [eslint] set up proper globals config
5a8c098 - [Dev Deps] update
eslint7b9a5c0
v1.1.0 - 2021-01-25
Fixed
- [Refactor] delay
Functioneval until syntax-derived values are requested#3
Commits
- [Tests] migrate tests to Github Actions
2ab762b - [meta] do not publish github action workflow files
5e7108e - [Tests] add some coverage
01ac7a8 - [Dev Deps] update
eslint,@ljharb/eslint-config,call-bind,es-abstract,tape; addcall-bind911b672 - [Refactor] rearrange evalled constructors a bit
7e7e4bf - [meta] add Automatic Rebase and Require Allow Edits workflows
0199968
v1.0.2 - 2020-12-17
Commits
- [Fix] Throw for non‑existent intrinsics
68f873b - [Fix] Throw for non‑existent segments in the intrinsic path
8325dee - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,has-bigints,object-inspect0c227a7 - [meta] do not lint coverage output
70d2419
v1.0.1 - 2020-10-30
Commits
- [Tests] gather coverage data on every job
d1d280d - [Fix] add missing dependencies
5031771 - [Tests] use
es-value-fixturesaf48765
v1.0.0 - 2020-10-29
Commits
- Implementation
bbce57c - Tests
17b4f0d - Initial commit
3153294 - npm init
fb326c4 - [meta] add Automatic Rebase and Require Allow Edits workflows
48862fb - [meta] add
auto-changelog5f28ad0 - [meta] add "funding"; create
FUNDING.ymlc2bbdde - [Tests] add
npm run lint0a84b98 - Only apps should have lockfiles
9586c75