2024-08-27 05:08:07 +00:00
|
|
|
// Flags: --no-warnings
|
2018-01-28 11:07:18 +00:00
|
|
|
'use strict';
|
|
|
|
|
2024-08-27 05:08:07 +00:00
|
|
|
const { expectWarning } = require('../common');
|
2018-01-28 11:07:18 +00:00
|
|
|
const assert = require('assert');
|
2024-08-27 05:08:07 +00:00
|
|
|
const { test } = require('node:test');
|
2018-01-28 11:07:18 +00:00
|
|
|
|
2024-08-27 05:08:07 +00:00
|
|
|
expectWarning(
|
2018-01-28 11:07:18 +00:00
|
|
|
'DeprecationWarning',
|
|
|
|
'assert.fail() with more than one argument is deprecated. ' +
|
2018-03-20 11:39:46 +00:00
|
|
|
'Please use assert.strictEqual() instead or only pass a message.',
|
|
|
|
'DEP0094'
|
2018-01-28 11:07:18 +00:00
|
|
|
);
|
|
|
|
|
2024-08-27 05:08:07 +00:00
|
|
|
test('Two args only, operator defaults to "!="', () => {
|
|
|
|
assert.throws(() => {
|
|
|
|
assert.fail('first', 'second');
|
|
|
|
}, {
|
|
|
|
code: 'ERR_ASSERTION',
|
|
|
|
name: 'AssertionError',
|
|
|
|
message: '\'first\' != \'second\'',
|
|
|
|
operator: '!=',
|
|
|
|
actual: 'first',
|
|
|
|
expected: 'second',
|
|
|
|
generatedMessage: true
|
|
|
|
});
|
2018-01-28 11:07:18 +00:00
|
|
|
});
|
|
|
|
|
2024-08-27 05:08:07 +00:00
|
|
|
test('Three args', () => {
|
|
|
|
assert.throws(() => {
|
|
|
|
assert.fail('ignored', 'ignored', 'another custom message');
|
|
|
|
}, {
|
|
|
|
code: 'ERR_ASSERTION',
|
|
|
|
name: 'AssertionError',
|
|
|
|
message: 'another custom message',
|
|
|
|
operator: 'fail',
|
|
|
|
actual: 'ignored',
|
|
|
|
expected: 'ignored',
|
|
|
|
generatedMessage: false
|
|
|
|
});
|
2018-01-28 11:07:18 +00:00
|
|
|
});
|
|
|
|
|
2024-08-27 05:08:07 +00:00
|
|
|
test('Three args with custom Error', () => {
|
|
|
|
assert.throws(() => {
|
|
|
|
assert.fail(typeof 1, 'object', new TypeError('another custom message'));
|
|
|
|
}, {
|
|
|
|
name: 'TypeError',
|
|
|
|
message: 'another custom message'
|
|
|
|
});
|
2018-01-28 11:07:18 +00:00
|
|
|
});
|
|
|
|
|
2024-08-27 05:08:07 +00:00
|
|
|
test('No third arg (but a fourth arg)', () => {
|
|
|
|
assert.throws(() => {
|
|
|
|
assert.fail('first', 'second', undefined, 'operator');
|
|
|
|
}, {
|
|
|
|
code: 'ERR_ASSERTION',
|
|
|
|
name: 'AssertionError',
|
|
|
|
message: '\'first\' operator \'second\'',
|
|
|
|
operator: 'operator',
|
|
|
|
actual: 'first',
|
|
|
|
expected: 'second'
|
|
|
|
});
|
2018-01-28 11:07:18 +00:00
|
|
|
});
|
|
|
|
|
2024-08-27 05:08:07 +00:00
|
|
|
test('The stackFrameFunction should exclude the foo frame', () => {
|
|
|
|
assert.throws(
|
|
|
|
function foo() { assert.fail('first', 'second', 'message', '!==', foo); },
|
|
|
|
(err) => !/^\s*at\sfoo\b/m.test(err.stack)
|
|
|
|
);
|
|
|
|
});
|