Files
appRobotControlScara/test/mockFluidNC.test.js
2026-04-22 13:47:51 +02:00

92 lines
2.3 KiB
JavaScript

const MockFluidNC = require("./helpers/mockFluidNC");
const TestFluidNCClient = require("./helpers/TestFluidNCClient");
describe("FluidNCClient with MockFluidNC", () => {
let mock;
let client;
beforeAll(async () => {
// Mock-Server starten
mock = new MockFluidNC("localhost", 9003);
await mock.start();
});
afterAll(async () => {
// Mock-Server stoppen - das stoppt alle Verbindungen
await mock.stop();
});
beforeEach(() => {
// Neuen Test-Client für jeden Test erstellen
client = new TestFluidNCClient({
host: "localhost",
port: 9003
});
});
afterEach(() => {
// Client sauber schließen
if (client) {
client.close();
}
});
test("sollte sich mit Mock-Server verbinden", async () => {
// Warten bis verbunden
await new Promise(resolve => setTimeout(resolve, 300));
expect(mock.getConnectedClientCount()).toBeGreaterThan(0);
});
test("sollte Status Request senden", async () => {
// Warten bis verbunden
await new Promise(resolve => setTimeout(resolve, 300));
const messagePromise = new Promise((resolve) => {
client.onMessage((msg) => {
resolve(msg);
});
});
client.requestStatus();
const response = await messagePromise;
expect(response).toContain("Idle");
});
test("sollte Jog Command verarbeiten", async () => {
// Warten bis verbunden
await new Promise(resolve => setTimeout(resolve, 300));
const messagePromise = new Promise((resolve) => {
client.onMessage((msg) => {
resolve(msg);
});
});
client.jog(true, "X", 10);
const response = await messagePromise;
expect(response.trim()).toBe("ok");
});
test("sollte G-Code Command verarbeiten", async () => {
// Warten bis verbunden
await new Promise(resolve => setTimeout(resolve, 300));
const messagePromise = new Promise((resolve) => {
client.onMessage((msg) => {
resolve(msg);
});
});
client.sendGcode("G0 X10 Y20");
const response = await messagePromise;
expect(response.trim()).toBe("ok");
// Zusätzlich prüfen, dass der korrekte Befehl empfangen wurde
const receivedCommands = mock.getReceivedCommands();
expect(receivedCommands).toContain("G0 X10 Y20");
});
}, 10000);