Files
gridline/desktop/src/stores/dbViewerStore.diff.test.ts
T
adrianbonpin 5607773299
Release / windows (push) Successful in 17m5s
Release / linux (push) Successful in 24m10s
0.8.0: MariaDB + PlanetScale, TimescaleDB, multi-result sets, streaming export, schema diff (#27)
2026-09-11 17:20:41 +00:00

31 lines
1.0 KiB
TypeScript

import { describe, it, expect, beforeEach } from "vitest";
import { useDbViewerStore } from "./dbViewerStore";
import type { DiffItem } from "../lib/types";
const item = (name: string, sql: string, destructive: boolean): DiffItem => ({
object_type: "table",
name,
kind: "added",
detail: [],
sync_sql: [sql],
destructive,
});
describe("addDiffItems", () => {
beforeEach(() => useDbViewerStore.getState().clearChanges());
it("stages one ddl change per non-destructive item, skipping destructive and empty", () => {
const items = [
item("users", "CREATE TABLE users (id int);", false),
item("old", "DROP TABLE old;", true),
{ ...item("weird", "", false), sync_sql: [] },
];
useDbViewerStore.getState().addDiffItems(items);
const queue = useDbViewerStore.getState().changesQueue;
expect(queue).toHaveLength(1);
expect(queue[0].type).toBe("ddl");
expect(queue[0].sql).toBe("CREATE TABLE users (id int);");
expect(queue[0].description).toContain("users");
});
});