Add validation test for foliage mask references and ranges in terrain
This commit is contained in:
@@ -9,6 +9,7 @@ import {
|
|||||||
createSceneDocumentFromProject,
|
createSceneDocumentFromProject,
|
||||||
createEmptyProjectDocument
|
createEmptyProjectDocument
|
||||||
} from "../../src/document/scene-document";
|
} from "../../src/document/scene-document";
|
||||||
|
import { createTerrain, createTerrainFoliageMask } from "../../src/document/terrains";
|
||||||
import { validateSceneDocument } from "../../src/document/scene-document-validation";
|
import { validateSceneDocument } from "../../src/document/scene-document-validation";
|
||||||
import { BUNDLED_FOLIAGE_PROTOTYPES } from "../../src/foliage/bundled-foliage-manifest";
|
import { BUNDLED_FOLIAGE_PROTOTYPES } from "../../src/foliage/bundled-foliage-manifest";
|
||||||
import {
|
import {
|
||||||
@@ -116,6 +117,40 @@ describe("foliage document foundations", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("validates terrain foliage mask layer references and ranges", () => {
|
||||||
|
const document = createEmptySceneDocument();
|
||||||
|
const terrain = createTerrain({
|
||||||
|
id: "terrain-invalid-foliage-mask",
|
||||||
|
sampleCountX: 2,
|
||||||
|
sampleCountZ: 2,
|
||||||
|
foliageMasks: {
|
||||||
|
"missing-foliage-layer": createTerrainFoliageMask({
|
||||||
|
layerId: "missing-foliage-layer",
|
||||||
|
resolutionX: 2,
|
||||||
|
resolutionZ: 2,
|
||||||
|
values: [0, 0.25, 0.5, 1]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
document.terrains[terrain.id] = {
|
||||||
|
...terrain,
|
||||||
|
foliageMasks: {
|
||||||
|
"missing-foliage-layer": {
|
||||||
|
...terrain.foliageMasks["missing-foliage-layer"]!,
|
||||||
|
values: [0, 2, 0.5, 1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(validateSceneDocument(document).errors).toEqual(
|
||||||
|
expect.arrayContaining([
|
||||||
|
expect.objectContaining({ code: "missing-terrain-foliage-mask-layer" }),
|
||||||
|
expect.objectContaining({ code: "invalid-terrain-foliage-mask-value" })
|
||||||
|
])
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it("validates custom project-asset LOD references", () => {
|
it("validates custom project-asset LOD references", () => {
|
||||||
const document = createEmptySceneDocument();
|
const document = createEmptySceneDocument();
|
||||||
const prototype = createFoliagePrototype({
|
const prototype = createFoliagePrototype({
|
||||||
|
|||||||
Reference in New Issue
Block a user