# Campaign FA connected-gate test script **Status: FA3 owes its connected gate.** Launch with `ACDREAM_LIVE=1` against the local ACE server (`testaccount` / `+Acdream`). Anything marked **INERT** is authored and clickable but deliberately does nothing yet — that is the correct, contracted behavior for this slice (D1), not a bug. FA3 is the panel SHELL only: mount, F3/F4 open paths, tab switching, all four pages' empty states, and Friends/Squelch read-only lists. Fellowship roster rows, the create-fellowship dialog, live vitals, and every Allegiance swear/break/kick action are FA4/FA5 scope — do not report their absence here. --- ## FA3 — the social panel shell ### Opening the panel — F3/F4, keyboard only 1. **Press F3.** The social panel opens on its **Allegiance** tab (the authored default tab — NOT Friends, despite Friends being drawn left-most on the tab strip in some sort orders; Allegiance is retail's own authored default entry). No toolbar button opens this panel — retail authors none (lane A §6.1) — so there is nothing to click for this step besides the keybind itself. 2. **Press F3 again** while the panel is open and already on the Allegiance tab. The panel closes — same toggle-closes-on-repeat-press shape as every other `Toggle*Panel` action (e.g. F11/Options, Spellbook). 3. **Press F4.** The social panel opens directly on its **Fellowship** tab (F4 switches AND opens in one press, even if the panel was closed). 4. **With the panel open on Fellowship, press F3.** The panel does NOT close — it switches to the Allegiance tab (F3 is scoped to its own tab, not a blanket close). Symmetrically, pressing F4 while open on Allegiance switches to Fellowship rather than closing. 5. **Click the panel's own close (X) button**, top-right of the window chrome. The panel closes — same action as a repeat F3/F4 press on the already-active tab. 6. **Drag the window by its border/chrome; resize it from the BOTTOM edge only.** Same shared `gmPanelUI` geometry policy as every sibling main panel (Options, Character, Inventory, Spellbook, the indicator-detail panels): draggable, resizable from the bottom edge only, remembers its height across a close/reopen within the session. ### Exclusivity vs sibling panels 7. **Open Character Info (or Inventory, or Options), then press F3.** The other panel closes and the social panel opens on Allegiance — the SAME retail `gmPanelUI` one-active-panel-at-a-time behavior every sibling panel already has (`RetailPanelUiController.RegisterMainPanel` shares one geometry rectangle across all ten registered main panels). 8. **With the social panel open, open Character Info.** The social panel closes. Confirms the exclusivity is bidirectional, not just "opening the social panel closes others." ### Tab switching 9. **Click each of the four tabs** (Allegiance, Fellowship, Friends, Squelch — left-to-right authored order is Friends, Allegiance, Fellowship, Squelch; only ONE tab is highlighted "open" at a time). Each switches the visible page; exactly one page is visible at a time. No crash, no stuck state, switching back and forth repeatedly is safe. 10. **Note the tab captions read correctly** — "Friends", "Allegiance", "Fellowship", "Squelch" — not blank. A blank caption on any tab button would be the #375 missing-string-resolver class of bug; report it immediately if seen. ### Fellowship page — empty state 11. **On a character with NO fellowship** (the default state), open the Fellowship tab. Expect: an editable fellowship-name text field, a **Create Fellowship** button, and three checkboxes (Ignore Fellowship Requests / Auto-Accept Requests / Share XP — a fourth, Share Loot, may also be present). No member list, no leader/quit/open/recruit/dismiss/disband buttons visible — those belong to the OTHER (in-fellowship) frame, which is hidden. **INERT:** the Create Fellowship button, the name field, and all visible checkboxes do nothing yet on click/edit (FA4 wires the create flow and the checkboxes already have Options-tab live consumers — this page's OWN copies are not yet cross-bound). 12. **If the test character IS currently in a fellowship** (uncommon for `+Acdream`'s default state, but possible if a prior session left one active), open the Fellowship tab instead expecting: a fellowship name display, a member roster ListBox (empty rows — FA4 populates them), and six buttons (Leader/Quit/Open/Recruit/Dismiss/Disband). All six buttons are **INERT** for FA3. ### Allegiance page — empty state 13. **On a character with NO allegiance profile ever received this session** (the default state — nothing has queried allegiance data yet), open the Allegiance tab. Expect: the monarch block and patron block BOTH HIDDEN (no visible "Monarch:" / "Patron:" labels or name lines), while your own character line (name/followers/rank) and the vassal list area remain visible per their authored layout. The Swear/Break/Kick buttons and the "Ignore Allegiance Requests" checkbox are present and **INERT**. 14. **This state may not change automatically** — FA3 does not send the `0x001F AllegianceUpdateRequest` subscription (that is FA5 scope, per the plan's corrected D6/CF-1 note), so simply opening the tab will NOT cause a profile to arrive. If some other client action causes an allegiance push to land server-side during this session (e.g. a `@allegiance info` chat command, which already works independently of this panel), the monarch/patron blocks should then become VISIBLE — report if they do not. ### Friends page — read-only list 15. **Open the Friends tab.** If the test account has any friends server-side, their NAMES appear as rows in the list (no online/ offline styling, no icons — names only, this slice's explicit scope). If the account has none, the list is empty (no placeholder text is invented). 16. **The three action-shaped buttons and the "Appear Offline"-shaped checkbox are INERT** — clicking/toggling them does nothing (register row AD-79). This is CONTRACTED for FA3; do not report it. ### Squelch page — read-only list 17. **Open the Squelch tab.** If the test account has any squelched characters or accounts, their names appear as rows (characters and account-level squelches both listed, names only). Empty otherwise. 18. **The three action-shaped buttons are INERT** (register row AD-79, same as Friends). CONTRACTED, do not report. ### Live update while the panel is closed 19. **This is a soft check, not required to pass/fail the gate:** if Friends/Squelch state changes server-side while the social panel is CLOSED (e.g. via `@friend` chat commands, if any are wired), then reopening the panel afterward should show the up-to-date list immediately (the read-only binding polls every frame regardless of which tab or window is visible — see `SocialFriendsPageController`/`SocialSquelchPageController`'s own doc comments). Report if the list is stale on reopen. --- ### What to report - Any tab caption that renders blank instead of its retail name. - The panel opening on the wrong DEFAULT tab (should be Allegiance, not Friends) on a fresh F3 press with the panel previously closed. - F3/F4 failing to switch tabs while the panel is already open, or closing the panel when it should only switch tabs. - The panel NOT closing/opening exclusively with sibling `gmPanelUI` panels (Character/Inventory/Options/etc.). - The Fellowship page showing the WRONG frame for the character's actual fellowship state (e.g. showing the roster/six-button frame while `+Acdream` has no fellowship). - The Allegiance page's monarch/patron blocks staying hidden after a real allegiance push has visibly landed (e.g. after `@allegiance info` shows non-empty data in chat). - Any INERT button/checkbox producing a VISIBLE effect (a Create Fellowship, Swear, Friends, or Squelch action that unexpectedly does something) — this would mean either an accidental wire connection or a stale INERT claim in this script. - A Friends/Squelch row showing anything other than a plain name (an exception, a blank row, garbled text). - Any crash, hang, or exception in the log while opening/closing/ switching tabs repeatedly. ### Explicitly NOT in scope for this gate - Fellowship roster population, vitals, the create-fellowship dialog, recruit/dismiss/leader/open/disband wire sends, and the option-row un-dims (FA4). - Allegiance monarch/patron/vassal LIVE population, swear/break/kick wire sends, and their confirmation dialogs (FA5). - Friends/Squelch add/remove/appear-offline/clear wire sends (D1 — out of campaign scope entirely, register row AD-79). - The bot-vs-ACE two-session fellowship gate (FA6).