fix(frontend): consolidate chat sidebar and modal auth flow
This commit is contained in:
1 parent
d267173e30
commit
474da7418e
7 files changed
+145
-125
No files matched your search
+11
-36
@@ -124,19 +124,18 @@ beforeEach(() => {
|
||||
<div id="chat-user-label" hidden></div>
|
||||
<button id="auth-toggle-btn" type="button">Sign in</button>
|
||||
<button id="auth-logout-btn" type="button" hidden>Logout</button>
|
||||
<div id="auth-panel" hidden>
|
||||
<input id="auth-username" type="text" />
|
||||
<input id="auth-password" type="password" />
|
||||
<span id="auth-status"></span>
|
||||
<button id="auth-login-btn" type="button">Login</button>
|
||||
<button id="auth-register-btn" type="button">Register</button>
|
||||
<div id="auth-panel" class="auth-modal" hidden>
|
||||
<div id="auth-backdrop" class="auth-modal-backdrop"></div>
|
||||
<div class="auth-modal-content">
|
||||
<button id="auth-close-btn" type="button">×</button>
|
||||
<input id="auth-username" type="text" />
|
||||
<input id="auth-password" type="password" />
|
||||
<span id="auth-status"></span>
|
||||
<button id="auth-login-btn" type="button">Login</button>
|
||||
<button id="auth-register-btn" type="button">Register</button>
|
||||
</div>
|
||||
</div>
|
||||
<button id="users-toggle-btn" type="button" aria-expanded="true">Users</button>
|
||||
<div id="typing-indicator" hidden></div>
|
||||
<div id="dm-search-row" hidden>
|
||||
<input id="dm-search-input" type="text" />
|
||||
<button id="dm-search-btn" type="button">Search</button>
|
||||
</div>
|
||||
`;
|
||||
|
||||
// Stub prompt for DM
|
||||
@@ -456,7 +455,7 @@ describe("sendMessage over websocket", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("auth and user list wiring", () => {
|
||||
describe("auth wiring", () => {
|
||||
it("logs in and updates the auth UI", async () => {
|
||||
await import("../src/main");
|
||||
|
||||
@@ -486,30 +485,6 @@ describe("auth and user list wiring", () => {
|
||||
expect(document.getElementById("auth-status")!.textContent).toContain("Signed in as alice");
|
||||
expect(document.getElementById("chat-user-label")!.textContent).toBe("alice");
|
||||
});
|
||||
|
||||
it("toggles the user list visibility", async () => {
|
||||
await import("../src/main");
|
||||
|
||||
globalThis.fetch = vi.fn().mockResolvedValue({
|
||||
ok: true,
|
||||
json: async () => ({ authenticated: false, entries: [] }),
|
||||
text: async () => "",
|
||||
}) as any;
|
||||
|
||||
document.dispatchEvent(new Event("DOMContentLoaded"));
|
||||
|
||||
const panel = document.getElementById("presence-panel")!;
|
||||
const btn = document.getElementById("users-toggle-btn")!;
|
||||
expect(panel.hidden).toBe(false);
|
||||
|
||||
btn.click();
|
||||
expect(panel.hidden).toBe(true);
|
||||
expect(btn.getAttribute("aria-expanded")).toBe("false");
|
||||
|
||||
btn.click();
|
||||
expect(panel.hidden).toBe(false);
|
||||
expect(btn.getAttribute("aria-expanded")).toBe("true");
|
||||
});
|
||||
});
|
||||
|
||||
describe("player error recovery", () => {
|
||||
|
||||
Reference in new issue
Block a user