Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,27 @@ describe.skipIf(!URL)('Field.datetime on MySQL (#3942)', () => {
await probe.disconnect();
});

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `MYSQL_CELL.config()` — unconditionally LIVE,
// not a parametrised `cell.config()` that would be SQLite for the sqlite
// cell — so every test in this suite pays a fresh live connect, a
// `drop table` and `initObjects(...)` schema-sync DDL against the cell's
// MySQL server. A beforeEach is the heaviest shape in this class: the cost is
// paid PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
driver = new SqlDriver(MYSQL_CELL.config());
await driver.execute(`drop table if exists ${TABLE}`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${TABLE}`).catch(() => {});
Expand DownExpand Up@@ -155,6 +169,12 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
const GOOD = '2026-03-20T12:34:56.000Z';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the #3942 suite's beforeEach above, and this
// one is heavier: it opens a SECOND live connection (`rawDriver()`) to build
// the legacy fixture — raw DDL plus an insert — before constructing the
// driver under test, all per test. A hook inherits `hookTimeout` (measured
// 10000ms), not `testTimeout` (5000ms); the third argument lifts it.
beforeEach(async () => {
// Build the table the way a pre-#3942 build did: TIMESTAMP columns, rows in
// it. The legacy connection is pinned to UTC so the fixture's instants are
Expand All@@ -178,7 +198,7 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand DownExpand Up@@ -234,6 +254,12 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
const SHAPE = { name: LEGACY, fields: { label: { type: 'string' }, at: { type: 'datetime' } } };
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the two beforeEach hooks above. Heaviest of the
// three: a second live connection builds the legacy fixture with raw DDL and
// FIVE inserts before the driver under test is constructed — per test.
// A hook inherits `hookTimeout` (measured 10000ms), not `testTimeout`
// (5000ms); the third argument lifts it.
beforeEach(async () => {
const legacy = rawDriver();
await legacy.execute(`drop table if exists ${LEGACY}`);
Expand All@@ -254,7 +280,7 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
}
await legacy.disconnect();
driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -49,20 +49,36 @@ describe.skipIf(!URL)('Field.datetime on Postgres is timezone-independent (#3912
let driver: SqlDriver;
let serverTimeZone = '';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `PG_CELL.config()` — unconditionally LIVE, not
// a parametrised `cell.config()` that would be SQLite for the sqlite cell —
// so this hook pays a full connect cycle against the cell's Postgres server,
// a `current_setting('TimeZone')` round trip and a disconnect.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
const probe = new SqlDriver(PG_CELL.config());
const res: any = await probe.execute(`select current_setting('TimeZone') as tz`);
serverTimeZone = ((res?.rows ?? res)[0] as any).tz;
await probe.disconnect();
});
}, 60_000);

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the beforeAll above, except this one is paid
// PER TEST rather than once: a fresh live connect, a `drop table ... cascade`
// and `initObjects(...)` schema-sync DDL, for every it() in this suite.
beforeEach(async () => {
driver = new SqlDriver(PG_CELL.config());
await driver.execute(`drop table if exists "${TABLE}" cascade`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists "${TABLE}" cascade`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,14 +98,27 @@ describe.skipIf(!PG_URL)('#10995 — live Postgres, driver told about the object
let driver: SqlDriver;
const TABLE = 'os10995_pref';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// §1–§3 deliberately reuse the connection this hook opens, so the live cost
// of the whole suite is concentrated HERE: a full connect cycle against the
// cell's Postgres server plus the out-of-band `create table` in
// `migrateOutOfBand(...)`. (The §3 it() below is budgeted separately under
// #14100 because it builds a SECOND driver inside its own body.)
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets — so the 5000ms figure in §3's note
// below is correct for that it() and would be wrong for this hook.
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
driver = new SqlDriver(PG_CELL.config());
await migrateOutOfBand(driver, TABLE);
// THE LINE UNDER TEST: the object's field types reach the driver with no
// CREATE TABLE, no ALTER TABLE and no round-trip — what a `skipSchemaSync`
// boot now does in place of doing nothing.
driver.registerObjectMetadata([prefObject(TABLE)]);
});
}, 60_000);

