70 lines
2.1 KiB
TypeScript
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,
|
|
);
|
|
});
|
|
});
|