mirror of
https://github.com/usebruno/bruno.git
synced 2026-07-07 22:18:33 +00:00
feat: persist scroll across tabs (#7695)
* fix: persist scroll * fix: persist scroll * chore: style * fix: remove persisted variabled from localstorage on boot * fix: persist scroll in request tabs * fix: persist scroll in folder tabs * fix: hooks for container and editor scrolls * fix: persist scroll position in response tabs * fix: persist scroll for different request bodies * fix: persist scroll for collection tabs * fix: test cases * test: scroll persists tests * tests: resolved coderabbit comments for tests * tests: resolved coderabbit comments for tests * fix: remove only * fix: test cases * fix: flaky create collection path as name * move scrollbar tests * test cases * test cases * test cases * test cases * test cases * fix: moved redundant code to common useTrackScroll function * chore: spaces * fix: move usetrackscroll to hook * chore: cleanup un-needed setTimeout * fix: linting issues * chore: example fix * fix: test cases * fix: test cases * fix: flaky scroll tests cases * chore: revert prop name change * chore: blank commit * chore: blank commit --------- Co-authored-by: shubh-bruno <shubh-bruno@shubh-bruno.local> Co-authored-by: Sid <siddharth@usebruno.com>
This commit is contained in:
@@ -77,10 +77,10 @@ const createCollection = async (page, collectionName: string, collectionLocation
|
||||
const createCollectionModal = page.locator('.bruno-modal-card').filter({ hasText: 'Create Collection' });
|
||||
await createCollectionModal.waitFor({ state: 'visible', timeout: 5000 });
|
||||
|
||||
await createCollectionModal.getByLabel('Name').fill(collectionName);
|
||||
// Fill location FIRST — some modals auto-derive the name from the path,
|
||||
// so filling name after location ensures it isn't overwritten.
|
||||
const locationInput = createCollectionModal.getByLabel('Location');
|
||||
if (await locationInput.isVisible()) {
|
||||
// Location input can be read-only; drop the attribute so fill can type
|
||||
await locationInput.evaluate((el) => {
|
||||
const input = el as HTMLInputElement;
|
||||
input.removeAttribute('readonly');
|
||||
@@ -88,10 +88,16 @@ const createCollection = async (page, collectionName: string, collectionLocation
|
||||
});
|
||||
await locationInput.fill(collectionLocation);
|
||||
}
|
||||
const nameInput = createCollectionModal.getByLabel('Name');
|
||||
await nameInput.clear();
|
||||
await nameInput.fill(collectionName);
|
||||
// Verify the name is correct before creating
|
||||
await expect(nameInput).toHaveValue(collectionName, { timeout: 2000 });
|
||||
await createCollectionModal.getByRole('button', { name: 'Create', exact: true }).click();
|
||||
|
||||
await createCollectionModal.waitFor({ state: 'detached', timeout: 15000 });
|
||||
await page.waitForTimeout(200);
|
||||
// Wait for the collection name to appear in the sidebar before proceeding
|
||||
await page.locator('#sidebar-collection-name').filter({ hasText: collectionName }).waitFor({ state: 'visible', timeout: 5000 });
|
||||
await openCollection(page, collectionName);
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user