mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-09-30 12:39:42 +02:00
fix(file-viewer): COD-341 preserve search row layout
This commit is contained in:
@@ -312,7 +312,8 @@ describe('File Viewer server search', () => {
|
||||
expect(elements.fileBrowserTree.innerHTML).toContain('class="file-tree-size">1.5 KB</span>');
|
||||
expect(elements.fileBrowserTree.innerHTML).toContain('📘');
|
||||
expect(elements.fileBrowserTree.innerHTML).toContain('📁');
|
||||
expect(elements.fileBrowserTree.innerHTML).toContain('src/widget.ts');
|
||||
expect(elements.fileBrowserTree.innerHTML).toContain('data-path="src/widget.ts"');
|
||||
expect(elements.fileBrowserTree.innerHTML).not.toContain('class="file-tree-path"');
|
||||
expect(elements.fileBrowserTree.innerHTML).toContain(
|
||||
'href="/api/sessions/session%2FA/file-raw?path=src%2Fwidget.ts&download=true"'
|
||||
);
|
||||
@@ -409,6 +410,40 @@ describe('File Viewer server search', () => {
|
||||
}
|
||||
});
|
||||
|
||||
it('keeps query B rendered when its response beats an already-launched query A', async () => {
|
||||
const { app, elements, pending } = loadPanel();
|
||||
app.filterFileBrowser('query A');
|
||||
await vi.advanceTimersByTimeAsync(250);
|
||||
app.filterFileBrowser('query B');
|
||||
await vi.advanceTimersByTimeAsync(250);
|
||||
expect(pending).toHaveLength(2);
|
||||
|
||||
pending[1].reply.resolve(
|
||||
response(
|
||||
successfulData({
|
||||
matches: [{ name: 'result-B.ts', path: 'result-B.ts', type: 'file' }],
|
||||
matchCount: 1,
|
||||
})
|
||||
)
|
||||
);
|
||||
await vi.advanceTimersByTimeAsync(0);
|
||||
expect(elements.fileBrowserTree.innerHTML).toContain('result-B.ts');
|
||||
|
||||
pending[0].reply.resolve(
|
||||
response(
|
||||
successfulData({
|
||||
matches: [{ name: 'result-A.ts', path: 'result-A.ts', type: 'file' }],
|
||||
matchCount: 1,
|
||||
})
|
||||
)
|
||||
);
|
||||
await vi.advanceTimersByTimeAsync(0);
|
||||
|
||||
expect(elements.fileBrowserTree.innerHTML).toContain('result-B.ts');
|
||||
expect(elements.fileBrowserTree.innerHTML).not.toContain('result-A.ts');
|
||||
expect(app._fileBrowserState.matches[0].name).toBe('result-B.ts');
|
||||
});
|
||||
|
||||
it('clears a blank query and restores the compatible cached tree immediately without fetching', () => {
|
||||
const { app, elements, pending } = loadPanel();
|
||||
app.fileBrowserData = {
|
||||
|
||||
Reference in New Issue
Block a user