chore: cleanup tracked junk + commit remaining test fixes

.gitignore:
- Add .duckdb semantic index binaries
- Add .axiom/temp/ pytest artifacts
- Add e2e_*.png screenshots
- Remove tracked package-lock.json (already in gitignore)

Untrack junk (git rm --cached):
- 3 duckdb binary index files
- 18 pytest temp artifacts
- 12 e2e screenshots
- package-lock.json

Test fixes (decomposition follow-up):
- executor test mock paths
- orchestrator test mock paths
- preview test mock paths
- orthogonal fixes test mock paths
- git_manager integration test
- settings_page integration test
- settings-utils fix
This commit is contained in:
2026-05-17 19:22:09 +03:00
parent f872e610a9
commit de87739eab
51 changed files with 180 additions and 5427 deletions

View File

@@ -1,41 +1,42 @@
// #region GitManagerUnfinishedMergeIntegrationTest:Module [TYPE Function]
// @SEMANTICS: git-manager, unfinished-merge, dialog, integration-test
// @PURPOSE: Protect unresolved-merge dialog contract in GitManager pull flow.
// @LAYER: UI Tests
// @RELATION: DEPENDS_ON -> [GitManager]
import { describe, it, expect } from 'vitest';
import fs from 'node:fs';
import path from 'node:path';
const COMPONENT_PATH = path.resolve(
process.cwd(),
'src/components/git/GitManager.svelte',
);
const MANAGER_PATH = path.resolve(process.cwd(), 'src/components/git/GitManager.svelte');
const UTILS_PATH = path.resolve(process.cwd(), 'src/services/git-utils.js');
const HANDLER_PATH = path.resolve(process.cwd(), 'src/components/git/useGitManager.js');
const DIALOG_PATH = path.resolve(process.cwd(), 'src/components/git/GitMergeDialog.svelte');
describe('GitManager unfinished merge dialog contract', () => {
it('keeps 409 unfinished-merge detection and WebUI dialog recovery flow in pull handler', () => {
const source = fs.readFileSync(COMPONENT_PATH, 'utf-8');
const utils = fs.readFileSync(UTILS_PATH, 'utf-8');
const handlers = fs.readFileSync(HANDLER_PATH, 'utf-8');
const manager = fs.readFileSync(MANAGER_PATH, 'utf-8');
expect(source).toContain('Number(error?.status) !== 409');
expect(source).toContain("payload.error_code !== 'GIT_UNFINISHED_MERGE'");
expect(source).toContain('function openUnfinishedMergeDialogFromError(error)');
expect(source).toContain('showUnfinishedMergeDialog = true;');
expect(source).toContain('const handledByDialog = openUnfinishedMergeDialogFromError(e);');
expect(source).toContain('await loadMergeRecoveryState();');
expect(utils).toContain("error_code !== 'GIT_UNFINISHED_MERGE'");
expect(handlers).toContain('showUnfinishedMergeDialog: true');
expect(handlers).toContain('this.openUnfinishedMergeDialogFromError(e)');
expect(handlers).toContain('await this.loadMergeRecoveryState();');
expect(manager).toContain('h.handlePull');
expect(manager).toContain('h.loadMergeRecoveryState');
});
it('renders unresolved-merge dialog details and web recovery actions', () => {
const source = fs.readFileSync(COMPONENT_PATH, 'utf-8');
const source = fs.readFileSync(DIALOG_PATH, 'utf-8');
expect(source).toContain('{#if showUnfinishedMergeDialog && unfinishedMergeContext}');
expect(source).toContain('{#if show && unfinishedMergeContext}');
expect(source).toContain('unfinishedMergeContext.repositoryPath');
expect(source).toContain('unfinishedMergeContext.currentBranch');
expect(source).toContain('unfinishedMergeContext.commands.join');
expect(source).toContain('handleCopyUnfinishedMergeCommands');
expect(source).toContain('handleOpenConflictResolver');
expect(source).toContain('handleAbortUnfinishedMerge');
expect(source).toContain('handleContinueUnfinishedMerge');
expect(source).toContain('onCopyCommands');
expect(source).toContain('onOpenConflictResolver');
expect(source).toContain('onAbortMerge');
expect(source).toContain('onContinueMerge');
expect(source).toContain('$t.git?.unfinished_merge?.copy_commands');
});
});