fix(compliance): Improve compliance

This commit is contained in:
2025-05-26 10:17:50 +00:00
parent 113ae22c42
commit e7c3a774a3
26 changed files with 2435 additions and 2010 deletions

View File

@ -1,8 +1,6 @@
import { tap, expect } from '@git.zone/tstest/tapbundle';
import * as plugins from '../../../ts/plugins.ts';
import { EInvoice } from '../../../ts/classes.xinvoice.ts';
import { CorpusLoader } from '../../helpers/corpus.loader.ts';
import { PerformanceTracker } from '../../helpers/performance.tracker.ts';
import * as plugins from '../../plugins.ts';
import { EInvoice } from '../../../ts/index.ts';
const testTimeout = 300000; // 5 minutes timeout for conversion processing
@ -10,9 +8,7 @@ const testTimeout = 300000; // 5 minutes timeout for conversion processing
// Tests detection and reporting of data loss during format conversions
// including field mapping limitations, unsupported features, and precision loss
tap.test('CONV-06: Data Loss Detection - Field Mapping Loss', async (tools) => {
const startTime = Date.now();
tap.test('CONV-06: Data Loss Detection - Field Mapping Loss', async () => {
// Test data loss detection during conversions with rich data
const richDataUblXml = `<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
@ -219,8 +215,8 @@ tap.test('CONV-06: Data Loss Detection - Field Mapping Loss', async (tools) => {
try {
const invoice = new EInvoice();
const parseResult = await invoice.fromXmlString(richDataUblXml);
expect(parseResult).toBeTruthy();
await invoice.loadXml(richDataUblXml);
expect(invoice).toBeTruthy();
// Extract original data elements for comparison
const originalData = {
@ -238,9 +234,9 @@ tap.test('CONV-06: Data Loss Detection - Field Mapping Loss', async (tools) => {
taxDetails: richDataUblXml.includes('TaxSubtotal')
};
tools.log('Original UBL data elements detected:');
console.log('Original UBL data elements detected:');
Object.entries(originalData).forEach(([key, value]) => {
tools.log(` ${key}: ${value}`);
console.log(` ${key}: ${value}`);
});
// Test conversion and data loss detection