Repository navigation
feat(create-bestax): Add Visual Regression Testing and Synchronized Versioning - #95
Merged
Merged
Conversation
…ersioning - Add 17 parallel test scenarios for all template variations - Implement E2E tests with screenshot comparison - Add daily GitHub Actions workflow - Configure visual regression with 0.2 threshold and 100px tolerance - Test responsive layouts across desktop, tablet, and mobile - Improve test coverage from 97.08% to 99.02% - Implement synchronized versioning between bulma-ui and create-bestax - Both packages now maintain identical version numbers - Sync baseline version to 2.3.3 Closes #94
allxsmith
force-pushed
the
feat/94-visual-regression-testing
branch
from
October 16, 2025 22:56
ea8851b to
b937f84
Compare
allxsmith
force-pushed
the
feat/94-visual-regression-testing
branch
from
October 16, 2025 23:16
be5f9f5 to
8ead9ac
Compare
…to avoid conflicts
- Keep logo and title on same line across all screen sizes (removed flex-direction: column on mobile) - Standardize button spacing by reducing GitHub buttons gap from 1.5rem to 1rem for consistency
- Fix React Hooks rules-of-hooks violations in 5 components: * File.tsx: Use prefixedClassNames for conditional alignment and icons * Control.tsx: Use prefixedClassNames for conditional icon rendering * Card.tsx: Use prefixedClassNames in renderHeader, renderFooter, and CardHeader * Message.tsx: Use prefixedClassNames for conditional message sections * Modal.tsx: Use prefixedClassNames for legacy API rendering - Update ESLint configuration: * Add test-apps/** to ignore patterns to prevent linting scaffolded apps * Add create-bestax/test-results/** to ignore patterns - Fix create-bestax lint script: * Change from 'eslint .' to 'eslint src e2e/tests e2e/utils --ext .ts,.tsx' * Prevents linting of test-results and other generated files - Add create-bestax/.gitignore to exclude test artifacts All changes ensure React Hooks are called unconditionally at component top level by using the non-hook prefixedClassNames(classPrefix, ...) function for conditional rendering, while calling useConfig() once at the top level. Resolves ESLint hanging issue where it was attempting to lint thousands of files in test-apps directory.
Create custom GitHub Action that uses GitHub API to create verified commits. This replaces git CLI commits with API-based commits that are automatically signed by GitHub's web-flow GPG key, satisfying branch protection requirements. Uses only GitHub's official actions/github-script action - no third-party dependencies.
…ction The glob module is not available in actions/github-script environment. Replace with native find command for file pattern matching.
Extract base directory from glob pattern before running find command. This allows find to search subdirectories like app.spec.ts-snapshots/.
allxsmith
force-pushed
the
feat/94-visual-regression-testing
branch
from
October 17, 2025 00:11
8d3d159 to
a626d20
Compare
Contributor
|
🎉 This PR is included in version 2.4.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Contributor
|
🎉 This PR is included in version 1.2.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Contributor
|
🎉 This PR is included in version 1.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
allxsmith
added a commit
that referenced
this pull request
Aug 28, 2026
Two gaps Copilot found in the field sanitizer, both real. The credential "defang" was worse than doing nothing. Entity-encoding the underscore in a credential-shaped match left `ghs_...` as `ghs_...`, which GitHub renders and copies back as the original token - and because it ran before findCredentialLeak, it also hid the value from the exact-value comparison against the job's own secrets. So a live GITHUB_TOKEN in a title would have been published, defeating the check added to catch exactly that. Sanitizing a secret was the wrong instinct: the caller REFUSES to publish a body carrying one, and that only works while the value survives intact. Removed; both the exact-value and shape checks see it again. Escaping `<`/`>` did not cover Markdown structure. CommonMark decodes character references inside an explicit link destination, so `[click](https://evil.example)` still rendered a live link, and `` a tracking beacon under bestaxbot - the cross-reference silence step 7 claims was not delivered. Link and image delimiters are now escaped, backslashes FIRST so that model text of `\[` cannot become `\\[` and reopen the delimiter, and GFM's bare `www.` autolink (a raw scan that decodes no entities) gets its own break. An ordinary `[Refactor] ...` title still reads correctly. Also, two comments that no longer described their mechanism: - findMarkerComment's JSDoc still said it searches back for the latest marker comment with a parseable target. It stops at the latest marker comment either way and returns null for a retraction, which is the whole point of the change - a reader following the old wording would reintroduce the fall-through. - The triage checkout said the job "never runs project code" while the render step executes scripts/render-triage-comment.mjs beside both tokens. The boundary that actually holds is narrower and now stated: the code is pinned to the default branch, so no PR author can substitute their own.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR implements comprehensive visual regression testing for create-bestax and introduces synchronized versioning between bulma-ui and create-bestax packages.
create-bestax)@allxsmith/bestax-bulma)Related Issue(s)
Closes #94
Type of Change
Changes
Visual Regression Testing
Synchronized Versioning
Checklist
Screenshots / Demos
Playwright test infrastructure with 17 parallel scenarios testing all create-bestax template variations.
Additional Context
Benefits
Files Added
.github/workflows/visual-regression.ymlcreate-bestax/e2e/directory with tests, config, and utilitiesVERSIONING.mddocumentation