O módulo usa a identidade Supabase, isola cada workspace e registra storage, TTL, runner e biblioteca XLSX como decisões ainda abertas. Co-authored-by: Cursor <cursoragent@cursor.com>
20 lines
966 B
TypeScript
20 lines
966 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { parseCsvText } from "@/domain/spreadsheet-adapter/csv";
|
|
import { gridFromRows } from "@/domain/spreadsheet-adapter/csv";
|
|
import { transformRows } from "@/domain/spreadsheet-adapter/transform";
|
|
import { buildCsv } from "@/infra/export/tabular";
|
|
|
|
describe("capacidade", () => {
|
|
it("transforma 50.000 linhas úteis sem perder registros", () => {
|
|
const lines = ["Origem"];
|
|
for (let index = 0; index < 50_000; index += 1) lines.push(String(index));
|
|
const grid = gridFromRows(parseCsvText(lines.join("\n")), 1, ["CSV"], "CSV");
|
|
expect(grid.rows).toHaveLength(50_000);
|
|
const output = transformRows(["Destino"], grid.headers, grid.rows, [{ sourceColumn: "Origem", modelColumn: "Destino" }]);
|
|
expect(output).toHaveLength(50_000);
|
|
expect(output[49_999][0]).toBe("49999");
|
|
const csv = buildCsv(["Destino"], output.slice(0, 2));
|
|
expect(csv.toString("utf8")).toContain("0");
|
|
});
|
|
});
|