afterAll(async () => {
await driver?.disconnect();
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -151,6 +151,19 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
const LEGACY = 'os3994_legacy';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Both driver arguments here are `MYSQL_CELL.config()` — unconditionally
// LIVE, not the parametrised `cell.config()` the dialect sweep above uses —
// so this hook opens TWO live connections per test: one to build the legacy
// fixture with raw DDL and an insert, then the driver under test. A
// beforeEach pays that PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
// Build the table the way a pre-#3994 build did: a bare TIME column.
const legacy = new SqlDriver(MYSQL_CELL.config());
Expand All@@ -168,7 +181,7 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,27 @@ describe.skipIf(!URL)('Field.datetime on MySQL (#3942)', () => {
await probe.disconnect();
});

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `MYSQL_CELL.config()` — unconditionally LIVE,
// not a parametrised `cell.config()` that would be SQLite for the sqlite
// cell — so every test in this suite pays a fresh live connect, a
// `drop table` and `initObjects(...)` schema-sync DDL against the cell's
// MySQL server. A beforeEach is the heaviest shape in this class: the cost is
// paid PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
driver = new SqlDriver(MYSQL_CELL.config());
await driver.execute(`drop table if exists ${TABLE}`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${TABLE}`).catch(() => {});
Expand DownExpand Up@@ -155,6 +169,12 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
const GOOD = '2026-03-20T12:34:56.000Z';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the #3942 suite's beforeEach above, and this
// one is heavier: it opens a SECOND live connection (`rawDriver()`) to build
// the legacy fixture — raw DDL plus an insert — before constructing the
// driver under test, all per test. A hook inherits `hookTimeout` (measured
// 10000ms), not `testTimeout` (5000ms); the third argument lifts it.
beforeEach(async () => {
// Build the table the way a pre-#3942 build did: TIMESTAMP columns, rows in
// it. The legacy connection is pinned to UTC so the fixture's instants are
Expand All@@ -178,7 +198,7 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand DownExpand Up@@ -234,6 +254,12 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
const SHAPE = { name: LEGACY, fields: { label: { type: 'string' }, at: { type: 'datetime' } } };
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the two beforeEach hooks above. Heaviest of the
// three: a second live connection builds the legacy fixture with raw DDL and
// FIVE inserts before the driver under test is constructed — per test.
// A hook inherits `hookTimeout` (measured 10000ms), not `testTimeout`
// (5000ms); the third argument lifts it.
beforeEach(async () => {
const legacy = rawDriver();
await legacy.execute(`drop table if exists ${LEGACY}`);
Expand All@@ -254,7 +280,7 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
}
await legacy.disconnect();
driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -49,20 +49,36 @@ describe.skipIf(!URL)('Field.datetime on Postgres is timezone-independent (#3912
let driver: SqlDriver;
let serverTimeZone = '';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `PG_CELL.config()` — unconditionally LIVE, not
// a parametrised `cell.config()` that would be SQLite for the sqlite cell —
// so this hook pays a full connect cycle against the cell's Postgres server,
// a `current_setting('TimeZone')` round trip and a disconnect.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
const probe = new SqlDriver(PG_CELL.config());
const res: any = await probe.execute(`select current_setting('TimeZone') as tz`);
serverTimeZone = ((res?.rows ?? res)[0] as any).tz;
await probe.disconnect();
});
}, 60_000);

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the beforeAll above, except this one is paid
// PER TEST rather than once: a fresh live connect, a `drop table ... cascade`
// and `initObjects(...)` schema-sync DDL, for every it() in this suite.
beforeEach(async () => {
driver = new SqlDriver(PG_CELL.config());
await driver.execute(`drop table if exists "${TABLE}" cascade`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists "${TABLE}" cascade`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,14 +98,27 @@ describe.skipIf(!PG_URL)('#10995 — live Postgres, driver told about the object
let driver: SqlDriver;
const TABLE = 'os10995_pref';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// §1–§3 deliberately reuse the connection this hook opens, so the live cost
// of the whole suite is concentrated HERE: a full connect cycle against the
// cell's Postgres server plus the out-of-band `create table` in
// `migrateOutOfBand(...)`. (The §3 it() below is budgeted separately under
// #14100 because it builds a SECOND driver inside its own body.)
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets — so the 5000ms figure in §3's note
// below is correct for that it() and would be wrong for this hook.
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
driver = new SqlDriver(PG_CELL.config());
await migrateOutOfBand(driver, TABLE);
// THE LINE UNDER TEST: the object's field types reach the driver with no
// CREATE TABLE, no ALTER TABLE and no round-trip — what a `skipSchemaSync`
// boot now does in place of doing nothing.
driver.registerObjectMetadata([prefObject(TABLE)]);
});
}, 60_000);

