92 lines
2.3 KiB
JavaScript
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);
|