43a1bd38e8
* Mod gitignore + license trimming + comment trimming
* Big rewrite
* SURB inputs + DNS button in internal-dev
* Make ipr addr optional
* Accidentatly omitted files from rewrite commit
* Makefile + readme
* Comment rewrite
* Optimisation comment
* Replace manual waker map with
smoltcp built-ins + adaptive poll
* Comments
* Extract socket creation helpers into stream.rs
* Cleanup comments
* Comment
* Comment notes and restrict ciphersuites wrt rustls-rustcrypto
* Dep. hack fix for demo + add clearnet fetch() for contrast
* Stripped down devtester
* Fix Clippy arg (fatfingered deletion)
* CodeRabbit catches
* Cargofmt
* Review nits: bridge logs, fetch early-return, static port counter, copyright years, README + Cargo + headless.js tidying
* PHONY + taskset override, switch internal-dev/tests to pnpm, fix wasm-pack out-dir
* Gate codec tests behind the codec feature for no-default-features builds
* IPv6 addr/route on smoltcp iface + configurable DNS resolvers via TunnelOpts
* DNS GUI inputs, close stale WS on reconnect, worker init guards + ws-send warning, Playwright listener cleanup, pnpm-lock in internal-dev
* Fix lp -> lp-data after rebase
* Revert nym-lp/nym-lp-data feature-gating left over from rebase
* Lift getrandom wasm_js cfg to workspace .cargo/config.toml so cargo check -p smolmix-wasm works from any CWD
* temp will amend git message
* Auto-discover IPR when none specified + 'Use random IPR' checkbox in internal-dev
* smolmix_tracker + State machine + ready_tunnel gate + getTunnelState JS surface
* Mirror red display() entries to console.error
* Add left out package-lock
* Reactor clock + yield_now + atomic seq + gateway-storage errors
* setupMixTunnel gate + MTU 1980 + http::Uri cleanup
* Review pass + fix test + clippy
* restore axum 0.8 bump from borked earlier merge
* Feature gating (dns/fetch/socket) + TunnelOptsBuilder + pnpm bypass
* Cont. with review comments
* tokio Nofity reactor wakes + cancellation + setup polishing
* Notify wakes + inner pattern + close_notify + util
* Tunable tunnelopts
* Fix tired commit
* CI prep
* Lint + Clippy
* coderabbit u32 fix
* nits + runtime debugging + expose in internal-dev
* remove redudant default-features
* Remove more redundant default-features
89 lines
2.7 KiB
JavaScript
89 lines
2.7 KiB
JavaScript
import { defineConfig } from "@playwright/test";
|
|
|
|
// Headless Firefox on non-Ubuntu hosts (Arch/Manjaro fallback build) needs
|
|
// these prefs to behave like headed Firefox: keep IndexedDB persistent across
|
|
// the test session, raise the wss:// open timeout above the 20 s default
|
|
// (mixnet handshake + WSS upgrade can take longer on a cold load), and skip
|
|
// the captive-portal probe that adds spurious DNS noise.
|
|
const firefoxUserPrefs = {
|
|
"dom.indexedDB.enabled": true,
|
|
"dom.storage.next_gen": true,
|
|
"browser.privatebrowsing.autostart": false,
|
|
"network.websocket.timeout.open": 60,
|
|
"network.captive-portal-service.enabled": false,
|
|
"network.connectivity-service.enabled": false,
|
|
// Force the OS resolver rather than Mozilla's DoH. Headless Firefox on
|
|
// non-Ubuntu hosts sometimes can't reach mozilla.cloudflare-dns.com from
|
|
// the bundled NSS context, which stalls gateway hostname resolution.
|
|
"network.trr.mode": 0,
|
|
"network.dns.disablePrefetch": true,
|
|
// Headless Firefox has no visible window so it treats itself as backgrounded
|
|
// and clamps timers (default 1 s minimum via dom.min_background_timeout_value).
|
|
// Our reactor ticks every 5 ms and the Nym base client uses many short
|
|
// timers in its WS keepalive/retry logic; clamping those to 1 s stalls the
|
|
// gateway handshake. Disable every timer-throttling knob.
|
|
"dom.min_background_timeout_value": 4,
|
|
"dom.workers.timeoutThrottling": false,
|
|
"dom.timeout.foreground_budget_regeneration_rate": -1,
|
|
"dom.timeout.background_budget_regeneration_rate": -1,
|
|
};
|
|
|
|
const firefoxUse = {
|
|
browserName: "firefox",
|
|
launchOptions: { firefoxUserPrefs },
|
|
};
|
|
|
|
export default defineConfig({
|
|
testDir: "./tests",
|
|
timeout: 180_000,
|
|
retries: 1,
|
|
use: {
|
|
trace: "on-first-retry",
|
|
},
|
|
webServer: {
|
|
command: "npx serve ../internal-dev/dist -l 9001 --no-clipboard",
|
|
port: 9001,
|
|
reuseExistingServer: true,
|
|
},
|
|
projects: [
|
|
// Smoke: all three browsers
|
|
{
|
|
name: "smoke-chromium",
|
|
testMatch: "smoke.spec.mjs",
|
|
use: { browserName: "chromium" },
|
|
},
|
|
{
|
|
name: "smoke-firefox",
|
|
testMatch: "smoke.spec.mjs",
|
|
use: firefoxUse,
|
|
},
|
|
{
|
|
name: "smoke-webkit",
|
|
testMatch: "smoke.spec.mjs",
|
|
use: { browserName: "webkit" },
|
|
},
|
|
// Suite: all three browsers
|
|
{
|
|
name: "suite-chromium",
|
|
testMatch: "suite.spec.mjs",
|
|
timeout: 600_000,
|
|
retries: 0,
|
|
use: { browserName: "chromium" },
|
|
},
|
|
{
|
|
name: "suite-firefox",
|
|
testMatch: "suite.spec.mjs",
|
|
timeout: 600_000,
|
|
retries: 0,
|
|
use: firefoxUse,
|
|
},
|
|
{
|
|
name: "suite-webkit",
|
|
testMatch: "suite.spec.mjs",
|
|
timeout: 600_000,
|
|
retries: 0,
|
|
use: { browserName: "webkit" },
|
|
},
|
|
],
|
|
});
|