afterAll(async () => {
await driver?.disconnect();
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -151,6 +151,19 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
const LEGACY = 'os3994_legacy';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Both driver arguments here are `MYSQL_CELL.config()` — unconditionally
// LIVE, not the parametrised `cell.config()` the dialect sweep above uses —
// so this hook opens TWO live connections per test: one to build the legacy
// fixture with raw DDL and an insert, then the driver under test. A
// beforeEach pays that PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
// Build the table the way a pre-#3994 build did: a bare TIME column.
const legacy = new SqlDriver(MYSQL_CELL.config());
Expand All@@ -168,7 +181,7 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,27 @@ describe.skipIf(!URL)('Field.datetime on MySQL (#3942)', () => {
await probe.disconnect();
});

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `MYSQL_CELL.config()` — unconditionally LIVE,
// not a parametrised `cell.config()` that would be SQLite for the sqlite
// cell — so every test in this suite pays a fresh live connect, a
// `drop table` and `initObjects(...)` schema-sync DDL against the cell's
// MySQL server. A beforeEach is the heaviest shape in this class: the cost is
// paid PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
driver = new SqlDriver(MYSQL_CELL.config());
await driver.execute(`drop table if exists ${TABLE}`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${TABLE}`).catch(() => {});
Expand DownExpand Up@@ -155,6 +169,12 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
const GOOD = '2026-03-20T12:34:56.000Z';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the #3942 suite's beforeEach above, and this
// one is heavier: it opens a SECOND live connection (`rawDriver()`) to build
// the legacy fixture — raw DDL plus an insert — before constructing the
// driver under test, all per test. A hook inherits `hookTimeout` (measured
// 10000ms), not `testTimeout` (5000ms); the third argument lifts it.
beforeEach(async () => {
// Build the table the way a pre-#3942 build did: TIMESTAMP columns, rows in
// it. The legacy connection is pinned to UTC so the fixture's instants are
Expand All@@ -178,7 +198,7 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand DownExpand Up@@ -234,6 +254,12 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
const SHAPE = { name: LEGACY, fields: { label: { type: 'string' }, at: { type: 'datetime' } } };
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the two beforeEach hooks above. Heaviest of the
// three: a second live connection builds the legacy fixture with raw DDL and
// FIVE inserts before the driver under test is constructed — per test.
// A hook inherits `hookTimeout` (measured 10000ms), not `testTimeout`
// (5000ms); the third argument lifts it.
beforeEach(async () => {
const legacy = rawDriver();
await legacy.execute(`drop table if exists ${LEGACY}`);
Expand All@@ -254,7 +280,7 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
}
await legacy.disconnect();
driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -49,20 +49,36 @@ describe.skipIf(!URL)('Field.datetime on Postgres is timezone-independent (#3912
let driver: SqlDriver;
let serverTimeZone = '';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `PG_CELL.config()` — unconditionally LIVE, not
// a parametrised `cell.config()` that would be SQLite for the sqlite cell —
// so this hook pays a full connect cycle against the cell's Postgres server,
// a `current_setting('TimeZone')` round trip and a disconnect.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
const probe = new SqlDriver(PG_CELL.config());
const res: any = await probe.execute(`select current_setting('TimeZone') as tz`);
serverTimeZone = ((res?.rows ?? res)[0] as any).tz;
await probe.disconnect();
});
}, 60_000);

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the beforeAll above, except this one is paid
// PER TEST rather than once: a fresh live connect, a `drop table ... cascade`
// and `initObjects(...)` schema-sync DDL, for every it() in this suite.
beforeEach(async () => {
driver = new SqlDriver(PG_CELL.config());
await driver.execute(`drop table if exists "${TABLE}" cascade`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists "${TABLE}" cascade`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,14 +98,27 @@ describe.skipIf(!PG_URL)('#10995 — live Postgres, driver told about the object
let driver: SqlDriver;
const TABLE = 'os10995_pref';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// §1–§3 deliberately reuse the connection this hook opens, so the live cost
// of the whole suite is concentrated HERE: a full connect cycle against the
// cell's Postgres server plus the out-of-band `create table` in
// `migrateOutOfBand(...)`. (The §3 it() below is budgeted separately under
// #14100 because it builds a SECOND driver inside its own body.)
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets — so the 5000ms figure in §3's note
// below is correct for that it() and would be wrong for this hook.
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
driver = new SqlDriver(PG_CELL.config());
await migrateOutOfBand(driver, TABLE);
// THE LINE UNDER TEST: the object's field types reach the driver with no
// CREATE TABLE, no ALTER TABLE and no round-trip — what a `skipSchemaSync`
// boot now does in place of doing nothing.
driver.registerObjectMetadata([prefObject(TABLE)]);
});
}, 60_000);

