Update Healer Man server
This commit is contained in:
1 parent
6114a2295f
commit
69809f7228
593 files changed
+903643
-40774
No files matched your search
@@ -0,0 +1,62 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
|
||||
import {
|
||||
parseNativeWaterBuildArgs,
|
||||
selectNativeWaterChunkKeys,
|
||||
} from "./native-water-build-utils.mjs";
|
||||
|
||||
test("water builder parses recipe, source and output options without losing paths", () => {
|
||||
assert.deepEqual(parseNativeWaterBuildArgs([
|
||||
"--recipe", "recipes/the-origin.json",
|
||||
"--source-root", "F:/rom source",
|
||||
"--output-root", "runewaker-export-work/the-origin/native-water-source",
|
||||
"--audit-cache-root", "runewaker-export-work/the-origin",
|
||||
]), {
|
||||
help: false,
|
||||
recipe: "recipes/the-origin.json",
|
||||
"source-root": "F:/rom source",
|
||||
"output-root": "runewaker-export-work/the-origin/native-water-source",
|
||||
"audit-cache-root": "runewaker-export-work/the-origin",
|
||||
});
|
||||
assert.throws(() => parseNativeWaterBuildArgs(["--typo", "x"]), /Unknown option/);
|
||||
assert.throws(() => parseNativeWaterBuildArgs(["--recipe", "one", "--recipe", "two"]), /only be supplied once/);
|
||||
});
|
||||
|
||||
test("water builder binds a ground selection to the identical WDB and uses exact coordinates", () => {
|
||||
const sourceWdbSha256 = "a".repeat(64);
|
||||
const selected = selectNativeWaterChunkKeys({
|
||||
wdbChunkKeys: [0x00020002, 0x00030004, 0x00040005],
|
||||
sourceWdbSha256,
|
||||
groundManifest: {
|
||||
source: { wdbSha256: sourceWdbSha256 },
|
||||
chunks: [
|
||||
{ id: "chunk-x2-z2", coordinate: { x: 2, z: 2 } },
|
||||
{ key: 0x00030004 },
|
||||
],
|
||||
},
|
||||
});
|
||||
assert.deepEqual(selected.selectedKeys, [0x00020002, 0x00030004]);
|
||||
assert.equal(selected.selection.chunkCount, 2);
|
||||
assert.throws(() => selectNativeWaterChunkKeys({
|
||||
wdbChunkKeys: [0x00020002],
|
||||
sourceWdbSha256,
|
||||
groundManifest: { source: { wdbSha256: "b".repeat(64) }, chunks: [{ coordinate: { x: 2, z: 2 } }] },
|
||||
}), /does not match/);
|
||||
assert.throws(() => selectNativeWaterChunkKeys({
|
||||
wdbChunkKeys: [0x00020002],
|
||||
sourceWdbSha256,
|
||||
groundManifest: { source: { wdbSha256: sourceWdbSha256 }, chunks: [{ id: "chunk-x2-z2" }, { id: "chunk-x2-z2" }] },
|
||||
}), /repeats chunk/);
|
||||
assert.throws(() => selectNativeWaterChunkKeys({
|
||||
wdbChunkKeys: [0x00020002],
|
||||
sourceWdbSha256,
|
||||
groundManifest: { source: { wdbSha256: sourceWdbSha256 }, chunks: [{ coordinate: { x: 9, z: 9 } }] },
|
||||
}), /absent from the source WDB/);
|
||||
});
|
||||
|
||||
test("water builder defaults to every WDB chunk when no ground manifest is supplied", () => {
|
||||
const result = selectNativeWaterChunkKeys({ wdbChunkKeys: [9, 3, 5], sourceWdbSha256: "c".repeat(64) });
|
||||
assert.deepEqual(result.selectedKeys, [3, 5, 9]);
|
||||
assert.equal(result.selection.kind, "all-wdb-chunks");
|
||||
});
|
||||
Reference in new issue
Block a user