Implementa o MVP do Adaptador de Planilhas no Elo Pro.
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>
This commit is contained in:
commit
6e23f1533b
144 files changed
+19060
No files matched your search
@@ -0,0 +1,19 @@
|
||||
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");
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user