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.
v2.0.3 - 2024-02-19
Commits
- add types
e28f0d5 - [meta] use
npmignoreto autogenerate an npmignore filef68ec13 - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,auto-changelog,tape70abff7 - [actions] update rebase action to use reusable workflow
6e1356e - [Dev Deps] update
@ljharb/eslint-config,aud,npmignore,tapec00d4ab - [meta] add
sideEffectsflag9c45539
v2.0.2 - 2021-12-10
Commits
- [actions] reuse common workflows
ece923d - [actions] use
node/installinstead ofnode/run; usecodecovaction3a26f43 - [meta] do not publish workflow files
2cea0c2 - [readme] add github actions/codecov badges; update URLs
0c0be3e - [Dev Deps] update
eslint,@ljharb/eslint-config,safe-publish-latest,tapea93d16e - [meta] create FUNDING.yml
b4f425e - [actions] update codecov uploader
7999db3 - [Dev Deps] update
eslint,@ljharb/eslint-config,auto-changelog,safe-publish-latest,tape140e4d9 - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,tape23a8b6d - [readme] add actions and codecov badges
fe92126 - [readme] fix repo URLs
50c428e - [Dev Deps] update
eslint,@ljharb/eslint-config,tape688155f - [meta] use
prepublishOnlyscript for npm 7+83171f9 - [actions] update workflows
e9823db
v2.0.1 - 2020-12-04
Commits
- [Tests] use shared travis-ci configs
5b92482 - [Tests] up to
nodev11.7,v10.15,v9.11,v8.15,v7.10,v6.16,v5.12,v4.9; usenvm install-latest-npm; fix test scripts0f5d2f8 - [Tests] migrate tests to Github Actions
b80f05a - [Tests] remove
jscs7ccaf41 - [meta] add missing changelog
992bdde - [readme] fix repo URLs; remove defunct badges
80fd18d - [Tests] run
nycon all testsdf26f14 - Update
tape,jscs,eslint,@ljharb/eslint-configd7723aa - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,auto-changelog,tape9fdaabe - [Dev Deps] update
eslint,@ljharb/eslint-config,covert,tapef07eeb2 - [Dev Deps] update
tape,jscs,eslint,@ljharb/eslint-configbd5c751 - [actions] add automatic rebasing / merge commit blocking
5666a91 - [meta] add
auto-changelogf70fb2b - [actions] add "Allow Edits" workflow
2b040a8 - [Dev Deps] update
eslint,@ljharb/eslint-config,tape; addsafe-publish-latest09e2e53 - [Tests] use
npm auditinstead ofnsp7df2669 - [Tests] up to
io.jsv3.3,nodev4.14ff97c5 - [Dev Deps] update
eslint,@ljharb/eslint-config,aud,auto-changelog9e8cb7b - [Dev Deps] update
jscs,eslint,@ljharb/eslint-config,nsp70b9888 - [Dev Deps] update
jscs59d0c42 - Add
npm run securityeb418ed - [Dev Deps] update
eslint,@ljharb/eslint-config,tape86a758d - Only apps should have lockfiles
a0ab621 - [Tests] use
npx audinstead ofnspornpm auditwith hoops5c51349 - [meta] add
fundingfield1d0b2f4 - [actions] switch Automatic Rebase workflow to
pull_request_targetevent9b12367 - [Dev Deps] update
auto-changelog,tape6d98b8d - [Dev Deps] Update
tape,eslinta258cdb - [Dev Deps] update
auto-changelog; addaud2ca2afb - Test up to
io.jsv3.01254ae8 - [Dev Deps] update
auto-changelog4b54722 - [Tests] only audit prod deps
86d298b - [Dev Deps] update
tape3a47e27 - Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG.
128d9bd
v2.0.0 - 2015-07-24
Commits
- Update
tape,eslint; use my personal sharedeslintconfig.648d002 - Add
npm run eslint5a52d80 - Using my standard jscs.json file
5a667d9 - Adding
npm run lint9a85ed9 - Update
tape,covert,jscsc6cd3a6 - Update
eslinte9c9b6e - Test on latest
io.js2f7c8a9 - Adding license and downloads badges
717087a - Remove Number type coercion.
481295d - Test up to
io.jsv2.1139a84a - Update
eslint2f5fbfb - Update
eslint53cb4c5 - Test on
io.jsv2.298a1824 - All grade A-supported
node/iojsversions now ship with annpmthat understands^.772d6cd - Run
travis-citests oniojsandnodev0.12; speed up builds; allow 0.8 failures.3e6147e - Use SVG badges instead of PNG
d986cb4 - Update
tape,jscs9f9d7e7 - Update
jscs079eaf6 - Update
tape,jscscffe3fc - Update
tape,jscs3a16616 - Use consistent quotes
9509a81 - Test on
io.jsv2.4a9150a3 - Test on
io.jsv2.336d7acf - Lock covert to v1.0.0.
29d8917 - Updating jscs
fe09c8a - Updating jscs
5877bc7 - Running linter as part of tests
9e77756 - Updating covert
520a695
v1.0.0 - 2014-08-08
Commits
v0.1.1 - 2014-05-13
Merged
- Simplify code
#1
Commits
- Adding a trailing newline
61fb37f
v0.1.0 - 2014-05-13
Commits
- Make sure old and unstable nodes don't break Travis
f627215 - Updating deps
b502f48 - Oops, negative numbers were negative zero!
746cb97 - Updating covert
99ef4ed - Updating tape
ee9cfc2 - Testing on node 0.6 again
6a9bf0a