feat(copy): 코핑의 끝단 높이 h1, 테이퍼 높이 h2, Level 폭을 복사 항목에 추가

- COPY_ITEMS에 coping-h1, coping-h2, level-width 추가 (기본 해제)
- 코핑 부재의 복사 항목에 포함, 바뀐 값이 있으면 기본으로 체크
- 테스트 갱신 및 h1·Level 폭 기본 체크 테스트 추가

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-10-27 16:56:12 +09:00
1 parent 7314da639b
commit 5f3ea8d56f
3 files changed
+11 -4

No files matched your search

+6 -2
View File
@@ -43,7 +43,7 @@ describe('selectedTargets (선택한 대상만)', () => {
describe('copyItemsFor (부재 선택에 해당하는 복사 항목)', () => {
it('coping copies only the coping items', () => {
expect(copyItemsFor('coping')).toEqual(['coping-width', 'coping-length']);
expect(copyItemsFor('coping')).toEqual(['coping-width', 'coping-length', 'coping-h1', 'coping-h2', 'level-width']);
});
it('확대기초 · 말뚝 copies only the pile items', () => {
@@ -61,7 +61,7 @@ describe('copyItemsFor (부재 선택에 해당하는 복사 항목)', () => {
it('every copy item belongs to exactly one member', () => {
const all = (['bearing', 'coping', 'column', 'footing', 'ground'] as const).flatMap((m) => copyItemsFor(m));
expect([...all].sort()).toEqual(['coping-length', 'coping-width', 'ground-position', 'pile-length', 'pile-rows']);
expect([...all].sort()).toEqual(['coping-h1', 'coping-h2', 'coping-length', 'coping-width', 'ground-position', 'level-width', 'pile-length', 'pile-rows']);
});
});
@@ -81,6 +81,10 @@ describe('copyItemsWithOverrides (기준 교각에서 되돌리기가 표시된
expect(copyItemsWithOverrides(source({ pileLengthMm: base.pileLengthMm + 100 }))).toEqual(['pile-length']);
});
it('selects the coping h1, h2 and Level 폭 items when those values changed', () => {
expect(copyItemsWithOverrides(source({ copingH1Mm: base.copingH1Mm + 1, levelWidthMm: base.levelWidthMm + 1 }))).toEqual(['coping-h1', 'level-width']);
});
it('ignores a changed value that no copy item carries (groundEl)', () => {
expect(copyItemsWithOverrides(source({ groundEl: base.groundEl + 0.5 }))).toEqual([]);
});