afterAll(async () => {
await driver?.disconnect();
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -151,6 +151,19 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
const LEGACY = 'os3994_legacy';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Both driver arguments here are `MYSQL_CELL.config()` — unconditionally
// LIVE, not the parametrised `cell.config()` the dialect sweep above uses —
// so this hook opens TWO live connections per test: one to build the legacy
// fixture with raw DDL and an insert, then the driver under test. A
// beforeEach pays that PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
// Build the table the way a pre-#3994 build did: a bare TIME column.
const legacy = new SqlDriver(MYSQL_CELL.config());
Expand All@@ -168,7 +181,7 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,27 @@ describe.skipIf(!URL)('Field.datetime on MySQL (#3942)', () => {
await probe.disconnect();
});

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `MYSQL_CELL.config()` — unconditionally LIVE,
// not a parametrised `cell.config()` that would be SQLite for the sqlite
// cell — so every test in this suite pays a fresh live connect, a
// `drop table` and `initObjects(...)` schema-sync DDL against the cell's
// MySQL server. A beforeEach is the heaviest shape in this class: the cost is
// paid PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
driver = new SqlDriver(MYSQL_CELL.config());
await driver.execute(`drop table if exists ${TABLE}`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${TABLE}`).catch(() => {});
Expand DownExpand Up@@ -155,6 +169,12 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
const GOOD = '2026-03-20T12:34:56.000Z';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the #3942 suite's beforeEach above, and this
// one is heavier: it opens a SECOND live connection (`rawDriver()`) to build
// the legacy fixture — raw DDL plus an insert — before constructing the
// driver under test, all per test. A hook inherits `hookTimeout` (measured
// 10000ms), not `testTimeout` (5000ms); the third argument lifts it.
beforeEach(async () => {
// Build the table the way a pre-#3942 build did: TIMESTAMP columns, rows in
// it. The legacy connection is pinned to UTC so the fixture's instants are
Expand All@@ -178,7 +198,7 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand DownExpand Up@@ -234,6 +254,12 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
const SHAPE = { name: LEGACY, fields: { label: { type: 'string' }, at: { type: 'datetime' } } };
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the two beforeEach hooks above. Heaviest of the
// three: a second live connection builds the legacy fixture with raw DDL and
// FIVE inserts before the driver under test is constructed — per test.
// A hook inherits `hookTimeout` (measured 10000ms), not `testTimeout`
// (5000ms); the third argument lifts it.
beforeEach(async () => {
const legacy = rawDriver();
await legacy.execute(`drop table if exists ${LEGACY}`);
Expand All@@ -254,7 +280,7 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
}
await legacy.disconnect();
driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -49,20 +49,36 @@ describe.skipIf(!URL)('Field.datetime on Postgres is timezone-independent (#3912
let driver: SqlDriver;
let serverTimeZone = '';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `PG_CELL.config()` — unconditionally LIVE, not
// a parametrised `cell.config()` that would be SQLite for the sqlite cell —
// so this hook pays a full connect cycle against the cell's Postgres server,
// a `current_setting('TimeZone')` round trip and a disconnect.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
const probe = new SqlDriver(PG_CELL.config());
const res: any = await probe.execute(`select current_setting('TimeZone') as tz`);
serverTimeZone = ((res?.rows ?? res)[0] as any).tz;
await probe.disconnect();
});
}, 60_000);

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the beforeAll above, except this one is paid
// PER TEST rather than once: a fresh live connect, a `drop table ... cascade`
// and `initObjects(...)` schema-sync DDL, for every it() in this suite.
beforeEach(async () => {
driver = new SqlDriver(PG_CELL.config());
await driver.execute(`drop table if exists "${TABLE}" cascade`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists "${TABLE}" cascade`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,14 +98,27 @@ describe.skipIf(!PG_URL)('#10995 — live Postgres, driver told about the object
let driver: SqlDriver;
const TABLE = 'os10995_pref';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// §1–§3 deliberately reuse the connection this hook opens, so the live cost
// of the whole suite is concentrated HERE: a full connect cycle against the
// cell's Postgres server plus the out-of-band `create table` in
// `migrateOutOfBand(...)`. (The §3 it() below is budgeted separately under
// #14100 because it builds a SECOND driver inside its own body.)
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets — so the 5000ms figure in §3's note
// below is correct for that it() and would be wrong for this hook.
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
driver = new SqlDriver(PG_CELL.config());
await migrateOutOfBand(driver, TABLE);
// THE LINE UNDER TEST: the object's field types reach the driver with no
// CREATE TABLE, no ALTER TABLE and no round-trip — what a `skipSchemaSync`
// boot now does in place of doing nothing.
driver.registerObjectMetadata([prefObject(TABLE)]);
});
}, 60_000);

