mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-09-21 05:52:35 +08:00
Visual regression tests for PermissionDock dropdown states (#7146)
* test(kilo-vscode): add screenshot tests for PermissionDock dropdown states * ci: add stale baseline cleanup for permission-dock-dropdown snapshots * test: set explicit 420×720 viewport in permission-dock-dropdown tests * ci: guard permission-dock-dropdown cleanup against missing spec file * ci: add deep glob for permission-dock-dropdown snapshot path filter * fix: use dispatchEvent for all rule toggle clicks to bypass tooltip overlay * chore: update kilo-vscode visual regression baselines * fix(kilo-vscode): formatting * ci: guard git add for permission-dock-dropdown snapshots with existence check --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
github-actions[bot]
parent
1efbd9b2e4
commit
4115c1d7b0
@@ -25,6 +25,8 @@ jobs:
|
||||
- "packages/kilo-vscode/webview-ui/**"
|
||||
- "packages/kilo-vscode/.storybook/**"
|
||||
- "packages/kilo-vscode/tests/visual-regression*"
|
||||
- "packages/kilo-vscode/tests/permission-dock-dropdown*"
|
||||
- "packages/kilo-vscode/tests/permission-dock-dropdown.spec.ts-snapshots/**"
|
||||
- ".github/workflows/visual-regression.yml"
|
||||
- name: Check if PR is from a fork
|
||||
id: fork-check
|
||||
@@ -302,10 +304,42 @@ jobs:
|
||||
"
|
||||
working-directory: packages/kilo-vscode
|
||||
|
||||
- name: Remove stale baselines for permission-dock-dropdown tests
|
||||
run: |
|
||||
node -e "
|
||||
const fs = require('fs'), path = require('path');
|
||||
const specPath = 'tests/permission-dock-dropdown.spec.ts';
|
||||
const expected = new Set();
|
||||
if (fs.existsSync(specPath)) {
|
||||
const spec = fs.readFileSync(specPath, 'utf8');
|
||||
const re = /toHaveScreenshot\(\[([^\]]+)\]\)/g;
|
||||
let m;
|
||||
while ((m = re.exec(spec)) !== null) {
|
||||
const parts = m[1].split(',').map(s => s.trim().replace(/[\"']/g, ''));
|
||||
expected.add(parts.join('/').replace(/\.png$/, '-chromium-linux.png'));
|
||||
}
|
||||
}
|
||||
const dir = 'tests/permission-dock-dropdown.spec.ts-snapshots';
|
||||
if (!fs.existsSync(dir)) process.exit(0);
|
||||
for (const sub of fs.readdirSync(dir)) {
|
||||
const sdir = path.join(dir, sub);
|
||||
if (!fs.statSync(sdir).isDirectory()) continue;
|
||||
for (const file of fs.readdirSync(sdir)) {
|
||||
const rel = sub + '/' + file;
|
||||
if (file.endsWith('.png') && !expected.has(rel)) {
|
||||
console.log('Removing stale baseline:', rel);
|
||||
fs.unlinkSync(path.join(sdir, file));
|
||||
}
|
||||
}
|
||||
}
|
||||
"
|
||||
working-directory: packages/kilo-vscode
|
||||
|
||||
- name: Check for baseline changes (fork PRs)
|
||||
if: needs.check-paths.outputs.is_fork == 'true'
|
||||
run: |
|
||||
git add packages/kilo-vscode/tests/visual-regression.spec.ts-snapshots/
|
||||
[ -d packages/kilo-vscode/tests/permission-dock-dropdown.spec.ts-snapshots ] && git add packages/kilo-vscode/tests/permission-dock-dropdown.spec.ts-snapshots/
|
||||
if git diff --cached --quiet; then
|
||||
echo "No visual regression detected."
|
||||
else
|
||||
@@ -320,6 +354,7 @@ jobs:
|
||||
if: needs.check-paths.outputs.is_fork != 'true' && steps.check-baseline-commit-vscode.outputs.is_baseline_update == 'true'
|
||||
run: |
|
||||
git add packages/kilo-vscode/tests/visual-regression.spec.ts-snapshots/
|
||||
[ -d packages/kilo-vscode/tests/permission-dock-dropdown.spec.ts-snapshots ] && git add packages/kilo-vscode/tests/permission-dock-dropdown.spec.ts-snapshots/
|
||||
if git diff --cached --quiet; then
|
||||
echo "Baselines are stable after auto-update."
|
||||
else
|
||||
@@ -339,6 +374,7 @@ jobs:
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||
git add packages/kilo-vscode/tests/visual-regression.spec.ts-snapshots/
|
||||
[ -d packages/kilo-vscode/tests/permission-dock-dropdown.spec.ts-snapshots ] && git add packages/kilo-vscode/tests/permission-dock-dropdown.spec.ts-snapshots/
|
||||
if git diff --cached --quiet; then
|
||||
echo "No new baselines — nothing to commit."
|
||||
echo "changed=false" >> "$GITHUB_OUTPUT"
|
||||
|
||||
Reference in New Issue
Block a user