2026-07-31 12:51:15 +03:00
|
|
|
import assert from 'node:assert/strict';
|
|
|
|
|
import test from 'node:test';
|
|
|
|
|
|
2026-08-01 21:31:51 +03:00
|
|
|
import { resolveStartupUrlProbePlan, shouldIgnoreLoopbackConnectionLimit } from './startup-url-selection.mjs';
|
2026-07-31 12:51:15 +03:00
|
|
|
|
|
|
|
|
test('bundled development never probes HMR endpoints', () => {
|
|
|
|
|
assert.deepEqual(resolveStartupUrlProbePlan({
|
|
|
|
|
development: true,
|
|
|
|
|
packagedUi: true,
|
|
|
|
|
skipLocalServer: false,
|
|
|
|
|
}), {
|
|
|
|
|
probeHmrApi: false,
|
|
|
|
|
probeHmrUi: false,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('HMR development probes both API and UI endpoints', () => {
|
|
|
|
|
assert.deepEqual(resolveStartupUrlProbePlan({
|
|
|
|
|
development: true,
|
|
|
|
|
packagedUi: false,
|
|
|
|
|
skipLocalServer: false,
|
|
|
|
|
}), {
|
|
|
|
|
probeHmrApi: true,
|
|
|
|
|
probeHmrUi: true,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('serverless HMR development skips only the local API probe', () => {
|
|
|
|
|
assert.deepEqual(resolveStartupUrlProbePlan({
|
|
|
|
|
development: true,
|
|
|
|
|
packagedUi: false,
|
|
|
|
|
skipLocalServer: true,
|
|
|
|
|
}), {
|
|
|
|
|
probeHmrApi: false,
|
|
|
|
|
probeHmrUi: true,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('production does not probe HMR endpoints', () => {
|
|
|
|
|
assert.deepEqual(resolveStartupUrlProbePlan({
|
|
|
|
|
development: false,
|
|
|
|
|
packagedUi: false,
|
|
|
|
|
skipLocalServer: false,
|
|
|
|
|
}), {
|
|
|
|
|
probeHmrApi: false,
|
|
|
|
|
probeHmrUi: false,
|
|
|
|
|
});
|
|
|
|
|
});
|
2026-08-01 21:31:51 +03:00
|
|
|
|
|
|
|
|
test('keeps Chromium connection limits for the Vite HMR module graph', () => {
|
|
|
|
|
assert.equal(shouldIgnoreLoopbackConnectionLimit({ development: true, packagedUi: false }), false);
|
|
|
|
|
assert.equal(shouldIgnoreLoopbackConnectionLimit({ development: true, packagedUi: true }), true);
|
|
|
|
|
assert.equal(shouldIgnoreLoopbackConnectionLimit({ development: false, packagedUi: false }), true);
|
|
|
|
|
});
|