afterAll(async () => {
await driver?.disconnect();
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -151,6 +151,19 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
const LEGACY = 'os3994_legacy';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Both driver arguments here are `MYSQL_CELL.config()` — unconditionally
// LIVE, not the parametrised `cell.config()` the dialect sweep above uses —
// so this hook opens TWO live connections per test: one to build the legacy
// fixture with raw DDL and an insert, then the driver under test. A
// beforeEach pays that PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
// Build the table the way a pre-#3994 build did: a bare TIME column.
const legacy = new SqlDriver(MYSQL_CELL.config());
Expand All@@ -168,7 +181,7 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,27 @@ describe.skipIf(!URL)('Field.datetime on MySQL (#3942)', () => {
await probe.disconnect();
});

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `MYSQL_CELL.config()` — unconditionally LIVE,
// not a parametrised `cell.config()` that would be SQLite for the sqlite
// cell — so every test in this suite pays a fresh live connect, a
// `drop table` and `initObjects(...)` schema-sync DDL against the cell's
// MySQL server. A beforeEach is the heaviest shape in this class: the cost is
// paid PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
driver = new SqlDriver(MYSQL_CELL.config());
await driver.execute(`drop table if exists ${TABLE}`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${TABLE}`).catch(() => {});
Expand DownExpand Up@@ -155,6 +169,12 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
const GOOD = '2026-03-20T12:34:56.000Z';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the #3942 suite's beforeEach above, and this
// one is heavier: it opens a SECOND live connection (`rawDriver()`) to build
// the legacy fixture — raw DDL plus an insert — before constructing the
// driver under test, all per test. A hook inherits `hookTimeout` (measured
// 10000ms), not `testTimeout` (5000ms); the third argument lifts it.
beforeEach(async () => {
// Build the table the way a pre-#3942 build did: TIMESTAMP columns, rows in
// it. The legacy connection is pinned to UTC so the fixture's instants are
Expand All@@ -178,7 +198,7 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand DownExpand Up@@ -234,6 +254,12 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
const SHAPE = { name: LEGACY, fields: { label: { type: 'string' }, at: { type: 'datetime' } } };
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the two beforeEach hooks above. Heaviest of the
// three: a second live connection builds the legacy fixture with raw DDL and
// FIVE inserts before the driver under test is constructed — per test.
// A hook inherits `hookTimeout` (measured 10000ms), not `testTimeout`
// (5000ms); the third argument lifts it.
beforeEach(async () => {
const legacy = rawDriver();
await legacy.execute(`drop table if exists ${LEGACY}`);
Expand All@@ -254,7 +280,7 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
}
await legacy.disconnect();
driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -49,20 +49,36 @@ describe.skipIf(!URL)('Field.datetime on Postgres is timezone-independent (#3912
let driver: SqlDriver;
let serverTimeZone = '';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `PG_CELL.config()` — unconditionally LIVE, not
// a parametrised `cell.config()` that would be SQLite for the sqlite cell —
// so this hook pays a full connect cycle against the cell's Postgres server,
// a `current_setting('TimeZone')` round trip and a disconnect.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
const probe = new SqlDriver(PG_CELL.config());
const res: any = await probe.execute(`select current_setting('TimeZone') as tz`);
serverTimeZone = ((res?.rows ?? res)[0] as any).tz;
await probe.disconnect();
});
}, 60_000);

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the beforeAll above, except this one is paid
// PER TEST rather than once: a fresh live connect, a `drop table ... cascade`
// and `initObjects(...)` schema-sync DDL, for every it() in this suite.
beforeEach(async () => {
driver = new SqlDriver(PG_CELL.config());
await driver.execute(`drop table if exists "${TABLE}" cascade`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists "${TABLE}" cascade`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,14 +98,27 @@ describe.skipIf(!PG_URL)('#10995 — live Postgres, driver told about the object
let driver: SqlDriver;
const TABLE = 'os10995_pref';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// §1–§3 deliberately reuse the connection this hook opens, so the live cost
// of the whole suite is concentrated HERE: a full connect cycle against the
// cell's Postgres server plus the out-of-band `create table` in
// `migrateOutOfBand(...)`. (The §3 it() below is budgeted separately under
// #14100 because it builds a SECOND driver inside its own body.)
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets — so the 5000ms figure in §3's note
// below is correct for that it() and would be wrong for this hook.
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
driver = new SqlDriver(PG_CELL.config());
await migrateOutOfBand(driver, TABLE);
// THE LINE UNDER TEST: the object's field types reach the driver with no
// CREATE TABLE, no ALTER TABLE and no round-trip — what a `skipSchemaSync`
// boot now does in place of doing nothing.
driver.registerObjectMetadata([prefObject(TABLE)]);
});
}, 60_000);

