initial push
This commit is contained in:
95
src/lib/extraction/__tests__/extractFields.test.ts
Normal file
95
src/lib/extraction/__tests__/extractFields.test.ts
Normal file
@@ -0,0 +1,95 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { extractActaLookupDictionary, extractFields } from "@/lib/extraction/extractFields";
|
||||
|
||||
describe("extractFields", () => {
|
||||
it("extracts legal fields from mixed capitalization and punctuation", () => {
|
||||
const text = `
|
||||
Razon social: Treisole S.A. de C.V.
|
||||
R.F.C.: TRE-240101-AB1
|
||||
Fecha de constitucion: 15 de Marzo de 2019
|
||||
Escritura publica No. 12345
|
||||
Representante legal: Ana Torres Ramirez
|
||||
Notario Publico: Lic. Carlos Mendoza
|
||||
Domicilio fiscal:
|
||||
Av. Juarez 123, Centro, Monterrey, Nuevo Leon
|
||||
Objeto social:
|
||||
Comercializacion de alimentos y bebidas, importacion y distribucion.
|
||||
Entidad federativa: Nuevo Leon
|
||||
`;
|
||||
|
||||
const result = extractFields(text);
|
||||
|
||||
expect(result.name).toBe("Treisole S.A. de C.V");
|
||||
expect(result.rfc).toBeNull();
|
||||
expect(result.legalRepresentative).toContain("Ana Torres");
|
||||
expect(result.incorporationDate).toContain("15 de Marzo de 2019");
|
||||
expect(result.deedNumber).toBe("12345");
|
||||
expect(result.notaryName).toContain("Carlos Mendoza");
|
||||
expect(result.fiscalAddress).toContain("Monterrey");
|
||||
expect(result.businessPurpose).toContain("Comercializacion");
|
||||
expect(result.stateOfIncorporation).toContain("Nuevo Leon");
|
||||
});
|
||||
|
||||
it("avoids overcapturing legal name on sas contract headers and keeps RFC empty", () => {
|
||||
const text = `
|
||||
SAS2025858008 Denominación- TREISOLE Contrato Social de Sociedad por Acciones Simplificada
|
||||
Contrato Social de Sociedad por Acciones Simplificada que celebran MARCELO DARES BALLI.
|
||||
Primera. Denominación. La sociedad se denominará TREISOLE.
|
||||
Tercera. Domicilio. El domicilio de la sociedad será el ubicado en CALLE LAZARO GARZA AYALA NÚMERO EXTERIOR 205
|
||||
COLONIA TAMPIQUITO LOCALIDAD SAN PEDRO GARZA GARCIA MUNICIPIO SAN PEDRO GARZA GARCIA ENTIDAD FEDERATIVA NUEVO LEÓN.
|
||||
Cuarta. Duración. La duración de la sociedad será Indefinida.
|
||||
Quinta. Capital social El capital social fijo es la cantidad de 960 pesos.
|
||||
La porción variable del capital social es la cantidad de 40 pesos.
|
||||
Fecha de constitución: 25-04-04
|
||||
RFC del socio: DABM030731AU7
|
||||
`;
|
||||
|
||||
const result = extractFields(text);
|
||||
const dictionary = extractActaLookupDictionary(text);
|
||||
|
||||
expect(result.name).toBe("TREISOLE");
|
||||
expect(result.rfc).toBeNull();
|
||||
expect(result.incorporationDate).toContain("25-04-04");
|
||||
expect(result.deedNumber).toBe("SAS2025858008");
|
||||
expect(result.fiscalAddress).toContain("SAN PEDRO GARZA GARCIA");
|
||||
expect(result.stateOfIncorporation).toContain("NUEVO LEÓN");
|
||||
expect(dictionary.capitalFixed).toContain("960");
|
||||
expect(dictionary.capitalVariable).toContain("40");
|
||||
});
|
||||
|
||||
it("builds an extended lookup dictionary for company profile storage", () => {
|
||||
const text = `
|
||||
Escritura publica numero 7789.
|
||||
Tomo: 44.
|
||||
En la ciudad de Monterrey, Nuevo Leon, a los 12 de abril de 2022.
|
||||
La denominacion social sera: Comercializadora Delta S.A. de C.V.
|
||||
Duracion: indefinida.
|
||||
Capital social asciende a $100,000.00 M.N.
|
||||
Capital fijo: $50,000.00
|
||||
Capital variable: $50,000.00
|
||||
Valor nominal: $1,000.00
|
||||
Objeto social:
|
||||
Comercializacion e importacion de equipo industrial.
|
||||
Notario Publico numero 10 del estado de Nuevo Leon, Lic. Carlos Mendoza.
|
||||
Clausula de extranjeros: se consideraran como nacionales y no invocar la proteccion de su gobierno.
|
||||
`;
|
||||
|
||||
const result = extractActaLookupDictionary(text);
|
||||
|
||||
expect(result.instrumentNumber).toBe("7789");
|
||||
expect(result.protocolVolumeBook).toBe("44");
|
||||
expect(result.placeOfGranting).toContain("Monterrey");
|
||||
expect(result.companyType).toBe("SA_DE_CV");
|
||||
expect(result.capitalTotal).toContain("100,000.00");
|
||||
expect(result.notaryNumber).toBe("10");
|
||||
expect(result.foreignersClause).toBe("CLAUSULA_CALVO");
|
||||
expect(result.derivedFields.isCompanyValidlyConstituted).toBe(true);
|
||||
});
|
||||
|
||||
it("leaves missing fields as null", () => {
|
||||
const result = extractFields("Acta sin datos suficientes");
|
||||
|
||||
expect(result.rfc).toBeNull();
|
||||
expect(result.notaryName).toBeNull();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user