Tests und Mock
This commit is contained in:
91
test/mockFluidNC.test.js
Normal file
91
test/mockFluidNC.test.js
Normal file
@@ -0,0 +1,91 @@
|
||||
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);
|
||||
Reference in New Issue
Block a user