afterAll(async () => {
await driver?.disconnect();
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -151,6 +151,19 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
const LEGACY = 'os3994_legacy';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Both driver arguments here are `MYSQL_CELL.config()` — unconditionally
// LIVE, not the parametrised `cell.config()` the dialect sweep above uses —
// so this hook opens TWO live connections per test: one to build the legacy
// fixture with raw DDL and an insert, then the driver under test. A
// beforeEach pays that PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
// Build the table the way a pre-#3994 build did: a bare TIME column.
const legacy = new SqlDriver(MYSQL_CELL.config());
Expand All@@ -168,7 +181,7 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,27 @@ describe.skipIf(!URL)('Field.datetime on MySQL (#3942)', () => {
await probe.disconnect();
});

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `MYSQL_CELL.config()` — unconditionally LIVE,
// not a parametrised `cell.config()` that would be SQLite for the sqlite
// cell — so every test in this suite pays a fresh live connect, a
// `drop table` and `initObjects(...)` schema-sync DDL against the cell's
// MySQL server. A beforeEach is the heaviest shape in this class: the cost is
// paid PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
driver = new SqlDriver(MYSQL_CELL.config());
await driver.execute(`drop table if exists ${TABLE}`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${TABLE}`).catch(() => {});
Expand DownExpand Up@@ -155,6 +169,12 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
const GOOD = '2026-03-20T12:34:56.000Z';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the #3942 suite's beforeEach above, and this
// one is heavier: it opens a SECOND live connection (`rawDriver()`) to build
// the legacy fixture — raw DDL plus an insert — before constructing the
// driver under test, all per test. A hook inherits `hookTimeout` (measured
// 10000ms), not `testTimeout` (5000ms); the third argument lifts it.
beforeEach(async () => {
// Build the table the way a pre-#3942 build did: TIMESTAMP columns, rows in
// it. The legacy connection is pinned to UTC so the fixture's instants are
Expand All@@ -178,7 +198,7 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand DownExpand Up@@ -234,6 +254,12 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
const SHAPE = { name: LEGACY, fields: { label: { type: 'string' }, at: { type: 'datetime' } } };
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the two beforeEach hooks above. Heaviest of the
// three: a second live connection builds the legacy fixture with raw DDL and
// FIVE inserts before the driver under test is constructed — per test.
// A hook inherits `hookTimeout` (measured 10000ms), not `testTimeout`
// (5000ms); the third argument lifts it.
beforeEach(async () => {
const legacy = rawDriver();
await legacy.execute(`drop table if exists ${LEGACY}`);
Expand All@@ -254,7 +280,7 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
}
await legacy.disconnect();
driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -49,20 +49,36 @@ describe.skipIf(!URL)('Field.datetime on Postgres is timezone-independent (#3912
let driver: SqlDriver;
let serverTimeZone = '';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `PG_CELL.config()` — unconditionally LIVE, not
// a parametrised `cell.config()` that would be SQLite for the sqlite cell —
// so this hook pays a full connect cycle against the cell's Postgres server,
// a `current_setting('TimeZone')` round trip and a disconnect.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
const probe = new SqlDriver(PG_CELL.config());
const res: any = await probe.execute(`select current_setting('TimeZone') as tz`);
serverTimeZone = ((res?.rows ?? res)[0] as any).tz;
await probe.disconnect();
});
}, 60_000);

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the beforeAll above, except this one is paid
// PER TEST rather than once: a fresh live connect, a `drop table ... cascade`
// and `initObjects(...)` schema-sync DDL, for every it() in this suite.
beforeEach(async () => {
driver = new SqlDriver(PG_CELL.config());
await driver.execute(`drop table if exists "${TABLE}" cascade`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists "${TABLE}" cascade`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,14 +98,27 @@ describe.skipIf(!PG_URL)('#10995 — live Postgres, driver told about the object
let driver: SqlDriver;
const TABLE = 'os10995_pref';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// §1–§3 deliberately reuse the connection this hook opens, so the live cost
// of the whole suite is concentrated HERE: a full connect cycle against the
// cell's Postgres server plus the out-of-band `create table` in
// `migrateOutOfBand(...)`. (The §3 it() below is budgeted separately under
// #14100 because it builds a SECOND driver inside its own body.)
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets — so the 5000ms figure in §3's note
// below is correct for that it() and would be wrong for this hook.
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
driver = new SqlDriver(PG_CELL.config());
await migrateOutOfBand(driver, TABLE);
// THE LINE UNDER TEST: the object's field types reach the driver with no
// CREATE TABLE, no ALTER TABLE and no round-trip — what a `skipSchemaSync`
// boot now does in place of doing nothing.
driver.registerObjectMetadata([prefObject(TABLE)]);
});
}, 60_000);

