Files
continue/core/indexing/FullTextSearchCodebaseIndex.test.ts
2024-12-04 17:21:04 -08:00

70 lines
2.1 KiB
TypeScript

import { jest } from "@jest/globals";
import {
insertMockChunks,
mockPathAndCacheKey,
updateIndexAndAwaitGenerator,
} from "./test/indexing";
import { FullTextSearchCodebaseIndex } from "./FullTextSearchCodebaseIndex";
import { DatabaseConnection, SqliteDb } from "./refreshIndex";
import { IndexResultType } from "./types";
describe.skip("FullTextSearchCodebaseIndex", () => {
let index: FullTextSearchCodebaseIndex;
let db: DatabaseConnection;
async function getFts() {
return await db.all("SELECT * FROM fts");
}
async function getFtsMetadata() {
return await db.all("SELECT * FROM fts_metadata");
}
beforeEach(async () => {
db = await SqliteDb.get();
index = new FullTextSearchCodebaseIndex();
});
it("should update the index and maintain expected database state", async () => {
const mockMarkComplete = jest
.fn()
.mockImplementation(() => Promise.resolve()) as any;
await insertMockChunks();
// Compute test
await updateIndexAndAwaitGenerator(index, "compute", mockMarkComplete);
expect((await getFts()).length).toBe(1);
expect((await getFtsMetadata()).length).toBe(1);
expect(mockMarkComplete).toHaveBeenCalledWith(
[mockPathAndCacheKey],
IndexResultType.Compute,
);
// RemoveTag test - currently, we don't do anything other than mark complete
await updateIndexAndAwaitGenerator(index, "removeTag", mockMarkComplete);
expect(mockMarkComplete).toHaveBeenCalledWith(
[mockPathAndCacheKey],
IndexResultType.RemoveTag,
);
// AddTag test - currently, we don't do anything other than mark complete
await updateIndexAndAwaitGenerator(index, "addTag", mockMarkComplete);
expect(mockMarkComplete).toHaveBeenCalledWith(
[mockPathAndCacheKey],
IndexResultType.AddTag,
);
// Delete test
await updateIndexAndAwaitGenerator(index, "del", mockMarkComplete);
expect((await getFts()).length).toBe(0);
expect((await getFtsMetadata()).length).toBe(0);
expect(mockMarkComplete).toHaveBeenCalledWith(
[mockPathAndCacheKey],
IndexResultType.Delete,
);
});
});