fix(tabs): keep saved sql file names independent

This commit is contained in:
二丫讲梵
2026-09-23 14:42:57 +08:00
committed by GitHub
parent d5a05a9884
commit bd32919542
2 changed files with 9 additions and 35 deletions
+8 -21
View File
@@ -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([