afterAll(async () => {
await driver?.disconnect();
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -151,6 +151,19 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
const LEGACY = 'os3994_legacy';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Both driver arguments here are `MYSQL_CELL.config()` — unconditionally
// LIVE, not the parametrised `cell.config()` the dialect sweep above uses —
// so this hook opens TWO live connections per test: one to build the legacy
// fixture with raw DDL and an insert, then the driver under test. A
// beforeEach pays that PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
// Build the table the way a pre-#3994 build did: a bare TIME column.
const legacy = new SqlDriver(MYSQL_CELL.config());
Expand All@@ -168,7 +181,7 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,27 @@ describe.skipIf(!URL)('Field.datetime on MySQL (#3942)', () => {
await probe.disconnect();
});

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `MYSQL_CELL.config()` — unconditionally LIVE,
// not a parametrised `cell.config()` that would be SQLite for the sqlite
// cell — so every test in this suite pays a fresh live connect, a
// `drop table` and `initObjects(...)` schema-sync DDL against the cell's
// MySQL server. A beforeEach is the heaviest shape in this class: the cost is
// paid PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
driver = new SqlDriver(MYSQL_CELL.config());
await driver.execute(`drop table if exists ${TABLE}`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${TABLE}`).catch(() => {});
Expand DownExpand Up@@ -155,6 +169,12 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
const GOOD = '2026-03-20T12:34:56.000Z';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the #3942 suite's beforeEach above, and this
// one is heavier: it opens a SECOND live connection (`rawDriver()`) to build
// the legacy fixture — raw DDL plus an insert — before constructing the
// driver under test, all per test. A hook inherits `hookTimeout` (measured
// 10000ms), not `testTimeout` (5000ms); the third argument lifts it.
beforeEach(async () => {
// Build the table the way a pre-#3942 build did: TIMESTAMP columns, rows in
// it. The legacy connection is pinned to UTC so the fixture's instants are
Expand All@@ -178,7 +198,7 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand DownExpand Up@@ -234,6 +254,12 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
const SHAPE = { name: LEGACY, fields: { label: { type: 'string' }, at: { type: 'datetime' } } };
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the two beforeEach hooks above. Heaviest of the
// three: a second live connection builds the legacy fixture with raw DDL and
// FIVE inserts before the driver under test is constructed — per test.
// A hook inherits `hookTimeout` (measured 10000ms), not `testTimeout`
// (5000ms); the third argument lifts it.
beforeEach(async () => {
const legacy = rawDriver();
await legacy.execute(`drop table if exists ${LEGACY}`);
Expand All@@ -254,7 +280,7 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
}
await legacy.disconnect();
driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -49,20 +49,36 @@ describe.skipIf(!URL)('Field.datetime on Postgres is timezone-independent (#3912
let driver: SqlDriver;
let serverTimeZone = '';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `PG_CELL.config()` — unconditionally LIVE, not
// a parametrised `cell.config()` that would be SQLite for the sqlite cell —
// so this hook pays a full connect cycle against the cell's Postgres server,
// a `current_setting('TimeZone')` round trip and a disconnect.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
const probe = new SqlDriver(PG_CELL.config());
const res: any = await probe.execute(`select current_setting('TimeZone') as tz`);
serverTimeZone = ((res?.rows ?? res)[0] as any).tz;
await probe.disconnect();
});
}, 60_000);

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the beforeAll above, except this one is paid
// PER TEST rather than once: a fresh live connect, a `drop table ... cascade`
// and `initObjects(...)` schema-sync DDL, for every it() in this suite.
beforeEach(async () => {
driver = new SqlDriver(PG_CELL.config());
await driver.execute(`drop table if exists "${TABLE}" cascade`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists "${TABLE}" cascade`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,14 +98,27 @@ describe.skipIf(!PG_URL)('#10995 — live Postgres, driver told about the object
let driver: SqlDriver;
const TABLE = 'os10995_pref';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// §1–§3 deliberately reuse the connection this hook opens, so the live cost
// of the whole suite is concentrated HERE: a full connect cycle against the
// cell's Postgres server plus the out-of-band `create table` in
// `migrateOutOfBand(...)`. (The §3 it() below is budgeted separately under
// #14100 because it builds a SECOND driver inside its own body.)
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets — so the 5000ms figure in §3's note
// below is correct for that it() and would be wrong for this hook.
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
driver = new SqlDriver(PG_CELL.config());
await migrateOutOfBand(driver, TABLE);
// THE LINE UNDER TEST: the object's field types reach the driver with no
// CREATE TABLE, no ALTER TABLE and no round-trip — what a `skipSchemaSync`
// boot now does in place of doing nothing.
driver.registerObjectMetadata([prefObject(TABLE)]);
});
}, 60_000);

