FileBrowser Cursor !
This commit is contained in:
@@ -52,7 +52,7 @@ test('Playback: stepping liefert driver-native (Radian) Zeilen, Grenzen werfen',
|
||||
await expect(a.next()).rejects.toThrow(); // über das Ende → CURSOR_OUT_OF_RANGE
|
||||
});
|
||||
|
||||
test('Cursor liegt im .json-Sidecar, .gcode bleibt sauber (kein !-Marker)', async () => {
|
||||
test('Cursor liegt als ;! in der .gcode-Datei, store.read() liefert saubere Zeilen', async () => {
|
||||
await store.write('cur_1', {
|
||||
name: 'Cur',
|
||||
lines: [
|
||||
@@ -62,16 +62,20 @@ test('Cursor liegt im .json-Sidecar, .gcode bleibt sauber (kein !-Marker)', asyn
|
||||
});
|
||||
const a = new ActiveState();
|
||||
await a.load('cur_1');
|
||||
await a.next(); // cursor → 1 (kein Persist)
|
||||
await a.appendLine('G4 P0.1'); // persistiert, cursor → 2
|
||||
await a.next(); // cursor → 1, persistiert als ;! im .gcode
|
||||
await a.appendLine('G4 P0.1'); // cursor → 2, persistiert
|
||||
|
||||
// Rohe .gcode-Datei: genau eine Zeile mit '!', und zwar an Index 2
|
||||
const rawText = await fsp.readFile(path.join(tmp, 'cur_1.gcode'), 'utf8');
|
||||
const rawLines = rawText.split('\n').filter(Boolean);
|
||||
const markedLines = rawLines.filter(units.hasCursorMarker);
|
||||
expect(markedLines).toHaveLength(1);
|
||||
expect(rawLines.indexOf(markedLines[0])).toBe(2);
|
||||
|
||||
// store.read() liefert saubere Zeilen (kein '!') und korrekten Cursor
|
||||
const prog = await store.read('cur_1');
|
||||
// .gcode-Zeilen sind sauber — kein '!'-Marker
|
||||
const marked = prog.lines.filter(units.hasCursorMarker);
|
||||
expect(marked).toHaveLength(0);
|
||||
// Cursor steht im .json-Sidecar
|
||||
expect(prog.cursor).toBe(2);
|
||||
// Korrekte Zeile am Ende
|
||||
expect(prog.lines.filter(units.hasCursorMarker)).toHaveLength(0);
|
||||
expect(units.splitComment(prog.lines[2]).code).toBe('G4 P0.1');
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user