Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/improsocial/impro
An extensible Bluesky client for web impro.social
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104import { describe, it, beforeEach, afterEach, mock } from "node:test";import assert from "node:assert/strict";import { enableErrorLogs, logAuthEvent, readAuthDebugLog,} from "/js/errorLogs.js";
describe("errorLogs overlay", () => { const originalWarn = console.warn; const originalError = console.error; let overlay;
function entries() { return [...overlay.querySelectorAll("[data-log-level]")]; }
beforeEach(() => { console.warn = () => {}; console.error = () => {}; enableErrorLogs(); overlay = document.getElementById("error-log"); });
afterEach(() => { overlay.remove(); console.warn = originalWarn; console.error = originalError; });
it("shows warnings in the overlay", () => { console.warn("[plugins] something odd"); assert.deepEqual(entries().length, 1); assert(entries()[0].textContent.includes("[plugins] something odd")); assert.deepEqual(overlay.style.display, "block"); });
it("suppresses warnings carrying an advisory tag", () => { console.warn('[plugins:perf] "some-plugin" slot "x" ran 100 times'); assert.deepEqual(entries(), []); assert.deepEqual(overlay.style.display, "none"); });
it("shows hints tagged for local dev plugins", () => { console.warn( '[plugins:perf:local] "my-plugin__LOCAL" slot "x" ran 100 times', ); assert.deepEqual(entries().length, 1); });
it("only matches the tag at the start of the message", () => { console.warn("prefix [plugins:perf] not a hint"); assert.deepEqual(entries().length, 1); });
it("still shows errors", () => { console.error("[plugins:perf] errors are never suppressed"); assert.deepEqual(entries().length, 1); assert.deepEqual(entries()[0].dataset.logLevel, "error"); });});
describe("auth debug log", () => { beforeEach(() => { localStorage.clear(); mock.method(console, "info", () => {}); });
afterEach(() => { localStorage.clear(); mock.restoreAll(); });
it("does nothing when the flag is not set", () => { logAuthEvent("logout", { did: "did:plc:alice" }); assert.deepEqual(readAuthDebugLog(), []); });
it("persists entries when the flag is set", () => { localStorage.setItem("debug-auth", "true"); logAuthEvent("logout", { did: "did:plc:alice" }); logAuthEvent("boot", { did: null }); const entries = readAuthDebugLog(); assert.deepEqual( entries.map((entry) => [entry.event, entry.did]), [ ["logout", "did:plc:alice"], ["boot", null], ], ); assert(entries[0].time); });
it("caps the number of stored entries", () => { localStorage.setItem("debug-auth", "true"); for (let i = 0; i < 205; i++) { logAuthEvent("event", { index: i }); } const entries = readAuthDebugLog(); assert.equal(entries.length, 200); assert.equal(entries[0].index, 5); });});