UNPKG

@fboes/aerofly-custom-missions

Version:

Builder for Aerofly FS4 Custom Missions Files

47 lines (41 loc) 1.96 kB
import { AeroflyConfigurationNode, AeroflyConfigurationNodeComment } from "../node/AeroflyConfigurationNode.js"; import { assertValidAeroflyStructure, assertIncludes } from "../check/TestHelpers.js"; import { describe, it } from "node:test"; describe("AeroflyConfigurationNode", () => { const file = new AeroflyConfigurationNode("file", ""); file.append( new AeroflyConfigurationNode("tmmissions_list", "").append( new AeroflyConfigurationNode("list_tmmission_definition", "missions") .append( new AeroflyConfigurationNode("tmmission_definition", "mission") .appendChild("string8", "title", "KCCR #1: Concord / Buchanan Field") .appendChild("float64", "origin_alt", 1066.799965862401, "3500 ft MSL") .appendChild("bool", "is_featured", true) .appendChild("bool", "is_scheduled", false), ) .append( new AeroflyConfigurationNodeComment( "tmmission_definition", "mission", undefined, "Second mission", ).appendChild("string8", "title", "KCCR #2: Concord / Buchanan Field"), ), ), ); const fileString = file.toString(); const xmlString = file.toXmlString(); it("should correctly convert values", () => { assertIncludes(fileString, "[true]"); assertIncludes(fileString, "[false]"); assertIncludes(fileString, "// 3500 ft MSL"); }); it("should generate valid Aerofly structure", () => { assertValidAeroflyStructure(fileString); }); it("should correctly convert XML values", () => { assertIncludes(xmlString, ">true<"); assertIncludes(xmlString, ">false<"); assertIncludes(xmlString, "<!-- 3500 ft MSL"); }); });