Merge pull request 'feat/plan-analyze-timing/main' (#63) from feat/plan-analyze-timing/main into master

Reviewed-on: #63
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
This commit was merged in pull request #63.
This commit is contained in:
2026-09-18 00:52:27 +00:00
15 changed files with 756 additions and 84 deletions
+5 -3
View File
@@ -74,7 +74,7 @@ test('領取鎖的四種狀態各自交代了下一步,含放行那一種', ()
});
test('缺標籤是前置條件,不混進領取鎖的四種狀態裡', () => {
const table = phase1.slice(phase1.indexOf('| 狀態'), phase1.indexOf('碼錶一律由使用者自己停'));
const table = phase1.slice(phase1.indexOf('| 狀態'), phase1.indexOf('鎖以外還有一個前置條件'));
assert.equal(table.includes('LABEL_NOT_FOUND'), false, '它不是鎖的狀態,別讓四種變五種');
assert.match(phase1, /LABEL_NOT_FOUND/, '但仍要交代它,否則使用者不知道怎麼辦');
});
@@ -96,9 +96,11 @@ test('被碼錶擋下時要說明停錶不會動到工作樹', () => {
assert.match(phase1, /以為停錶等於放棄那顆工作包/, '要說明不講清楚的後果');
});
test('碼錶只由使用者自己停,並說明為什麼不代勞', () => {
assert.match(phase1, /由使用者自己停/);
test('別顆議題上的錶只由使用者自己停,並說明為什麼不代勞', () => {
assert.match(phase1, /別顆議題上的錶一律由使用者自己停/);
assert.match(phase1, /工時記錯地方/);
// 這一道自己起的那一支要自己停,否則錶會跨階段跑;兩件事不能混成一句「一律不停」
assert.match(phase1, /停掉的只有自己起的那一支/);
});
test('來源分支要問過使用者,且一次一題、附理由與手動輸入', () => {