fix(est): retain unchanged JDL content
This commit is contained in:
@@ -37,3 +37,24 @@ def test_jdl_basic_tables_use_native_separators_encoding_and_preserve_direct_mon
|
||||
assert result["next"]["tables"]["Wonga"][-1]["Cost"] == 1080
|
||||
assert result["next"]["options"]["AutoCalc"] is False
|
||||
assert result["warnings"]
|
||||
|
||||
|
||||
def test_unchanged_import_preserves_original_jdl_and_edited_work_is_not_silently_discarded():
|
||||
project = run("math", "EstNative.empty()")
|
||||
script = """const fs=require('fs'),j=require('./tools/est-test/jdl.cjs'),a=require('./tools/est-test/archive.cjs'),s=require('./tools/est-test/server.cjs');
|
||||
const empty=JSON.parse(fs.readFileSync(0,'utf8'));
|
||||
const original=a.pack(new Map([['Global.ini',Buffer.from('[BASIC]\\r\\n')],
|
||||
['Main.txt',Buffer.from('0\\tExample\\t02\\x05\\r\\n')],['extension.bin',Buffer.from([1,2,3,4])]]));
|
||||
const p=j.markOriginal(s.calculate(j.read(original,empty)));p.id='0123456789abcdef01234567';
|
||||
const unchanged=j.output(s.calculate(structuredClone(p)));
|
||||
p.name='Changed';const changed=j.output(s.calculate(p)),files=a.unpack(changed.bytes);
|
||||
process.stdout.write(JSON.stringify({unchanged:original.equals(unchanged.bytes),changed:!original.equals(changed.bytes),
|
||||
name:files.get('Main.txt').toString().includes('Changed'),warning:changed.warnings.length>0}));"""
|
||||
result = json.loads(
|
||||
subprocess.check_output(
|
||||
["node", "-e", script],
|
||||
input=json.dumps(project, ensure_ascii=False).encode("utf-8"),
|
||||
cwd=ROOT,
|
||||
).decode("utf-8")
|
||||
)
|
||||
assert result == {"unchanged": True, "changed": True, "name": True, "warning": True}
|
||||
|
||||
Reference in New Issue
Block a user