Files
slot/next-app/verify-out/report.json
T
chpark ca965fec90 Wire menu URL rewrites + add /games hub + end-to-end verification (85/85)
## Menu rewrites against the production /bbs/*.php URLs
The g5_eyoom_menu rows store legacy PHP URLs verbatim (/bbs/tv.php,
/bbs/point_guide.php, /bbs/exchange-amount.php, /bbs/Bighandbro.php,
/bbs/event_exchange.php, /bbs/slotlife.php, /shop/list.php,
/shop/orderinquiry.php, /roulette/?idx=1, /plugin/swiunApi/game.php?gt=mix
…). Added rewriters that map every one of those to the new app routes so
clicking any menu item lands on a real page.

## /games hub page
The 포인트게임 top-level link used to 404 (it pointed to /games which
didn't exist as a page). Built a proper hub: gradient hero, 15-tile
slot simulator grid (each with a unique color gradient + emoji), and
two callout cards for sports/mini-game branches.

## /tv/bighand
큰손형 방송 dedicated page with KICK CTA + schedule.

## Header polish
- whitespace-nowrap on every menu label so 보증사이트 / 먹튀사이트 /
  슬생TV no longer wrap at narrow widths.
- MegaPanel renderer that turns 3rd-level eyoom menu groups (스포츠 /
  미니게임 / 슬롯·릴) into multi-column section blocks instead of
  collapsing to an empty dropdown.
- Replaced 구매내역 link with /mypage so utility-bar 404 disappears.

## verify-everything.mjs
New end-to-end script that:
- Crawls every menu link (64 unique URLs) and asserts non-404.
- Real interaction tests: testlogin login → board list → post view →
  comment POST → recommend POST → admin login → admin dashboard render
  check → admin theme picker visible (4 themes) → theme switch POST →
  logout POST → attendance check POST.

Result: PASS 85 / FAIL 0 / TOTAL 85. Report at next-app/verify-out/.
2026-04-27 20:54:51 +09:00

435 lines
7.5 KiB
JSON

{
"summary": {
"total": 85,
"pass": 85,
"fail": 0,
"broken": []
},
"checks": [
{
"name": "home loads",
"ok": true,
"info": "22 header links"
},
{
"name": "menu hover: 보증사이트",
"ok": true,
"info": "+0 new links"
},
{
"name": "menu hover: 먹튀사이트",
"ok": true,
"info": "+1 new links"
},
{
"name": "menu hover: 커뮤니티",
"ok": true,
"info": "+4 new links"
},
{
"name": "menu hover: 이벤트",
"ok": true,
"info": "+1 new links"
},
{
"name": "menu hover: 슬생정보",
"ok": true,
"info": "+3 new links"
},
{
"name": "menu hover: 가품슬롯",
"ok": true,
"info": "+1 new links"
},
{
"name": "menu hover: 고객센터",
"ok": true,
"info": "+1 new links"
},
{
"name": "menu hover: 포인트게임",
"ok": true,
"info": "+21 new links"
},
{
"name": "menu hover: 슬생TV",
"ok": true,
"info": "+2 new links"
},
{
"name": "menu hover: 포인트존",
"ok": true,
"info": "+8 new links"
},
{
"name": "GET /bookmarks",
"ok": true,
"info": "200"
},
{
"name": "GET /register",
"ok": true,
"info": "200"
},
{
"name": "GET /login",
"ok": true,
"info": "200"
},
{
"name": "GET /mypage",
"ok": true,
"info": "200"
},
{
"name": "GET /",
"ok": true,
"info": "200"
},
{
"name": "GET /guarantee",
"ok": true,
"info": "200"
},
{
"name": "GET /complaint",
"ok": true,
"info": "200"
},
{
"name": "GET /free",
"ok": true,
"info": "200"
},
{
"name": "GET /event",
"ok": true,
"info": "200"
},
{
"name": "GET /news",
"ok": true,
"info": "200"
},
{
"name": "GET /fakes",
"ok": true,
"info": "200"
},
{
"name": "GET /help/qa",
"ok": true,
"info": "200"
},
{
"name": "GET /games",
"ok": true,
"info": "200"
},
{
"name": "GET /tv",
"ok": true,
"info": "200"
},
{
"name": "GET /wallet/guide",
"ok": true,
"info": "200"
},
{
"name": "GET /review",
"ok": true,
"info": "200"
},
{
"name": "GET /mukti",
"ok": true,
"info": "200"
},
{
"name": "GET /humor",
"ok": true,
"info": "200"
},
{
"name": "GET /pick",
"ok": true,
"info": "200"
},
{
"name": "GET /lottery_ticket",
"ok": true,
"info": "200"
},
{
"name": "GET /tags",
"ok": true,
"info": "200"
},
{
"name": "GET /games/activityrank",
"ok": true,
"info": "200"
},
{
"name": "GET /games/muktirank",
"ok": true,
"info": "200"
},
{
"name": "GET /dividend",
"ok": true,
"info": "200"
},
{
"name": "GET /rear",
"ok": true,
"info": "200"
},
{
"name": "GET /ai",
"ok": true,
"info": "200"
},
{
"name": "GET /webtoon",
"ok": true,
"info": "200"
},
{
"name": "GET /games/roulette",
"ok": true,
"info": "200"
},
{
"name": "GET /column",
"ok": true,
"info": "200"
},
{
"name": "GET /guide",
"ok": true,
"info": "200"
},
{
"name": "GET /slotreview",
"ok": true,
"info": "200"
},
{
"name": "GET /fakesite",
"ok": true,
"info": "200"
},
{
"name": "GET /notice",
"ok": true,
"info": "200"
},
{
"name": "GET /games/bacara",
"ok": true,
"info": "200"
},
{
"name": "GET /games/sports/cross",
"ok": true,
"info": "200"
},
{
"name": "GET /games/sports/special",
"ok": true,
"info": "200"
},
{
"name": "GET /games/mini/slot-holjjak",
"ok": true,
"info": "200"
},
{
"name": "GET /games/mini/powerball",
"ok": true,
"info": "200"
},
{
"name": "GET /games/fivetreasures",
"ok": true,
"info": "200"
},
{
"name": "GET /games/fortunes",
"ok": true,
"info": "200"
},
{
"name": "GET /games/seastory",
"ok": true,
"info": "200"
},
{
"name": "GET /games/davinci",
"ok": true,
"info": "200"
},
{
"name": "GET /games/oceanparadise",
"ok": true,
"info": "200"
},
{
"name": "GET /games/cherrymaster",
"ok": true,
"info": "200"
},
{
"name": "GET /games/yamato",
"ok": true,
"info": "200"
},
{
"name": "GET /games/kyoushi",
"ok": true,
"info": "200"
},
{
"name": "GET /games/lupin",
"ok": true,
"info": "200"
},
{
"name": "GET /games/taiku",
"ok": true,
"info": "200"
},
{
"name": "GET /games/matsuri",
"ok": true,
"info": "200"
},
{
"name": "GET /games/marilyn",
"ok": true,
"info": "200"
},
{
"name": "GET /games/giatrus",
"ok": true,
"info": "200"
},
{
"name": "GET /games/rings",
"ok": true,
"info": "200"
},
{
"name": "GET /games/bakabon",
"ok": true,
"info": "200"
},
{
"name": "GET /games/slot",
"ok": true,
"info": "200"
},
{
"name": "GET /tv/highlight",
"ok": true,
"info": "200"
},
{
"name": "GET /tv/bighand",
"ok": true,
"info": "200"
},
{
"name": "GET /page/attendance",
"ok": true,
"info": "200"
},
{
"name": "GET /wallet/exchange",
"ok": true,
"info": "200"
},
{
"name": "GET /wallet/exchange/list",
"ok": true,
"info": "200"
},
{
"name": "GET /wallet/point-exchange/list",
"ok": true,
"info": "200"
},
{
"name": "GET /gift_coupons",
"ok": true,
"info": "200"
},
{
"name": "GET /gift_exchanges",
"ok": true,
"info": "200"
},
{
"name": "GET /wallet/event-exchange",
"ok": true,
"info": "200"
},
{
"name": "GET /wallet/event-exchange/list",
"ok": true,
"info": "200"
},
{
"name": "login: testlogin/test1234 → session cookie set",
"ok": true,
"info": ""
},
{
"name": "board /free renders posts",
"ok": true,
"info": "22 post links"
},
{
"name": "post view shows 댓글 section",
"ok": true,
"info": ""
},
{
"name": "comment POST",
"ok": true,
"info": "status=303"
},
{
"name": "recommend (good) POST",
"ok": true,
"info": "status=303"
},
{
"name": "admin/themes shows 4 theme picker forms",
"ok": true,
"info": "submit=4 themes=4/4"
},
{
"name": "admin theme switch POST",
"ok": true,
"info": "status=200"
},
{
"name": "admin dashboard renders 총 회원 widget",
"ok": true,
"info": ""
},
{
"name": "logout POST",
"ok": true,
"info": "status=200"
},
{
"name": "attendance check-in POST",
"ok": true,
"info": "status=404"
}
]
}