const { DEBUG, BUILD_DEBUG_MARKER, ETHEREUM_MAINNET_CHAIN_ID, DEFAULT_RPC_URL, BIP44_ETH_PATH, ERC20_ABI, } = require("../src/shared/constants"); describe("constants", () => { test("exports expected chain ID", () => { expect(ETHEREUM_MAINNET_CHAIN_ID).toBe("0x1"); }); test("exports a default RPC URL", () => { expect(typeof DEFAULT_RPC_URL).toBe("string"); expect(DEFAULT_RPC_URL.startsWith("https://")).toBe(true); }); test("exports BIP-44 Ethereum derivation path", () => { expect(BIP44_ETH_PATH).toBe("m/44'/60'/0'/0"); }); // This does not replace script/verify-build, which is the only thing that // can see the compiled DEBUG state of a real bundle. It pins the source // invariant that the marker tracks DEBUG, so the two cannot be edited // apart and leave verify-build asserting something that is no longer the // flag the code branches on. test("build debug marker is derived from DEBUG", () => { expect(BUILD_DEBUG_MARKER).toBe( DEBUG ? "autistmask-build-debug=on" : "autistmask-build-debug=off", ); }); // Outside a bundle there is no __BUILD_DEBUG__ define, and the fallback // must be the safe one. test("DEBUG is off when loaded outside a bundle", () => { expect(DEBUG).toBe(false); expect(BUILD_DEBUG_MARKER).toBe("autistmask-build-debug=off"); }); test("exports ERC-20 ABI with expected functions", () => { expect(Array.isArray(ERC20_ABI)).toBe(true); expect(ERC20_ABI.length).toBeGreaterThan(0); const joined = ERC20_ABI.join(" "); expect(joined).toContain("balanceOf"); expect(joined).toContain("transfer"); }); });