Import finalized Olist production orders
This commit is contained in:
30
backend/test/productionOrderCsvImportService.test.js
Normal file
30
backend/test/productionOrderCsvImportService.test.js
Normal file
@@ -0,0 +1,30 @@
|
||||
const assert = require('node:assert/strict');
|
||||
const test = require('node:test');
|
||||
|
||||
const { extractObservationFields, parseFinalizedProductionOrderCsv } = require('../services/productionOrderCsvImportService');
|
||||
|
||||
test('extractObservationFields reads Brazilian production notes without using the OP quantity as rolls', () => {
|
||||
const result = extractObservationFields(`MALHA\nFORNECEDOR: TECEBEM\nBOBINAS: 10 - 209,94KG\nRENDIMENTO: 3,6\nLOTE: 0245163`);
|
||||
|
||||
assert.deepEqual(result, {
|
||||
supplier: 'TECEBEM',
|
||||
lotCode: '0245163',
|
||||
yieldPiecesPerKg: 3.6,
|
||||
rollQuantity: 10,
|
||||
fabricKg: 209.94,
|
||||
ribKg: null
|
||||
});
|
||||
});
|
||||
|
||||
test('parseFinalizedProductionOrderCsv supports multiline observations and skips non-finalized OPs', () => {
|
||||
const csv = `id_op,numero_op,sku_produto,descricao_produto,quantidade_produzida,data_emissao,data_conclusao,situacao,observacoes,pedido_relacionado\n1,10,BLCS.PTO.G,Camiseta preta G,100,2026-08-01T00:00:00.000Z,2026-08-02T00:00:00.000Z,Finalizada,"FORNECEDOR: NEXSTAR\nRENDIMENTO: 5,44\nQUANTIDADE DE ROLOS: 30\nQUILOS DE MALHA: 577,90",PLANO-1\n2,11,BLCS.PTO.M,Camiseta preta M,100,2026-08-01,2026-08-02,Em andamento,Teste,`;
|
||||
const result = parseFinalizedProductionOrderCsv(csv);
|
||||
|
||||
assert.equal(result.totalRows, 2);
|
||||
assert.equal(result.records.length, 1);
|
||||
assert.equal(result.issues.length, 1);
|
||||
assert.equal(result.records[0].familyKey, 'BLCS');
|
||||
assert.equal(result.records[0].rollQuantity, 30);
|
||||
assert.equal(result.records[0].fabricKg, 577.9);
|
||||
assert.equal(result.records[0].yieldPiecesPerKg, 5.44);
|
||||
});
|
||||
Reference in New Issue
Block a user