Files
Aislo/resources/tester/test_384_6_save_one_line.py
T
eomsangdonandClaude Opus 5.5 4046178a5d fix(498-3 저장 모양): 노선 그대로 [저장] = 잠금 없이 뒤에서 · 저장 중 [저장] 막음 · 저장 중 [>] = 앞 저장 끝 뒤 확정 · 결과 한 줄 토스트 걷음 — 요구 298-3 · 302 D1
- 잠금 = 확정 · 노선 모양 바뀐 [저장]만 · 그 밖 [저장]은 뒤에서 · 끝나면 「저장했습니다」
- 줄 세움 queueDesignSave — 저장 중 [저장] = 「이전 수정을 저장 중입니다…」 + 막음 · 저장 중 확정 = 잠그고 기다린 뒤 지금 화면 · 서버 저장 도중 안 끊음
- 저장 도중 고침 = 조각 정리 · 깨끗한 표 건너뜀(초안 남아 다음 저장에서 다시 나감)
- 노선 바뀐 [저장] = 옛 페이지 두 보기 헛 다시 읽기 걷음 · 떠남 표 · 알림만 뒤 다시 세움
- B06 [>] = 고친 것 없음 + 단계 2 · 3 COMPLETE 면 저장 없이 이동 · 그 밖 496 확정 그대로
- 노선 저장 알림 = 따라감 실패 · 새 교차 관 한 줄만(routeSaveSummary · 노선 밖 되풀이 지움)
- 시험 test_298_3_save_shape 새로 · 옛 요약 · 잠금 단언 고쳐 씀

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 00:08:12 +09:00

48 lines
1.8 KiB
Python

"""PLAN 386-6 sub7 — [저장] 본문 보기 무관(B05 만 연 길 지움).
못박는 것
- [저장] · [확정] 둘 다 횡단 보기를 (숨긴 채라도) 세움 → 횡단 본문 = 횡단 보기 몫 한 벌(`crossSaveParts`).
- 종단 보기 몫엔 횡단 본문이 없음 — 옛 「횡단 보기를 세운 적 없이 [저장]」 캐시 패치 길(saveCachedCrossPatches) 지움.
- 횡단 보기를 못 세우면 반쪽 저장 대신 실패 알림.
화면(B05 만 연 [저장] 본문 = B06 다녀온 본문)은 PLAN 386-6 검증 줄.
"""
from __future__ import annotations
from pathlib import Path
ROOT = Path(__file__).resolve().parents[2]
def _read(rel: str) -> str:
return (ROOT / rel).read_text(encoding="utf-8")
def _save_body() -> str:
shared = _read("A00_Common/design/design_shared.ts")
start = shared.index("export async function saveSharedDesign")
return shared[start : shared.index("\n}\n", shared.index("async function saveOnce(", start))]
def test_저장도_횡단_보기를_세움():
body = _save_body()
assert 'await shared.ensureView("cross");' in body
assert 'if (confirm) await shared.ensureView("cross")' not in body
# 472-6 — 횡단 본문 = 횡단 보기 조각(`crossPart`) · 한 본문 창구에 실림
assert " crossPart," in body
assert "profileSave?.cross" not in body
def test_못_세우면_실패_알림():
body = _save_body()
assert "if (!crossPart) {" in body
assert '"B06_Profile_Save_Failed"' in body and '"B06_Profile_Confirm_Failed"' in body
def test_종단_보기_몫엔_횡단_본문_없음():
actions = _read("B05_Profile/B05_Profile_UI_Page_Actions.ts")
start = actions.index("export function profileSaveParts(")
parts = actions[start:]
assert "saveCachedCrossPatches" not in actions
assert "\n cross: " not in parts and "crossPart" not in parts