69 lines
3.6 KiB
Go
69 lines
3.6 KiB
Go
// cardloop_vs_existing_wiki_test.go — `#134`(別把自己的卡當原稿)與 `#180`(現成的卡要收)
|
||
// 在同一個路徑上要求相反答案,這一支把**分界線本身**釘住。
|
||
//
|
||
// 🔴 這不是普通的迴歸網,是一條**有爭議的分界**:兩張票的驗收條件互斥——
|
||
//
|
||
// #134 cardloop_test.go `system-dev/wiki/cards/arcrun-換柱.md` **不准收**
|
||
// #180 template_not_knowledge_test.go `system-dev/wiki/cards/arcrun-火星座標_短片劇本_v1.md` **必須收**
|
||
//
|
||
// 同一個目錄、同一個前綴 ⇒ **靠名字分不開**。現行分界是「**模式**」:
|
||
// curated-wiki(接一個開發 repo,`cardsRelDir` 與他的 wiki 結構性重疊)擋;
|
||
// 其餘(一般資料夾/筆記庫)收。理由與出處寫在 `ingestplan.go` 的 KeepsFile。
|
||
//
|
||
// ⚠️ 這條分界是收工方的假設,**leo 還沒裁**。要改分界,連這支一起改,
|
||
// 並在 `inkstone/Arcrun#180` 留言說明改成什麼、為什麼——不要只改 code。
|
||
package collector
|
||
|
||
import "testing"
|
||
|
||
func TestKeepsFile_機器產的卡在哪一種模式下才擋(t *testing.T) {
|
||
const machineCard = "system-dev/wiki/cards/" + MachineMark + "火星座標_短片劇本_v1.md"
|
||
const userCard = "system-dev/wiki/cards/我自己寫的.md"
|
||
const liveProduct = "system-dev/wiki/cards/.wiki/換柱.md"
|
||
|
||
// ① 接開發 repo(curated-wiki):舊版 daemon 寫在他 wiki 裡的卡不當原稿(#134)
|
||
repo := IngestPlan{Mode: IngestCuratedWiki, WikiRelDir: "system-dev/wiki"}
|
||
if repo.KeepsFile(machineCard) {
|
||
t.Errorf("curated-wiki 仍該擋 %s(#134 第③環)", machineCard)
|
||
}
|
||
if !repo.KeepsFile(userCard) {
|
||
t.Errorf("使用者自己寫的卡被擋了:%s", userCard)
|
||
}
|
||
|
||
// ② 一般資料夾/筆記庫:leo 的 youlinhsieh-test1 就是這一種,那 9 張卡要收(#180)
|
||
for _, m := range []IngestMode{IngestAll, ""} {
|
||
plain := IngestPlan{Mode: m}
|
||
if !plain.KeepsFile(machineCard) {
|
||
t.Errorf("mode=%q 沒收 %s——#180 驗收第 3 條(那 9 張卡的內容要進得了雲端)就不成立",
|
||
string(m), machineCard)
|
||
}
|
||
}
|
||
|
||
// ②之二 `arcrun-` 是人也會用的命名習慣:**卡片產物區以外的檔一律照收**。
|
||
// 實測 leo 的 youlinhsieh-test1 根層就有三個他自己寫的(其中一個檔名裡寫著「請勿刪」),
|
||
// 只看前綴的話它們會被排進「下架」——不是不收而已,是把雲端已經有的撤掉。
|
||
// (curated-wiki 只讀那份 wiki,所以根層的檔本來就不收——那是模式的範圍,
|
||
// 不是前綴造成的;這裡分別用兩種模式各檢一格,才不會把兩件事混在一起。)
|
||
plainAll := IngestPlan{Mode: IngestAll}
|
||
for _, rel := range []string{
|
||
MachineMark + "複驗用-請勿刪-20260827c.md",
|
||
MachineMark + "1457驗收-20260827.md",
|
||
} {
|
||
if !plainAll.KeepsFile(rel) {
|
||
t.Errorf("mode=all 把使用者自己命名的根層檔擋掉了:%s", rel)
|
||
}
|
||
}
|
||
if !repo.KeepsFile("system-dev/wiki/" + MachineMark + "我放在wiki根的筆記.md") {
|
||
t.Error("curated-wiki 把卡片產物區**以外**、帶前綴的檔擋掉了")
|
||
}
|
||
|
||
// ③ 不管哪一種模式,**這一版正在維護的產物**(住在 `.wiki/`)永遠不是原稿。
|
||
// 這一條才是關掉「卡片的卡片」迴圈的那道閘,前綴不是。
|
||
for _, m := range []IngestMode{IngestCuratedWiki, IngestDocsOnly, IngestAll, ""} {
|
||
p := IngestPlan{Mode: m, WikiRelDir: "system-dev/wiki"}
|
||
if p.KeepsFile(liveProduct) {
|
||
t.Errorf("mode=%q 把 `.wiki/` 裡的產物當原稿收了:%s", string(m), liveProduct)
|
||
}
|
||
}
|
||
}
|