@agentics.org/sparc2
Version:
SPARC 2.0 - Autonomous Vector Coding Agent + MCP. SPARC 2.0, vectorized AI code analysis, is an intelligent coding agent framework built to automate and streamline software development. It combines secure execution environments, and version control into a
148 lines (120 loc) • 4.54 kB
text/typescript
import { assertEquals, assertExists } from "https://deno.land/std@0.203.0/testing/asserts.ts";
import {
clearVectorStore,
type DiffEntry,
indexDiffEntry,
searchDiffEntries,
searchLogEntries,
type VectorSearchResult,
vectorStoreLog,
} from "./vectorStore.ts";
import { type LogEntry } from "../logger.ts";
// Mock console.debug to capture calls
let debugLogs: string[] = [];
const originalConsoleDebug = console.debug;
const originalConsoleError = console.error;
function setupMocks() {
debugLogs = [];
console.debug = (...args: unknown[]) => {
debugLogs.push(args.map((arg) => String(arg)).join(" "));
};
console.error = (...args: unknown[]) => {
// Suppress error messages in tests
};
}
function restoreMocks() {
console.debug = originalConsoleDebug;
console.error = originalConsoleError;
}
Deno.test("vectorStoreLog stores log entries", async () => {
setupMocks();
try {
const logEntry: LogEntry = {
timestamp: new Date().toISOString(),
level: "info",
message: "Test log message",
metadata: { test: true },
};
await vectorStoreLog(logEntry);
// Verify that console.debug was called with the expected message
// Find the relevant debug message
const relevantLog = debugLogs.find((log) => log.includes("Vector store: Storing log entry"));
assertExists(relevantLog, "Expected debug log about storing log entry was not found");
// Check that the debug message contains expected information
assertEquals(relevantLog.includes("Test log message"), true);
assertEquals(relevantLog.includes("info"), true);
} finally {
restoreMocks();
}
});
Deno.test("indexDiffEntry stores diff entries", async () => {
setupMocks();
try {
const diffEntry: DiffEntry = {
id: "test-id",
file: "test-file.ts",
diff: "- old line\n+ new line",
metadata: { test: true },
};
await indexDiffEntry(diffEntry);
// Verify that console.debug was called with the expected message
// Find the relevant debug message
const relevantLog = debugLogs.find((log) => log.includes("Vector store: Indexing diff entry"));
assertExists(relevantLog, "Expected debug log about indexing diff entry was not found");
// Check that the debug message contains expected information
assertEquals(relevantLog.includes("test-id"), true);
assertEquals(relevantLog.includes("test-file.ts"), true);
} finally {
restoreMocks();
}
});
Deno.test("searchDiffEntries returns empty array for now", async () => {
setupMocks();
try {
const results = await searchDiffEntries("test query");
// Verify that console.debug was called with the expected message
// Find the relevant debug message
const relevantLog = debugLogs.find((log) =>
log.includes("Vector store: Searching for diff entries")
);
assertExists(relevantLog, "Expected debug log about searching diff entries was not found");
// Check that the debug message contains expected information
assertEquals(relevantLog.includes("test query"), true);
// Verify that the results are an empty array
assertEquals(results, []);
} finally {
restoreMocks();
}
});
Deno.test("searchLogEntries returns empty array for now", async () => {
setupMocks();
try {
const results = await searchLogEntries("test query");
// Verify that console.debug was called with the expected message
// Find the relevant debug message
const relevantLog = debugLogs.find((log) =>
log.includes("Vector store: Searching for log entries")
);
assertExists(relevantLog, "Expected debug log about searching log entries was not found");
// Check that the debug message contains expected information
assertEquals(relevantLog.includes("test query"), true);
// Verify that the results are an empty array
assertEquals(results, []);
} finally {
restoreMocks();
}
});
Deno.test("clearVectorStore clears the vector store", async () => {
setupMocks();
try {
await clearVectorStore();
// Verify that console.debug was called with the expected message
// Find the relevant debug message
const relevantLog = debugLogs.find((log) => log.includes("Vector store: Clearing all entries"));
assertExists(relevantLog, "Expected debug log about clearing vector store was not found");
// Check that the debug message contains expected information
assertEquals(relevantLog.includes("Clearing all entries"), true);
} finally {
restoreMocks();
}
});