{
  "test_matrix": [
    {
      "id": "TC01",
      "name": "pages table exists with page_id as PRIMARY KEY",
      "type": "db",
      "query": "SHOW CREATE TABLE pages",
      "expected": "PRIMARY KEY (page_id)",
      "actual": "PRIMARY KEY (page_id)",
      "status": "pass"
    },
    {
      "id": "TC02",
      "name": "POST /admin/pages/sync populates from /me/accounts",
      "type": "api",
      "endpoint": "POST /admin/pages/sync",
      "expected": "26 admin pages synced",
      "actual": "26 total, 23 inserted, 3 updated",
      "status": "pass",
      "evidence": "api/api-sync-result.json"
    },
    {
      "id": "TC03",
      "name": "POST /admin/pages/sync-ad-promoted adds promoted pages",
      "type": "api",
      "endpoint": "POST /admin/pages/sync-ad-promoted",
      "expected": "59 unique pageIds from ads",
      "actual": "59 pageIds, 57 already in pages",
      "status": "pass"
    },
    {
      "id": "TC04",
      "name": "Solar page 102601625742282 has source=public, fan_count=2481",
      "type": "db",
      "query": "SELECT source, fan_count FROM pages WHERE page_id='102601625742282'",
      "expected": "source=public, fan_count=2481",
      "actual": "source=public, fan_count=2481",
      "status": "pass"
    },
    {
      "id": "TC05",
      "name": "chat_inbox VIEW uses JOIN with pages (no denormalized data)",
      "type": "db",
      "query": "SHOW CREATE VIEW chat_inbox",
      "expected": "INNER JOIN pages p ON p.page_id = cm.page_id",
      "actual": "INNER JOIN pages p ON p.page_id = cm.page_id",
      "status": "pass"
    },
    {
      "id": "TC06",
      "name": "API /public/chat-inbox returns correct page_name for solar",
      "type": "api",
      "endpoint": "GET /public/chat-inbox",
      "expected": "pageName = 'เฮียหนวด โซล่าเซลล์ ไฟตุ้ม...'",
      "actual": "pageName = 'เฮียหนวด โซล่าเซลล์ ไฟตุ้มโซล่าเซลล์ โคมไฟโซล่าเซลล์ สว่างยันเช้า'",
      "status": "pass"
    },
    {
      "id": "TC07",
      "name": "UI inbox shows 5 page chips, solar filter works (3 rows)",
      "type": "ui",
      "url": "https://adsfb.namnan.co.th/app.html#/chats",
      "screenshots": ["01_inbox_join.png", "02_inbox_solar_filter.png"],
      "expected": "5 chips, solar filter 3 rows",
      "actual": "5 chips visible, clicking solar shows 3 rows",
      "status": "pass"
    },
    {
      "id": "TC08",
      "name": "UI campaign page shows solar page name in header",
      "type": "ui",
      "url": "https://adsfb.namnan.co.th/campaign.html?id=120230799572200590",
      "screenshots": ["03_campaign_solar.png", "04_campaign_chats.png"],
      "expected": "header shows solar page name + page_id 102601625742282",
      "actual": "header shows เฮียหนวด โซล่าเซลล์ ไฟตุ้มโซล่าเซลล์ โคมไฟโซล่าเซลล์ สว่างยันเช้า (Page: 102601625742282)",
      "status": "pass"
    }
  ],
  "summary": {
    "total": 8,
    "passed": 8,
    "failed": 0
  }
}
