mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-07 06:59:46 +00:00
+27
-2
@@ -51,12 +51,15 @@ test('issue 251 unavailable controls toast has exact singular and plural copy',
|
||||
test('Optimize distinguishes updated spaces from cleaned coordinate noise', () => {
|
||||
assert.equal(
|
||||
en['gs.optimize_changes'],
|
||||
'Model migrations: {m}; spaces updated: {c}; noisy coordinate values removed: {p}; merged real-wall fragments: {w}; virtual fragments: {s}; independent walls: {i}.',
|
||||
'Model migrations: {m}; spaces updated: {c}; noisy coordinate values removed: {p}; merged real-wall fragments: {w}; merged zero-thickness wall fragments: {s}; independent walls: {i}.',
|
||||
);
|
||||
assert.equal(
|
||||
ru['gs.optimize_changes'],
|
||||
'Миграций модели: {m}; обновлено пространств: {c}; устранён шум координат: {p}; объединено отрезков реальных стен: {w}; виртуальных: {s}; независимых: {i}.',
|
||||
'Миграций модели: {m}; обновлено пространств: {c}; устранён шум координат: {p}; объединено отрезков реальных стен: {w}; объединено отрезков стен нулевой толщины: {s}; независимых: {i}.',
|
||||
);
|
||||
assert.equal(en['gs.zero_walls_migrated'], 'Virtual wall spans converted: {n}.');
|
||||
assert.equal(ru['gs.zero_walls_migrated'], 'Преобразовано виртуальных участков: {n}.');
|
||||
assert.match(cardSource, /gs\.zero_walls_migrated/);
|
||||
assert.match(cardSource, /p: String\(r\.coordsCanonicalized\)/);
|
||||
// #229: the independent-wall counter is reported, not silently accumulated
|
||||
assert.match(cardSource, /i: String\(r\.partitionsMerged\)/);
|
||||
@@ -66,6 +69,28 @@ test('Optimize distinguishes updated spaces from cleaned coordinate noise', () =
|
||||
/d\.report\.coordsCanonicalized \+ d\.report\.latticeCoordinatesCanonicalized/);
|
||||
});
|
||||
|
||||
test('issue 306 zero-wall failures have dedicated symmetric copy', () => {
|
||||
const expected = {
|
||||
'toast.zero_wall_opening_conflict': [
|
||||
'Remove the opening on this wall segment first.',
|
||||
'Сначала удалите проём на этом участке стены.',
|
||||
],
|
||||
'toast.zero_wall_ambiguous': [
|
||||
'The wall segment is ambiguous. Simplify or adjust the junction.',
|
||||
'Не удалось однозначно выбрать участок стены. Уточните геометрию узла.',
|
||||
],
|
||||
'toast.zero_wall_migration_blocked': [
|
||||
'The space was not converted: {reason}. No data was changed.',
|
||||
'Пространство не преобразовано: {reason}. Данные не изменены.',
|
||||
],
|
||||
};
|
||||
for (const [key, [english, russian]] of Object.entries(expected)) {
|
||||
assert.equal(en[key], english);
|
||||
assert.equal(ru[key], russian);
|
||||
assert.match(cardSource, new RegExp(key.replaceAll('.', '\\.')));
|
||||
}
|
||||
});
|
||||
|
||||
test('issue 291 Optimize reports lattice cleanup separately in both languages', () => {
|
||||
assert.equal(
|
||||
en['gs.optimize_lattice_summary'],
|
||||
|
||||
@@ -47,7 +47,8 @@ const assertNoPersistedChanges = (result) => {
|
||||
for (const field of [
|
||||
'moved', 'coordsCanonicalized', 'rotated', 'removedDrafts', 'migrated',
|
||||
'glowSpacesMigrated', 'glowRoomsMigrated', 'canonicalized', 'wallsMerged',
|
||||
'spansMerged', 'partitionsMerged', 'partitionsReconciled', 'openingsRehosted',
|
||||
'legacyZeroWallsMigrated', 'spansMerged', 'partitionsMerged',
|
||||
'partitionsReconciled', 'openingsRehosted',
|
||||
'redundantDraftsRemoved',
|
||||
'wallsStraightened',
|
||||
'spaceRefsRemapped', 'roomRefsRemapped',
|
||||
@@ -596,6 +597,7 @@ test('optimizePlans migrates, aligns and canonicalises idempotently', () => {
|
||||
const sharedIds = left.wall_ids.filter((id) => right.wall_ids.includes(id));
|
||||
assert.ok(sharedIds.some((id) => first.config.spaces[0].wall_segments
|
||||
.some((segment) => segment.id === id && segment.cm === 0)));
|
||||
assert.equal(first.report.legacyZeroWallsMigrated, 1);
|
||||
assert.equal(first.config.spaces[0].walls.length, 1);
|
||||
assert.equal(first.layout.m1.x % S, 0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user