test(fls): the Java oracle opens files as FILIUS does (M8)
FlsOracle now loads through SzenarioVerwaltung.laden, FILIUS's full loading path: the archive unpacked, the project's own applications copied where FILIUS's class loader finds them, then the configuration. --network keeps the configuration-only load (netzwerkLaden). On the corpus this changes two files: anwendung_komplett.fls and multicast_server.fls then have their own applications (Accumulator, Broadcast) installed. Java's views of the written and the exported files are byte-equal to before: Java-FILIUS 2.14 opens our exports, with the classes they carry, as it opens a file of its own, and sees what it sees in the original. Until own applications on hosts are written (B2), the reader, writer and export tests leave them out (test/ownApplications.ts); a test checks that only those two files are touched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,7 @@ import {
|
||||
type JavaEmailAccount,
|
||||
} from '../src/index.js';
|
||||
import { EXPECTED_WARNINGS } from './expectedWarnings.js';
|
||||
import { hasOwnApplications, OWN_APPLICATION_FILES, withoutOwnApplications } from './ownApplications.js';
|
||||
import { javaEmail, javaEmailAccount } from './javaEmailNames.js';
|
||||
|
||||
const corpusRoot = join(dirname(fileURLToPath(import.meta.url)), '../../../corpus');
|
||||
@@ -250,11 +251,18 @@ describe('corpus: the topology as Java loads it', () => {
|
||||
const topology = readTopology(values);
|
||||
const expected = javaView[name] as { nodes: { bounds: number[] | null }[] };
|
||||
|
||||
expect(asJavaView(topology, expected.nodes.map((node) => node.bounds))).toEqual(withoutTemplateFiles(expected, topology));
|
||||
expect(asJavaView(topology, expected.nodes.map((node) => node.bounds))).toEqual(
|
||||
withoutTemplateFiles(withoutOwnApplications(expected), topology),
|
||||
);
|
||||
expect(topology.warnings).toEqual(EXPECTED_WARNINGS[name] ?? []);
|
||||
});
|
||||
}
|
||||
|
||||
it('leaves out own applications only where Java installs some', () => {
|
||||
const files = flsFiles(corpusRoot).map((file) => relative(corpusRoot, file));
|
||||
expect(files.filter((name) => hasOwnApplications(javaView[name]))).toEqual(OWN_APPLICATION_FILES);
|
||||
});
|
||||
|
||||
it("a router's constructor makes the same files in every corpus file", () => {
|
||||
for (const javaClass of ['Vermittlungsrechner', 'Gateway']) {
|
||||
const templates = [...(templateChildren.get(javaClass) ?? [])].map((text) => JSON.parse(text) as { directory?: string }[]);
|
||||
|
||||
Reference in New Issue
Block a user