feat: synchronize tab titles with saved SQL file renaming (#2739)
- Bidirectional sync between SQL library and tab titles - Case-insensitive .sql extension via shared ensureSqlExtension - Revert tab title when rename persistence fails Close #2648 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
b49638ff1e
commit
184e235999
6 files changed
+166
-11
No files matched your search
@@ -0,0 +1,20 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { ensureSqlExtension, stripSqlExtension } from "@/lib/savedSql/savedSqlFileName";
|
||||
|
||||
describe("savedSqlFileName", () => {
|
||||
it("appends .sql when missing", () => {
|
||||
expect(ensureSqlExtension("report")).toBe("report.sql");
|
||||
});
|
||||
|
||||
it("preserves lowercase .sql extension", () => {
|
||||
expect(ensureSqlExtension("report.sql")).toBe("report.sql");
|
||||
});
|
||||
|
||||
it("preserves uppercase .SQL extension without double-appending", () => {
|
||||
expect(ensureSqlExtension("report.SQL")).toBe("report.SQL");
|
||||
});
|
||||
|
||||
it("strips .sql extension case-insensitively", () => {
|
||||
expect(stripSqlExtension("report.SQL")).toBe("report");
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,9 @@
|
||||
export function ensureSqlExtension(name: string): string {
|
||||
const trimmed = name.trim();
|
||||
if (!trimmed) return trimmed;
|
||||
return /\.sql$/i.test(trimmed) ? trimmed : `${trimmed}.sql`;
|
||||
}
|
||||
|
||||
export function stripSqlExtension(name: string): string {
|
||||
return name.replace(/\.sql$/i, "");
|
||||
}
|
||||
Reference in new issue
Block a user