diff --git a/packages/ses/console-tools.js b/packages/ses/console-tools.js new file mode 100644 index 0000000000..d91a7b4a85 --- /dev/null +++ b/packages/ses/console-tools.js @@ -0,0 +1,8 @@ +export { loggedErrorHandler } from './src/error/assert.js'; +export { + makeCausalConsole, + consoleWhitelist, + makeLoggingConsoleKit, + filterConsole, +} from './src/error/console.js'; +export { assertLogs, throwsAndLogs } from './src/error/throws-and-logs.js'; diff --git a/packages/ses/package.json b/packages/ses/package.json index 7b832b11e6..5d6345bf42 100644 --- a/packages/ses/package.json +++ b/packages/ses/package.json @@ -46,6 +46,7 @@ "require": "./dist/ses.cjs" }, "./tools.js": "./tools.js", + "./console-tools.js": "./console-tools.js", "./assert-shim.js": "./assert-shim.js", "./lockdown-shim.js": "./lockdown-shim.js", "./compartment-shim.js": "./compartment-shim.js", diff --git a/packages/ses/test/error/throws-and-logs.js b/packages/ses/src/error/throws-and-logs.js similarity index 84% rename from packages/ses/test/error/throws-and-logs.js rename to packages/ses/src/error/throws-and-logs.js index c07e366572..f0468b8f7f 100644 --- a/packages/ses/test/error/throws-and-logs.js +++ b/packages/ses/src/error/throws-and-logs.js @@ -1,11 +1,12 @@ +// This module supports testing/debugging, and should be exported from the +// 'ses' package only by console-tools.js +/* eslint-disable no-restricted-globals */ +/* eslint-disable @endo/no-polymorphic-call */ /* global globalThis */ -import { freeze, getPrototypeOf } from '../../src/commons.js'; -import { loggedErrorHandler } from '../../src/error/assert.js'; -import { - makeLoggingConsoleKit, - makeCausalConsole, -} from '../../src/error/console.js'; +import { freeze, getPrototypeOf } from '../commons.js'; +import { loggedErrorHandler } from './assert.js'; +import { makeLoggingConsoleKit, makeCausalConsole } from './console.js'; // For our internal debugging purposes // const internalDebugConsole = console; @@ -80,20 +81,27 @@ export const assertLogs = freeze((t, thunk, goldenLog, options = {}) => { loggedErrorHandler, { shouldResetForDebugging: true }, ); + /** @type {VirtualConsole} */ let useConsole = console; if (checkLogs) { useConsole = loggingConsole; if (wrapWithCausal) { + // @ts-ignore Console vs VirtualConsole vs undefined. + // Not interesting for the testing/debugging nature of this module useConsole = makeCausalConsole(useConsole, { ...loggedErrorHandler, getStackString: getBogusStackString, }); } } else if (wrapWithCausal) { + // @ts-ignore Console vs VirtualConsole vs undefined. + // Not interesting for the testing/debugging nature of this module useConsole = nonLoggingConsole; } const priorConsole = console; + // @ts-ignore Console vs VirtualConsole vs undefined. + // Not interesting for the testing/debugging nature of this module globalThis.console = useConsole; try { // If thunk() throws, we restore the console and the logging array. diff --git a/packages/ses/test/error/test-aggregate-error-console.js b/packages/ses/test/error/test-aggregate-error-console.js index ba192546be..cefa1217b9 100644 --- a/packages/ses/test/error/test-aggregate-error-console.js +++ b/packages/ses/test/error/test-aggregate-error-console.js @@ -1,6 +1,6 @@ import test from 'ava'; import '../../index.js'; -import { throwsAndLogs } from './throws-and-logs.js'; +import { throwsAndLogs } from '../../src/error/throws-and-logs.js'; lockdown(); diff --git a/packages/ses/test/error/test-assert-log.js b/packages/ses/test/error/test-assert-log.js index 1bcbde21cb..386229b934 100644 --- a/packages/ses/test/error/test-assert-log.js +++ b/packages/ses/test/error/test-assert-log.js @@ -1,5 +1,5 @@ import test from 'ava'; -import { assertLogs, throwsAndLogs } from './throws-and-logs.js'; +import { assertLogs, throwsAndLogs } from '../../src/error/throws-and-logs.js'; import { assert } from '../../src/error/assert.js'; const { details: d, quote: q, bare: b } = assert; diff --git a/packages/ses/test/error/test-error-cause-console.js b/packages/ses/test/error/test-error-cause-console.js index 323558d229..de6391c776 100644 --- a/packages/ses/test/error/test-error-cause-console.js +++ b/packages/ses/test/error/test-error-cause-console.js @@ -1,6 +1,6 @@ import test from 'ava'; import '../../index.js'; -import { throwsAndLogs } from './throws-and-logs.js'; +import { throwsAndLogs } from '../../src/error/throws-and-logs.js'; lockdown(); diff --git a/packages/ses/test/error/test-filtering-console.js b/packages/ses/test/error/test-filtering-console.js index 745548b1a1..0782112089 100644 --- a/packages/ses/test/error/test-filtering-console.js +++ b/packages/ses/test/error/test-filtering-console.js @@ -1,7 +1,7 @@ import test from 'ava'; import '../../index.js'; import { filterConsole } from '../../src/error/console.js'; -import { assertLogs } from './throws-and-logs.js'; +import { assertLogs } from '../../src/error/throws-and-logs.js'; lockdown(); diff --git a/packages/ses/test/error/test-permit-removal-warnings.js b/packages/ses/test/error/test-permit-removal-warnings.js index ab83b430f9..6c0f8620ef 100644 --- a/packages/ses/test/error/test-permit-removal-warnings.js +++ b/packages/ses/test/error/test-permit-removal-warnings.js @@ -1,6 +1,6 @@ import test from 'ava'; import '../../index.js'; -import { assertLogs } from './throws-and-logs.js'; +import { assertLogs } from '../../src/error/throws-and-logs.js'; const { defineProperties } = Object; const { apply } = Reflect;