feat(est): import basic JDL unit details
This commit is contained in:
@@ -58,3 +58,27 @@ def test_unchanged_import_preserves_original_jdl_and_edited_work_is_not_silently
|
||||
).decode("utf-8")
|
||||
)
|
||||
assert result == {"unchanged": True, "changed": True, "name": True, "warning": True}
|
||||
|
||||
|
||||
def test_basic_jdl_unit_price_parts_import_with_recorded_costs_and_warn_for_special_parts():
|
||||
project = run("math", "EstNative.empty()")
|
||||
script = """const fs=require('fs'),j=require('./tools/est-test/jdl.cjs'),a=require('./tools/est-test/archive.cjs'),schema=require('./tools/est-test/jdl-schema.json'),s=require('./tools/est-test/server.cjs');
|
||||
const empty=JSON.parse(fs.readFileSync(0,'utf8'));
|
||||
const table=(name,rows)=>Buffer.from(rows.map(r=>schema[name].map(f=>r[f.name]??(f.kind===6?'0':'')).join('\\t')+'\\x05\\r\\n').join(''));
|
||||
const common={F_CODE:'U1',F_CODE1:'M1',F_DES:'material',F_QQTY:2,F_MPRICE:100,F_MCOST:200,F_LOADBM:'T',F_SAVEBM:'T',F_SPROPER:'0',F_KWAN:'0',F_CLASS:'0'};
|
||||
const files=new Map([['Global.ini',Buffer.from('[BASIC]')],['Main.txt',Buffer.from('0\\tSample\\t02\\x05\\r\\n')],
|
||||
['m.txt',table('m.txt',[{F_CODE:'M1',F_DES:'material',F_MPRICE:100}])],
|
||||
['unit.txt',table('unit.txt',[{F_CODE:'U1',F_DES:'unit',F_MPRICE:200}])],
|
||||
['unitpart.txt',table('unitpart.txt',[{...common,F_SEQ:'1'},{...common,F_SEQ:'2',F_SPROPER:'1'}])]]);
|
||||
const out=s.calculate(j.read(a.pack(files),empty));process.stdout.write(JSON.stringify({rows:out.tables.HeadMainDat,warnings:out.importWarnings}));"""
|
||||
result = json.loads(
|
||||
subprocess.check_output(
|
||||
["node", "-e", script],
|
||||
input=json.dumps(project, ensure_ascii=False).encode("utf-8"),
|
||||
cwd=ROOT,
|
||||
).decode("utf-8")
|
||||
)
|
||||
header, detail = result["rows"]
|
||||
assert header["Index"] == 1 and header["TC"] == 200
|
||||
assert detail["LinkIndex"] == 5 and detail["GN"] == 2 and detail["GC"] == 200
|
||||
assert any("특수 구성" in warning for warning in result["warnings"])
|
||||
|
||||
Reference in New Issue
Block a user