fix: validate firm email consistently before bid output
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {bidFirmFields,bidFirmIssues} from '../src/services/bidFirmFields.js';
|
||||
import {preparationSummary} from '../src/services/preparationSummary.js';
|
||||
const firm=Object.fromEntries(bidFirmFields.map(f=>[f.k,f.k==='eposta'?'teklif+lab@example.test':'QA metin']));
|
||||
test('filled but malformed email blocks both firm form and saved preparation summary',()=>{
|
||||
assert.deepEqual(bidFirmIssues(firm),[]);
|
||||
for(const eposta of ['yanlış','firma@','@firma.com','a b@firma.com','a@@firma.com']){
|
||||
const firma={...firm,eposta};const issues=bidFirmIssues(firma);
|
||||
assert.equal(issues.length,1);assert.equal(issues[0].k,'eposta');
|
||||
const summary=preparationSummary({bidDraft:{firma}},{documents:[]});
|
||||
assert.ok(summary.issues.some(x=>x.target==='firm:eposta'&&x.text===issues[0].message));
|
||||
}
|
||||
assert.deepEqual(bidFirmIssues({...firm,eposta:' teklif@example.test '}),[]);
|
||||
});
|
||||
test('whitespace and non-scalar required values are incomplete; optional registry field stays optional',()=>{
|
||||
for(const field of bidFirmFields.filter(f=>f.zorunlu)){
|
||||
for(const bad of [' ',null,{},[]])assert.ok(bidFirmIssues({...firm,[field.k]:bad}).some(x=>x.k===field.k));
|
||||
}
|
||||
assert.deepEqual(bidFirmIssues({...firm,sicilNo:''}),[]);
|
||||
});
|
||||
Reference in New Issue
Block a user