2023-11-21 13:30:02 -07:00
|
|
|
import { spawnPromisified } from '../common/index.mjs';
|
|
|
|
import * as fixtures from '../common/fixtures.mjs';
|
|
|
|
import { describe, it } from 'node:test';
|
|
|
|
import assert from 'node:assert';
|
|
|
|
|
|
|
|
const fixturePath = fixtures.path('disable-warning.js');
|
|
|
|
const fixturePathWorker = fixtures.path('disable-warning-worker.js');
|
|
|
|
const dep1Message = /\(node:\d+\) \[DEP1\] DeprecationWarning/;
|
|
|
|
const dep2Message = /\(node:\d+\) \[DEP2\] DeprecationWarning/;
|
|
|
|
const experimentalWarningMessage = /\(node:\d+\) ExperimentalWarning/;
|
|
|
|
|
2024-03-23 22:11:28 +01:00
|
|
|
describe('process warnings', { concurrency: !process.env.TEST_PARALLEL }, () => {
|
2023-11-21 13:30:02 -07:00
|
|
|
|
|
|
|
it('should emit all warnings by default', async () => {
|
|
|
|
const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [
|
|
|
|
fixturePath,
|
|
|
|
]);
|
|
|
|
|
|
|
|
assert.strictEqual(stdout, '');
|
|
|
|
assert.match(stderr, dep1Message);
|
|
|
|
assert.match(stderr, dep2Message);
|
|
|
|
assert.match(stderr, experimentalWarningMessage);
|
|
|
|
assert.strictEqual(code, 0);
|
|
|
|
assert.strictEqual(signal, null);
|
|
|
|
});
|
|
|
|
|
2024-03-23 22:11:28 +01:00
|
|
|
describe('--no-warnings', { concurrency: !process.env.TEST_PARALLEL }, () => {
|
2023-11-21 13:30:02 -07:00
|
|
|
it('should silence all warnings by default', async () => {
|
|
|
|
const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [
|
|
|
|
'--no-warnings',
|
|
|
|
fixturePath,
|
|
|
|
]);
|
|
|
|
|
|
|
|
assert.strictEqual(stdout, '');
|
|
|
|
assert.doesNotMatch(stderr, dep1Message);
|
|
|
|
assert.doesNotMatch(stderr, dep2Message);
|
|
|
|
assert.doesNotMatch(stderr, experimentalWarningMessage);
|
|
|
|
assert.strictEqual(code, 0);
|
|
|
|
assert.strictEqual(signal, null);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2024-03-23 22:11:28 +01:00
|
|
|
describe('--no-deprecation', { concurrency: !process.env.TEST_PARALLEL }, () => {
|
2023-11-21 13:30:02 -07:00
|
|
|
it('should silence all deprecation warnings', async () => {
|
|
|
|
const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [
|
|
|
|
'--no-deprecation',
|
|
|
|
fixturePath,
|
|
|
|
]);
|
|
|
|
|
|
|
|
assert.strictEqual(stdout, '');
|
|
|
|
assert.doesNotMatch(stderr, dep1Message);
|
|
|
|
assert.doesNotMatch(stderr, dep2Message);
|
|
|
|
assert.match(stderr, experimentalWarningMessage);
|
|
|
|
assert.strictEqual(code, 0);
|
|
|
|
assert.strictEqual(signal, null);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2024-03-23 22:11:28 +01:00
|
|
|
describe('--disable-warning', { concurrency: !process.env.TEST_PARALLEL }, () => {
|
2023-11-21 13:30:02 -07:00
|
|
|
it('should silence deprecation warning DEP1', async () => {
|
|
|
|
const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [
|
|
|
|
'--disable-warning=DEP1',
|
|
|
|
fixturePath,
|
|
|
|
]);
|
|
|
|
|
|
|
|
assert.strictEqual(stdout, '');
|
|
|
|
assert.doesNotMatch(stderr, dep1Message);
|
|
|
|
assert.match(stderr, dep2Message);
|
|
|
|
assert.match(stderr, experimentalWarningMessage);
|
|
|
|
assert.strictEqual(code, 0);
|
|
|
|
assert.strictEqual(signal, null);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should silence deprecation warnings DEP1 and DEP2', async () => {
|
|
|
|
const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [
|
|
|
|
'--disable-warning=DEP1',
|
|
|
|
'--disable-warning=DEP2',
|
|
|
|
fixturePath,
|
|
|
|
]);
|
|
|
|
|
|
|
|
assert.strictEqual(stdout, '');
|
|
|
|
assert.doesNotMatch(stderr, dep1Message);
|
|
|
|
assert.doesNotMatch(stderr, dep2Message);
|
|
|
|
assert.match(stderr, experimentalWarningMessage);
|
|
|
|
assert.strictEqual(code, 0);
|
|
|
|
assert.strictEqual(signal, null);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should silence all deprecation warnings using type DeprecationWarning', async () => {
|
|
|
|
const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [
|
|
|
|
'--disable-warning=DeprecationWarning',
|
|
|
|
fixturePath,
|
|
|
|
]);
|
|
|
|
|
|
|
|
assert.strictEqual(stdout, '');
|
|
|
|
assert.doesNotMatch(stderr, dep1Message);
|
|
|
|
assert.doesNotMatch(stderr, dep2Message);
|
|
|
|
assert.match(stderr, experimentalWarningMessage);
|
|
|
|
assert.strictEqual(code, 0);
|
|
|
|
assert.strictEqual(signal, null);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should silence all experimental warnings using type ExperimentalWarning', async () => {
|
|
|
|
const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [
|
|
|
|
'--disable-warning=ExperimentalWarning',
|
|
|
|
fixturePath,
|
|
|
|
]);
|
|
|
|
|
|
|
|
assert.strictEqual(stdout, '');
|
|
|
|
assert.match(stderr, dep1Message);
|
|
|
|
assert.match(stderr, dep2Message);
|
|
|
|
assert.doesNotMatch(stderr, experimentalWarningMessage);
|
|
|
|
assert.strictEqual(code, 0);
|
|
|
|
assert.strictEqual(signal, null);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should pass down option to worker', async () => {
|
|
|
|
const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [
|
|
|
|
'--disable-warning=DEP2',
|
|
|
|
fixturePathWorker,
|
|
|
|
]);
|
|
|
|
|
|
|
|
assert.strictEqual(stdout, '');
|
|
|
|
assert.match(stderr, dep1Message);
|
|
|
|
assert.doesNotMatch(stderr, dep2Message);
|
|
|
|
assert.match(stderr, experimentalWarningMessage);
|
|
|
|
assert.strictEqual(code, 0);
|
|
|
|
assert.strictEqual(signal, null);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should not support a comma separated list', async () => {
|
|
|
|
const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [
|
|
|
|
'--disable-warning=DEP1,DEP2',
|
|
|
|
fixturePathWorker,
|
|
|
|
]);
|
|
|
|
|
|
|
|
assert.strictEqual(stdout, '');
|
|
|
|
assert.match(stderr, dep1Message);
|
|
|
|
assert.match(stderr, dep2Message);
|
|
|
|
assert.match(stderr, experimentalWarningMessage);
|
|
|
|
assert.strictEqual(code, 0);
|
|
|
|
assert.strictEqual(signal, null);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should be specifiable in NODE_OPTIONS', async () => {
|
|
|
|
const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [
|
|
|
|
fixturePath,
|
|
|
|
], {
|
|
|
|
env: {
|
|
|
|
...process.env,
|
|
|
|
NODE_OPTIONS: '--disable-warning=DEP2'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
assert.strictEqual(stdout, '');
|
|
|
|
assert.match(stderr, dep1Message);
|
|
|
|
assert.doesNotMatch(stderr, dep2Message);
|
|
|
|
assert.match(stderr, experimentalWarningMessage);
|
|
|
|
assert.strictEqual(code, 0);
|
|
|
|
assert.strictEqual(signal, null);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|