mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-12 00:10:56 +02:00
54c8d2706b
Ship stock engine chords only; community mods own their rebinds, and keys 2/3/5 are claimed by the engine before pipeline hotkeys run. Co-authored-by: Cursor <cursoragent@cursor.com>
100 lines
4.2 KiB
Lua
100 lines
4.2 KiB
Lua
-- Content gate for Switch transfer runbooks (XFER-01..08).
|
|
-- Self-contained: luajit tests/switch_transfer_docs_test.lua
|
|
|
|
local T = require("tests.harness")
|
|
local check = T.check
|
|
|
|
local function read(path)
|
|
local f, err = io.open(path, "r")
|
|
if not f then error("cannot read " .. path .. ": " .. tostring(err)) end
|
|
local s = f:read("*a")
|
|
f:close()
|
|
return s
|
|
end
|
|
|
|
local function mustContain(body, needle, label)
|
|
check(body:find(needle, 1, true) ~= nil,
|
|
label .. " must contain " .. string.format("%q", needle))
|
|
end
|
|
|
|
local function mustNotContain(body, needle, label)
|
|
check(body:find(needle, 1, true) == nil,
|
|
label .. " must not contain " .. string.format("%q", needle))
|
|
end
|
|
|
|
local transfer = read("docs/switch-transfer.md")
|
|
|
|
mustContain(transfer, "MTP", "transfer")
|
|
mustContain(transfer, "Hekate UMS", "transfer")
|
|
mustContain(transfer, "FTP", "transfer")
|
|
mustContain(transfer, "sdmc:/switch/gen1recomp/", "transfer")
|
|
mustContain(transfer, "imports/", "transfer")
|
|
mustContain(transfer, "imports/mods/", "transfer")
|
|
mustContain(transfer, "1: SD Card", "transfer")
|
|
mustContain(transfer, "Scan again", "transfer")
|
|
mustContain(transfer, "one contributor example", "transfer")
|
|
mustContain(transfer, "Linux", "transfer")
|
|
mustContain(transfer, "Windows", "transfer")
|
|
mustContain(transfer, "macOS", "transfer")
|
|
mustContain(transfer, "title override", "transfer")
|
|
mustContain(transfer, "Applet Mode", "transfer")
|
|
mustContain(transfer, "Exit MTP", "transfer")
|
|
mustContain(transfer, "nxlink", "transfer")
|
|
mustContain(transfer, "deferred", "transfer")
|
|
mustContain(transfer, "gvfs-mtp", "transfer")
|
|
mustContain(transfer, "Portable Devices", "transfer")
|
|
mustContain(transfer, "MTP USB Device", "transfer")
|
|
mustContain(transfer, "AppleDouble", "transfer")
|
|
mustContain(transfer, "card reader", "transfer")
|
|
mustContain(transfer, "Canonical methods", "transfer")
|
|
mustContain(transfer, "OpenMTP", "transfer")
|
|
mustContain(transfer, "only one", "transfer")
|
|
mustContain(transfer, "USB-C", "transfer")
|
|
-- Per-OS SD/FTP fallback when MTP is flaky (XFER-05 AC)
|
|
mustContain(transfer, "If MTP is unavailable or flaky on Linux", "transfer")
|
|
mustContain(transfer, "If MTP is unavailable or flaky on Windows", "transfer")
|
|
mustContain(transfer, "Joy-Con display chords (stock engine)", "transfer")
|
|
mustNotContain(transfer, "VoxelMod", "transfer")
|
|
|
|
local install = read("docs/switch-install.md")
|
|
local build = read("docs/switch-build.md")
|
|
mustContain(install, "switch-transfer.md", "install")
|
|
mustContain(install, "## Community mods", "install")
|
|
mustContain(install, "Select + **A**", "install")
|
|
mustContain(install, "COLORS", "install")
|
|
mustContain(install, "TILT", "install")
|
|
mustContain(install, "GBC FX", "install")
|
|
mustContain(install, "PERFORMANCE", "install")
|
|
mustContain(install, "Stock engine effect", "install")
|
|
mustNotContain(install, "VoxelMod", "install")
|
|
mustContain(build, "switch-transfer.md", "build")
|
|
mustContain(build, "nxlink", "build")
|
|
|
|
local development = read("docs/switch-development.md")
|
|
mustContain(development, "switch-transfer.md", "development")
|
|
mustContain(development, "## Joy-Con display chords (Select + face)", "development")
|
|
mustContain(development, "Stock engine effect", "development")
|
|
mustContain(development, "claimed by the engine before mod pipeline", "development")
|
|
mustContain(development, "Select + **L**", "development")
|
|
mustContain(development, "OPTIONS → PERFORMANCE", "development")
|
|
mustNotContain(development, "VoxelMod", "development")
|
|
check(development:find("Non-macOS contributor MTP runbooks", 1, true) == nil,
|
|
"development must not list Non-macOS runbooks as absent")
|
|
|
|
local evidence = read("docs/switch-hardware-evidence.md")
|
|
local nxStart = evidence:find("## NXMOD-12", 1, true)
|
|
check(nxStart ~= nil, "NXMOD-12 section present")
|
|
local nxmod = evidence:sub(nxStart)
|
|
mustContain(nxmod, "**pass**", "NXMOD-12")
|
|
mustContain(nxmod, "531", "NXMOD-12")
|
|
mustContain(nxmod, "switch-oled-photos", "NXMOD-12")
|
|
mustContain(nxmod, "IMG_1766.jpg", "NXMOD-12")
|
|
mustContain(nxmod, "IMG_1771.jpg", "NXMOD-12")
|
|
mustContain(nxmod, "Community mod zip", "NXMOD-12")
|
|
mustNotContain(nxmod, "VoxelMod", "NXMOD-12")
|
|
check(nxmod:find("Status | **pending**", 1, true) == nil
|
|
and nxmod:find("| **pending** |", 1, true) == nil,
|
|
"NXMOD-12 must not keep pending status/checklist")
|
|
|
|
T.finish("switch_transfer_docs_test")
|