fix(sqlserver): suggest database names in query completion
This commit is contained in:
1 parent
3285cb21a4
commit
79873443e4
9 files changed
+284
-45
No files matched your search
@@ -725,6 +725,32 @@ describe("connectionStore completion assistant", () => {
|
||||
expect(listDatabases).toHaveBeenCalledTimes(52);
|
||||
});
|
||||
|
||||
it("invalidates cached completion databases for a connection", async () => {
|
||||
const listDatabases = vi
|
||||
.fn()
|
||||
.mockResolvedValueOnce([{ name: "Archive" }])
|
||||
.mockResolvedValueOnce([{ name: "Reporting" }]);
|
||||
|
||||
vi.doMock("@/lib/backend/tauriRuntime", () => ({ isTauriRuntime: () => false }));
|
||||
vi.doMock("@/lib/backend/api", () => ({
|
||||
checkConnectionHealth: vi.fn().mockResolvedValue(undefined),
|
||||
listDatabases,
|
||||
}));
|
||||
|
||||
const { useConnectionStore } = await import("@/stores/connectionStore");
|
||||
const store = useConnectionStore();
|
||||
store.connections = [sqlServerConnection()];
|
||||
store.connectedIds.add("sqlserver-1");
|
||||
|
||||
expect(await store.listCompletionDatabases("sqlserver-1")).toEqual(["Archive"]);
|
||||
expect(await store.listCompletionDatabases("sqlserver-1")).toEqual(["Archive"]);
|
||||
|
||||
store.invalidateCompletionCache("sqlserver-1");
|
||||
|
||||
expect(await store.listCompletionDatabases("sqlserver-1")).toEqual(["Reporting"]);
|
||||
expect(listDatabases).toHaveBeenCalledTimes(2);
|
||||
});
|
||||
|
||||
it("evicts old completion schema entries", async () => {
|
||||
const listSchemas = vi.fn(async (_connectionId: string, database: string) => [`schema_${database}`]);
|
||||
|
||||
|
||||
@@ -2272,6 +2272,7 @@ export const useConnectionStore = defineStore("connection", () => {
|
||||
|
||||
function invalidateCompletionCache(connectionId: string, database?: string) {
|
||||
invalidateMetadataCaches({ connectionId, database });
|
||||
if (database == null) delete completionDatabasesCache.value[connectionId];
|
||||
const cachePrefix = database == null ? `${connectionId}:` : `${connectionId}:${database}:`;
|
||||
const exactCacheKey = database == null ? null : `${connectionId}:${database}`;
|
||||
for (const key of Object.keys(completionTablesCache.value)) {
|
||||
|
||||
Reference in new issue
Block a user