mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-30 11:49:16 +00:00
fix: keep vacuum routes pending until a floor is chosen
Issue: #441 User-Visible: yes
This commit is contained in:
committed by
claude[bot]
parent
79e922203a
commit
fa41d2981c
@@ -8,7 +8,8 @@ import {
|
||||
} from '../test-build/vacuum-routes.js';
|
||||
import {
|
||||
newRouteId, addRoute, removeRoute, changeRouteSpace, saveRouteCalibration, convertLegacyRoutes,
|
||||
writeVacuumMatrix, planVacuumFit, calibrationTarget,
|
||||
writeVacuumMatrix, planVacuumFit, calibrationTarget, beginVacuumRouteDraft,
|
||||
chooseVacuumRouteSpace, commitVacuumRouteDraft,
|
||||
} from '../test-build/vacuum-route-edit.js';
|
||||
|
||||
const fixture = (name) => JSON.parse(readFileSync(
|
||||
@@ -275,6 +276,30 @@ test('добавление, удаление и запись матрицы ма
|
||||
assert.deepEqual(removeRoute(calibrated, 'нет такого'), calibrated);
|
||||
});
|
||||
|
||||
test('новый маршрут живёт в черновике до выбора этажа (#441 AC1)', () => {
|
||||
const existing = [route()];
|
||||
const first = beginVacuumRouteDraft('mk', [], 'floor1', 'camera.robot', 'm1');
|
||||
const second = beginVacuumRouteDraft('mk', existing, 'floor1', 'camera.robot', 'm2');
|
||||
assert.equal(first.space, 'floor1', 'первый маршрут наследует этаж дока');
|
||||
assert.equal(second.space, '', 'второй маршрут не угадывает этаж');
|
||||
assert.equal(commitVacuumRouteDraft(existing, second, spaces('floor1', 'floor2'), 'r2'), null);
|
||||
assert.equal(existing.length, 1, 'черновик не меняет маршруты');
|
||||
});
|
||||
|
||||
test('черновик материализует ровно один валидный маршрут (#441 AC2)', () => {
|
||||
const existing = [route()];
|
||||
const draft = beginVacuumRouteDraft('mk', existing, 'floor1', 'camera.robot', 'm2');
|
||||
const unknown = chooseVacuumRouteSpace(draft, 'gone', spaces('floor1', 'floor2'));
|
||||
assert.equal(unknown.space, '');
|
||||
const chosen = chooseVacuumRouteSpace(draft, 'floor2', spaces('floor1', 'floor2'));
|
||||
const committed = commitVacuumRouteDraft(existing, chosen, spaces('floor1', 'floor2'), 'r2');
|
||||
assert.deepEqual(committed, [existing[0], {
|
||||
id: 'r2', source: 'camera.robot', map_id: 'm2', space: 'floor2', calibration: null,
|
||||
}]);
|
||||
assert.equal(commitVacuumRouteDraft(committed, chosen, spaces('floor1', 'floor2'), 'r3'), null,
|
||||
'одну карту нельзя добавить дважды');
|
||||
});
|
||||
|
||||
test('конверсия легаси переносит ВСЕ матрицы или ничего (AC13)', () => {
|
||||
const marker = { source: 'camera.robot', calibration: { m1: M1, m2: M2, bad: [1, 2] } };
|
||||
let n = 0;
|
||||
|
||||
Reference in New Issue
Block a user