mirror of
https://github.com/t8y2/dbx.git
synced 2026-10-19 16:16:45 +00:00
fix(tabs): keep saved sql file names independent
This commit is contained in:
+8
-21
@@ -883,7 +883,7 @@ test("usage updates do not invalidate the saved SQL database tree", async () =>
|
||||
assert.ok(store.version > contentVersion);
|
||||
});
|
||||
|
||||
test("renaming a saved SQL tab syncs the library file name", async () => {
|
||||
test("renaming a saved SQL tab keeps the library file name independent", async () => {
|
||||
const file: SavedSqlFile = {
|
||||
id: "sql-1",
|
||||
connectionId: "conn-1",
|
||||
@@ -905,9 +905,9 @@ test("renaming a saved SQL tab syncs the library file name", async () => {
|
||||
assert.equal(queryStore.renameTab(tabId, " Revenue checks "), true);
|
||||
await Promise.resolve();
|
||||
|
||||
assert.equal(queryStore.tabs.find((item) => item.id === tabId)?.title, "Revenue checks.sql");
|
||||
assert.equal(savedSqlStore.getFile("sql-1")?.name, "Revenue checks.sql");
|
||||
assert.equal(apiMock.saveSavedSqlFile.mock.calls.at(-1)?.[0].name, "Revenue checks.sql");
|
||||
assert.equal(queryStore.tabs.find((item) => item.id === tabId)?.title, "Revenue checks");
|
||||
assert.equal(savedSqlStore.getFile("sql-1")?.name, "draft.sql");
|
||||
assert.equal(apiMock.saveSavedSqlFile.mock.calls.length, 0);
|
||||
});
|
||||
|
||||
test("renaming a saved SQL tab keeps uppercase .SQL extension without double-appending", async () => {
|
||||
@@ -937,30 +937,17 @@ test("renaming a saved SQL tab keeps uppercase .SQL extension without double-app
|
||||
assert.equal(apiMock.saveSavedSqlFile.mock.calls.length, 0);
|
||||
});
|
||||
|
||||
test("renaming a saved SQL tab reverts title when persistence fails", async () => {
|
||||
const file: SavedSqlFile = {
|
||||
id: "sql-1",
|
||||
connectionId: "conn-1",
|
||||
name: "draft.sql",
|
||||
database: "db",
|
||||
sql: "SELECT 1;",
|
||||
sqlLoaded: true,
|
||||
createdAt: "2026-06-27T00:00:00.000Z",
|
||||
updatedAt: "2026-06-27T00:00:00.000Z",
|
||||
};
|
||||
test("renaming a saved SQL tab does not persist or revert the library file", async () => {
|
||||
const file: SavedSqlFile = { id: "sql-1", connectionId: "conn-1", name: "draft.sql", database: "db", sql: "SELECT 1;", sqlLoaded: true, createdAt: "2026-06-27T00:00:00.000Z", updatedAt: "2026-06-27T00:00:00.000Z" };
|
||||
apiMock.loadSavedSqlLibrary.mockResolvedValue({ folders: [], files: [file] });
|
||||
|
||||
const savedSqlStore = useSavedSqlStore();
|
||||
await savedSqlStore.initFromStorage();
|
||||
|
||||
const queryStore = useQueryStore();
|
||||
const tabId = queryStore.openSavedSql(file);
|
||||
|
||||
apiMock.saveSavedSqlFile.mockRejectedValueOnce(new Error("disk full"));
|
||||
assert.equal(queryStore.renameTab(tabId, "broken"), true);
|
||||
await vi.waitFor(() => queryStore.tabs.find((item) => item.id === tabId)?.title === "draft.sql");
|
||||
|
||||
assert.equal(queryStore.tabs.find((item) => item.id === tabId)?.title, "broken");
|
||||
assert.equal(savedSqlStore.getFile("sql-1")?.name, "draft.sql");
|
||||
assert.equal(apiMock.saveSavedSqlFile.mock.calls.length, 0);
|
||||
});
|
||||
|
||||
test.each([
|
||||
|
||||
Reference in New Issue
Block a user