afterAll(async () => {
await driver?.disconnect();
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -151,6 +151,19 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
const LEGACY = 'os3994_legacy';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Both driver arguments here are `MYSQL_CELL.config()` — unconditionally
// LIVE, not the parametrised `cell.config()` the dialect sweep above uses —
// so this hook opens TWO live connections per test: one to build the legacy
// fixture with raw DDL and an insert, then the driver under test. A
// beforeEach pays that PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
// Build the table the way a pre-#3994 build did: a bare TIME column.
const legacy = new SqlDriver(MYSQL_CELL.config());
Expand All@@ -168,7 +181,7 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
Expand Up@@ -61,13 +61,27 @@ describe.skipIf(!URL)('Field.datetime on MySQL (#3942)', () => {
await probe.disconnect();
});

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `MYSQL_CELL.config()` — unconditionally LIVE,
// not a parametrised `cell.config()` that would be SQLite for the sqlite
// cell — so every test in this suite pays a fresh live connect, a
// `drop table` and `initObjects(...)` schema-sync DDL against the cell's
// MySQL server. A beforeEach is the heaviest shape in this class: the cost is
// paid PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
driver = new SqlDriver(MYSQL_CELL.config());
await driver.execute(`drop table if exists ${TABLE}`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${TABLE}`).catch(() => {});
Expand DownExpand Up@@ -155,6 +169,12 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
const GOOD = '2026-03-20T12:34:56.000Z';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the #3942 suite's beforeEach above, and this
// one is heavier: it opens a SECOND live connection (`rawDriver()`) to build
// the legacy fixture — raw DDL plus an insert — before constructing the
// driver under test, all per test. A hook inherits `hookTimeout` (measured
// 10000ms), not `testTimeout` (5000ms); the third argument lifts it.
beforeEach(async () => {
// Build the table the way a pre-#3942 build did: TIMESTAMP columns, rows in
// it. The legacy connection is pinned to UTC so the fixture's instants are
Expand All@@ -178,7 +198,7 @@ describe.skipIf(!URL)('MySQL TIMESTAMP → DATETIME(3) migration (#3942)', () =>
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand DownExpand Up@@ -234,6 +254,12 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
const SHAPE = { name: LEGACY, fields: { label: { type: 'string' }, at: { type: 'datetime' } } };
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the two beforeEach hooks above. Heaviest of the
// three: a second live connection builds the legacy fixture with raw DDL and
// FIVE inserts before the driver under test is constructed — per test.
// A hook inherits `hookTimeout` (measured 10000ms), not `testTimeout`
// (5000ms); the third argument lifts it.
beforeEach(async () => {
const legacy = rawDriver();
await legacy.execute(`drop table if exists ${LEGACY}`);
Expand All@@ -254,7 +280,7 @@ describe.skipIf(!URL)('os migrate plan lists the MySQL widening (#3954)', () =>
}
await legacy.disconnect();
driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -49,20 +49,36 @@ describe.skipIf(!URL)('Field.datetime on Postgres is timezone-independent (#3912
let driver: SqlDriver;
let serverTimeZone = '';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// The driver argument here is `PG_CELL.config()` — unconditionally LIVE, not
// a parametrised `cell.config()` that would be SQLite for the sqlite cell —
// so this hook pays a full connect cycle against the cell's Postgres server,
// a `current_setting('TimeZone')` round trip and a disconnect.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
const probe = new SqlDriver(PG_CELL.config());
const res: any = await probe.execute(`select current_setting('TimeZone') as tz`);
serverTimeZone = ((res?.rows ?? res)[0] as any).tz;
await probe.disconnect();
});
}, 60_000);

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Same live-cell reasoning as the beforeAll above, except this one is paid
// PER TEST rather than once: a fresh live connect, a `drop table ... cascade`
// and `initObjects(...)` schema-sync DDL, for every it() in this suite.
beforeEach(async () => {
driver = new SqlDriver(PG_CELL.config());
await driver.execute(`drop table if exists "${TABLE}" cascade`);
await driver.initObjects([
{ name: TABLE, fields: { label: { type: 'string' }, at: { type: 'datetime' } } },
]);
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists "${TABLE}" cascade`).catch(() => {});
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -98,14 +98,27 @@ describe.skipIf(!PG_URL)('#10995 — live Postgres, driver told about the object
let driver: SqlDriver;
const TABLE = 'os10995_pref';

// ── Why this beforeAll carries an explicit 60_000 budget (#14213) ──
// §1–§3 deliberately reuse the connection this hook opens, so the live cost
// of the whole suite is concentrated HERE: a full connect cycle against the
// cell's Postgres server plus the out-of-band `create table` in
// `migrateOutOfBand(...)`. (The §3 it() below is budgeted separately under
// #14100 because it builds a SECOND driver inside its own body.)
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets — so the 5000ms figure in §3's note
// below is correct for that it() and would be wrong for this hook.
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeAll(async () => {
driver = new SqlDriver(PG_CELL.config());
await migrateOutOfBand(driver, TABLE);
// THE LINE UNDER TEST: the object's field types reach the driver with no
// CREATE TABLE, no ALTER TABLE and no round-trip — what a `skipSchemaSync`
// boot now does in place of doing nothing.
driver.registerObjectMetadata([prefObject(TABLE)]);
});
}, 60_000);

afterAll(async () => {
await driver?.disconnect();
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -151,6 +151,19 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
const LEGACY = 'os3994_legacy';
let driver: SqlDriver;

// ── Why this beforeEach carries an explicit 60_000 budget (#14213) ──
// Both driver arguments here are `MYSQL_CELL.config()` — unconditionally
// LIVE, not the parametrised `cell.config()` the dialect sweep above uses —
// so this hook opens TWO live connections per test: one to build the legacy
// fixture with raw DDL and an insert, then the driver under test. A
// beforeEach pays that PER TEST, not once.
// ⚠️ A hook inherits `hookTimeout`, NOT `testTimeout`. Measured in this
// package's config (which sets neither, so both are vitest's own defaults):
// an unbudgeted hook dies at 10000ms ("Hook timed out in 10000ms"), not at
// the 5000ms an unbudgeted it() gets. Ten seconds is still a ceiling nobody
// chose for live work, and the third argument does lift it (measured).
// ⛔ NOT a claim that this hook is known to time out: it was found by a
// per-site AST walk over the package, never by a measured red.
beforeEach(async () => {
// Build the table the way a pre-#3994 build did: a bare TIME column.
const legacy = new SqlDriver(MYSQL_CELL.config());
Expand All@@ -168,7 +181,7 @@ describe.skipIf(!MY_URL)('MySQL TIME → TIME(3) widening (#3994)', () => {
await legacy.disconnect();

driver = new SqlDriver(MYSQL_CELL.config());
});
}, 60_000);

afterEach(async () => {
await driver.execute(`drop table if exists ${LEGACY}`).catch(() => {});
Expand Down
Loading