Editor settings, SSH/SSL runtime, data import + table-menu loose ends (#7)
* feat: editor settings model + typed clamped defaults (Task 1) * feat: carry SSH config + ssh_password to backend DbConfig (Task 2) * feat: Change enum bulk/drop/empty + type-specific change payload builder (Task 3) * feat: csv parser + shared export util (Task 4) * feat: rustls TLS connector factory with modes + client auth (Task 5) * feat: real SSH tunnel manager (testable backend) + pool eviction hook (Task 6) * feat: table DDL fetch (sqlite + pg_dump arg builder) (Task 7) * feat: keychain SSH secrets + connection delete purge + tunnel lifecycle (Task 8) * feat: real SSH tunnel + TLS connect path for postgres/mysql (Task 9) * feat: execute_change bulk/drop/empty + get_table_ddl command (Task 10) * feat: fetch SSH secrets into dbConnect + save on connection form (Task 11) * feat: Editor settings tab UI (Task 12) * feat: QueryEditor applies editor settings live (Task 13) * feat: ImportDialog with CSV/JSON preview + column mapping (Task 14) * feat: table-menu export/empty/delete/import + queue labels + payload builder (Task 15) * fix: error sanitization, encrypted-key guard, row-indexed import errors, caps (Task 16) * docs: mark Editor Settings, SSH/SSL runtime, Data Import, table-menu loose ends shipped (Task 17) * feat: auto-refresh schema tree after schema-modifying SQL (query + queue drop) * fix: use theme-consistent red classes for danger menu items (text-error was undefined) * feat: changes queue as tab-bar popover + amber pending border * feat: redesign changes popover (visual/SQL toggle, cards, footer actions, Cmd+S) * refactor: drop per-card status label from changes popover cards * feat: green completion indicator on committed cards + auto-close tabs of dropped tables * docs: changes queue popover UX + auto schema refresh statuses
This commit is contained in:
@@ -15,6 +15,7 @@ import type {
|
||||
TableNode,
|
||||
GraphColumn,
|
||||
Relationship,
|
||||
Settings,
|
||||
} from "./types";
|
||||
|
||||
describe("ActiveView", () => {
|
||||
@@ -97,6 +98,13 @@ describe("Connection", () => {
|
||||
});
|
||||
|
||||
describe("ConnectionInput", () => {
|
||||
it("accepts ssh_password", () => {
|
||||
const input: ConnectionInput = {
|
||||
name: "x", db_type: "postgresql", host: "h", port: 5432, ssh_password: "ssh-pw",
|
||||
};
|
||||
expect(input.ssh_password).toBe("ssh-pw");
|
||||
});
|
||||
|
||||
it("accepts all SSH/SSL fields", () => {
|
||||
const input: ConnectionInput = {
|
||||
name: "Test",
|
||||
@@ -430,4 +438,18 @@ describe("Schema graph types", () => {
|
||||
};
|
||||
expect(col.fk_ref).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe("Settings", () => {
|
||||
it("includes the five editor option fields", () => {
|
||||
const s: Settings = {
|
||||
confirm_before_delete: true, default_folder_id: null, theme: "dark",
|
||||
font_size: "medium", default_ports: {}, tag_order: null, table_refresh_rate: 0,
|
||||
table_page_size: 50, shortcuts: {}, accent_color: "#2563EB",
|
||||
editor_font_size: 13, editor_font_family: "Space Mono",
|
||||
editor_word_wrap: "off", editor_minimap: false, editor_tab_size: 4,
|
||||
};
|
||||
expect(s.editor_font_size).toBe(13);
|
||||
expect(s.editor_word_wrap).toBe("off");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user