
Security News
Socket Named a Supply Chain Innovator in Latio's 2026 Application Security Market Report
Latio’s 2026 report recognizes Socket as a Supply Chain Innovator and highlights our work in 0-day malware detection, SCA, and auto-patching.
const {expect} = require('assertior');
describe('Suite', function() {
it('soft toEqual positive', function() {
const val = 2;
expect.soft(val).toEqual(2);
});
it('soft toDeepEqual positive', function() {
const val = {a: 2, b: 3, c: [1, 2, 3]};
expect.soft(val).toDeepEqual({a: 2, c: [1, 2, 3], b: 3});
});
});
// Allure step
function allureStep(stepAssertionName: string, error, expected, current) {
const step = allure.startStep(stepAssertionName);
allure.attachment('Expected value', JSON.stringify(expected, null, 2), 'application/json');
allure.attachment('Current value', JSON.stringify(current, null, 2), 'application/json');
if (error) {
allure.attachment('Error', JSON.stringify(error, null, 2), 'application/json');
}
step.step.stepResult.status = error ? 'broken' : 'passed';
step.endStep();
}
const {expect, initStepDeclarator} = require('assertior');
initStepDeclarator(allureStep);
describe('Suite', function() {
it('soft toEqual positive', function() {
const val = 2;
expect.soft(val).toEqual(2);
});
it('toDeepEqual positive', function () {
const val = 2;
expect(val).toDeepEqual(2);
});
});
const {expect} = require('assertior');
expect([{foo: 'bar'}]).toDeepEqual([{foo: 'bar'}]);
const {expect} = require('assertior');
expect([{foo: 'bar'}]).toNotDeepEqual([{foo: 'foo'}]);
const {expect} = require('assertior');
expect('bar').toEqual('bar');
const {expect} = require('assertior');
expect('bar').toNotEqual('foo');
const {expect} = require('assertior');
expect([]).toBeEmptyArray();
const {expect} = require('assertior');
expect(10).isGreaterThan(9);
const {expect} = require('assertior');
expect([1, 2, 3]).arrayHasLengthAbove(2);
const {expect} = require('assertior');
expect([1,2,3]).toBeNotEmptyArray();
const {expect} = require('assertior');
expect({foo: 'bar'}).objectIncludesKeys(['foo']);
const {expect} = require('assertior');
expect({foo: 'bar'}).hasType('object');
expect([]).hasType('array');
expect(null).hasType('null');
const {expect} = require('assertior');
expect('foo').stringIncludesSubstring('foo');
const {expect} = require('assertior');
expect('foo').stringNotIncludesSubstring('foo');
const {expect} = require('assertior');
expect({a: 1}).objectIsNotEmpty('foo');
const {expect} = require('assertior');
expect({a: 1}).objectIsEmpty('foo');
const {expect} = require('assertior');
expect('test').stringIsNotEmpty();
const {expect} = require('assertior');
expect(9).isLessThan(10);
const {expect} = require('assertior');
expect('').stringIsEmpty();
const {expect} = require('assertior');
expect(Promise.resolve('test')).toBePromise;
const {expect} = require('assertior');
expect(Symbol('test')).toBeSymbol;
const {expect} = require('assertior');
expect([]).toBeArray;
const {expect} = require('assertior');
expect(false).toBeBool;
const {expect} = require('assertior');
expect(async () => ({})).toBeAsyncFunction;
const {expect} = require('assertior');
expect(() => ({})).toBeFunction;
const {expect} = require('assertior');
expect(new Set()).toBeSet;
const {expect} = require('assertior');
expect(undefined).toBeUndefined;
const {expect} = require('assertior');
expect(1).toBeNumber;
const {expect} = require('assertior');
expect(null).toBeNull;
const {expect} = require('assertior');
expect({}).toBeObject;
const {expect} = require('assertior');
expect('').toBeString;
const {expect} = require('assertior');
expect([12,23]).arrayIncludesMembers(23);
const {expect} = require('assertior');
expect([12,23]).arrayNotIncludesMembers(25);
const {expect} = require('assertior');
expect('test').toMatchRegex(/t/ig);
const {expect} = require('assertior');
expect.soft('bar').toEqual('bar');
const {expect} = require('assertior');
expect.soft({a: 'bar'}).toDeepEqual({a: 'bar'});
const {expect} = require('assertior');
expect.soft('bar').toNotEqual('foo');
const {expect} = require('assertior');
expect.soft([{a: 'foo'}]).toNotDeepEqual([{a: 'bar'}]);
const {expect} = require('assertior');
expect.soft([]).toBeEmptyArray();
const {expect} = require('assertior');
expect.soft([1,2,3]).toBeNotEmptyArray();
const {expect} = require('assertior');
expect.soft({foo: 'bar'}).objectIncludesKeys(['foo']);
const {expect} = require('assertior');
expect.soft({foo: 'bar'}).hasType('object');
expect.soft([]).hasType('array');
expect.soft(null).hasType('null');
const {expect} = require('assertior');
expect.soft('foo').stringIncludesSubstring('foo');
const {expect} = require('assertior');
expect.soft('foo').stringNotIncludesSubstring('foo');
const {expect} = require('assertior');
expect.soft({a: 1}).objectIsNotEmpty('foo');
const {expect} = require('assertior');
expect.soft({a: 1}).objectIsEmpty('foo');
const {expect} = require('assertior');
expect.soft('test').stringIsNotEmpty();
const {expect} = require('assertior');
expect.soft('').stringIsEmpty();
const {expect} = require('assertior');
expect.soft(10).isGreaterThan(9);
const {expect} = require('assertior');
expect.soft(9).isLessThan(10);
const {expect} = require('assertior');
expect.soft(Promise.resolve('test')).toBePromise;
const {expect} = require('assertior');
expect.soft(Symbol('test')).toBeSymbol;
const {expect} = require('assertior');
expect.soft(false).toBeBool;
const {expect} = require('assertior');
expect.soft(async () => ({})).toBeAsyncFunction;
const {expect} = require('assertior');
expect.soft(() => ({})).toBeFunction;
const {expect} = require('assertior');
expect.soft(new Set()).toBeSet;
const {expect} = require('assertior');
expect.soft(undefined).toBeUndefined;
const {expect} = require('assertior');
expect.soft(1).toBeNumber;
const {expect} = require('assertior');
expect.soft(null).toBeNull;
const {expect} = require('assertior');
expect.soft({}).toBeObject;
const {expect} = require('assertior');
expect.soft('').toBeString;
const {expect} = require('assertior');
expect.soft([]).toBeArray;
const {expect} = require('assertior');
expect.soft('test').toMatchRegex(/t/ig);
const {expect} = require('assertior');
expect.soft([12,23]).arrayIncludesMembers(23);
const {expect} = require('assertior');
expect.soft([12,23]).arrayNotIncludesMembers(25);
const {expect} = require('assertior');
expect.soft([1, 2, 3]).arrayHasLengthAbove(2);
FAQs
Assertion library with soft assertions
The npm package assertior receives a total of 39 weekly downloads. As such, assertior popularity was classified as not popular.
We found that assertior demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Latio’s 2026 report recognizes Socket as a Supply Chain Innovator and highlights our work in 0-day malware detection, SCA, and auto-patching.

Company News
Join Socket for live demos, rooftop happy hours, and one-on-one meetings during BSidesSF and RSA 2026 in San Francisco.

Research
/Security News
Malicious Packagist packages disguised as Laravel utilities install an encrypted PHP RAT via Composer dependencies, enabling remote access and C2 callbacks.