mirror of
https://github.com/oven-sh/bun
synced 2026-02-14 04:49:06 +00:00
51 lines
2.0 KiB
TypeScript
51 lines
2.0 KiB
TypeScript
import { expect, test } from "bun:test";
|
|
|
|
// Test the C++ binding directly
|
|
test("JSC__addSQLQueryPerformanceEntry function creates performance entries", () => {
|
|
const initialEntryCount = performance.getEntries().length;
|
|
const initialSqlEntryCount = performance.getEntriesByType("sql-query").length;
|
|
|
|
// Try to call the C++ function directly if it's exposed
|
|
// Note: This might not work if the function isn't exposed to JS
|
|
try {
|
|
// Clear existing entries first
|
|
performance.clearMarks();
|
|
performance.clearMeasures();
|
|
|
|
const beforeCount = performance.getEntriesByType("sql-query").length;
|
|
|
|
// This test verifies that the sql-query entry type is recognized
|
|
// Even if we can't directly test the C++ binding
|
|
const sqlEntries = performance.getEntriesByType("sql-query");
|
|
expect(Array.isArray(sqlEntries)).toBe(true);
|
|
|
|
// Test that filtering by name works
|
|
const selectEntries = performance.getEntriesByName("SELECT");
|
|
expect(Array.isArray(selectEntries)).toBe(true);
|
|
|
|
// Test that the parseEntryTypeString function recognizes sql-query
|
|
const invalidEntries = performance.getEntriesByType("invalid-type");
|
|
expect(Array.isArray(invalidEntries)).toBe(true);
|
|
expect(invalidEntries.length).toBe(0);
|
|
} catch (error) {
|
|
// If direct binding access fails, just verify the type is recognized
|
|
const sqlEntries = performance.getEntriesByType("sql-query");
|
|
expect(Array.isArray(sqlEntries)).toBe(true);
|
|
}
|
|
});
|
|
|
|
test("Performance API maintains backwards compatibility", () => {
|
|
// Ensure existing performance API functionality still works
|
|
performance.mark("compatibility-test");
|
|
|
|
const markEntries = performance.getEntriesByType("mark");
|
|
expect(markEntries.length).toBeGreaterThan(0);
|
|
|
|
const specificMark = performance.getEntriesByName("compatibility-test");
|
|
expect(specificMark.length).toBeGreaterThan(0);
|
|
expect(specificMark[0].entryType).toBe("mark");
|
|
expect(specificMark[0].name).toBe("compatibility-test");
|
|
|
|
performance.clearMarks();
|
|
});
|