{"id":21173909,"url":"https://github.com/simple-automation-testing/assertior","last_synced_at":"2026-03-06T03:31:58.612Z","repository":{"id":43098799,"uuid":"287457910","full_name":"Simple-Automation-Testing/assertior","owner":"Simple-Automation-Testing","description":"Assertion library with reporter integration","archived":false,"fork":false,"pushed_at":"2022-03-18T10:52:40.000Z","size":99,"stargazers_count":2,"open_issues_count":1,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-20T02:43:58.472Z","etag":null,"topics":["assert","assert-allure","assert-report","expect"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Simple-Automation-Testing.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-14T06:11:39.000Z","updated_at":"2022-02-15T12:29:03.000Z","dependencies_parsed_at":"2022-09-13T06:01:20.110Z","dependency_job_id":null,"html_url":"https://github.com/Simple-Automation-Testing/assertior","commit_stats":null,"previous_names":["simple-automation-testing/soft-expectation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Simple-Automation-Testing/assertior","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simple-Automation-Testing%2Fassertior","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simple-Automation-Testing%2Fassertior/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simple-Automation-Testing%2Fassertior/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simple-Automation-Testing%2Fassertior/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Simple-Automation-Testing","download_url":"https://codeload.github.com/Simple-Automation-Testing/assertior/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simple-Automation-Testing%2Fassertior/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30160861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T22:39:40.138Z","status":"online","status_checked_at":"2026-03-06T02:00:08.268Z","response_time":250,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assert","assert-allure","assert-report","expect"],"created_at":"2024-11-20T16:52:38.645Z","updated_at":"2026-03-06T03:31:58.579Z","avatar_url":"https://github.com/Simple-Automation-Testing.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# assertior\n\n##### 🛠 Development in progress\n\n## This library is a wrapper around nodejs \"assert\" module\n\n### The main porpuse is build new assertion library with soft assertions based on \"assert\" module\n\n#### allure/any other reporter ready\n\n##### mocha example\n\n```js\nconst {expect} = require('assertior');\n\ndescribe('Suite', function() {\n  it('soft toEqual positive', function() {\n    const val = 2;\n    expect.soft(val).toEqual(2);\n  });\n\n  it('soft toDeepEqual positive', function() {\n    const val = {a: 2, b: 3, c: [1, 2, 3]};\n    expect.soft(val).toDeepEqual({a: 2, c: [1, 2, 3], b: 3});\n  });\n});\n```\n\n##### mocha example with allure\n\n```js\n// Allure step\nfunction allureStep(stepAssertionName: string, error, expected, current) {\n  const step = allure.startStep(stepAssertionName);\n  allure.attachment('Expected value', JSON.stringify(expected, null, 2), 'application/json');\n  allure.attachment('Current value', JSON.stringify(current, null, 2), 'application/json');\n  if (error) {\n    allure.attachment('Error', JSON.stringify(error, null, 2), 'application/json');\n  }\n  step.step.stepResult.status = error ? 'broken' : 'passed';\n  step.endStep();\n}\n\nconst {expect, initStepDeclarator} = require('assertior');\ninitStepDeclarator(allureStep);\n\n\ndescribe('Suite', function() {\n  it('soft toEqual positive', function() {\n    const val = 2;\n    expect.soft(val).toEqual(2);\n  });\n\n  it('toDeepEqual positive', function () {\n    const val = 2;\n    expect(val).toDeepEqual(2);\n  });\n});\n```\n\n- [expect.soft](#expectsoft)\n- [expect](#expect)\n  * [toDeepEqual](#todeepequal)\n  * [toEqual](#toequal)\n  * [toNotEqual](#tonotequal)\n  * [isGreaterThan](#isgreaterthan)\n  * [toNotDeepEqual](#tonotdeepequal)\n  * [toBeEmptyArray](#tobeemptyarray)\n  * [arrayHasLengthAbove](#arrayhaslengthabove)\n  * [arrayIncludesMembers](#arrayincludesmembers)\n  * [arrayNotIncludesMembers](#arraynotincludesmembers)\n  * [toBeNotEmptyArray](#tobenotemptyarray)\n  * [toMatchRegex](#tomatchregex)\n  * [objectIncludesKeys](#objectincludeskeys)\n  * [hasType](#hastype)\n  * [stringNotIncludesSubstring](#stringnotincludesubstring)\n  * [stringIncludesSubstring](#stringincludesubstring)\n  * [objectIsNotEmpty](#objectisnotempty)\n  * [objectIsEmpty](#objectisempty)\n  * [stringIsEmpty](#stringisempty)\n  * [toBePromise](#tobepromise)\n  * [toBeSymbol](#tobesymbol)\n  * [toBeBool](#tobebool)\n  * [toBeAsyncFunction](#tobeasyncfunction)\n  * [toBeFunction](#tobefunction)\n  * [toBeSet](#tobeset)\n  * [toBeUndefined](#tobeundefined)\n  * [toBeNumber](#tobenumber)\n  * [toBeNull](#tobenull)\n  * [toBeArray](#tobearray)\n  * [toBeObject](#tobeobject)\n  * [toBeString](#tobestring)\n\n# expect\n\n## toDeepEqual\n\n```js\n  const {expect} = require('assertior');\n  expect([{foo: 'bar'}]).toDeepEqual([{foo: 'bar'}]);\n```\n\n## toNotDeepEqual\n\n```js\n  const {expect} = require('assertior');\n  expect([{foo: 'bar'}]).toNotDeepEqual([{foo: 'foo'}]);\n```\n\n## toEqual\n\n```js\n  const {expect} = require('assertior');\n  expect('bar').toEqual('bar');\n```\n\n## toNotEqual\n\n```js\n  const {expect} = require('assertior');\n  expect('bar').toNotEqual('foo');\n```\n\n## toBeEmptyArray\n\n```js\n  const {expect} = require('assertior');\n  expect([]).toBeEmptyArray();\n```\n\n## isGreaterThan\n\n```js\n  const {expect} = require('assertior');\n  expect(10).isGreaterThan(9);\n```\n\n## arrayHasLengthAbove\n\n```js\n  const {expect} = require('assertior');\n  expect([1, 2, 3]).arrayHasLengthAbove(2);\n```\n\n## toBeNotEmptyArray\n\n```js\n  const {expect} = require('assertior');\n  expect([1,2,3]).toBeNotEmptyArray();\n```\n\n## objectIncludesKeys\n\n```js\n  const {expect} = require('assertior');\n  expect({foo: 'bar'}).objectIncludesKeys(['foo']);\n```\n\n## hasType\n\n```js\n  const {expect} = require('assertior');\n  expect({foo: 'bar'}).hasType('object');\n  expect([]).hasType('array');\n  expect(null).hasType('null');\n```\n\n## stringIncludesSubstring\n\n```js\n  const {expect} = require('assertior');\n  expect('foo').stringIncludesSubstring('foo');\n```\n\n## stringNotIncludesSubstring\n\n```js\n  const {expect} = require('assertior');\n  expect('foo').stringNotIncludesSubstring('foo');\n```\n\n## objectIsNotEmpty\n\n```js\n  const {expect} = require('assertior');\n  expect({a: 1}).objectIsNotEmpty('foo');\n```\n\n## objectIsEmpty\n\n```js\n  const {expect} = require('assertior');\n  expect({a: 1}).objectIsEmpty('foo');\n```\n\n## stringIsNotEmpty\n\n```js\n  const {expect} = require('assertior');\n  expect('test').stringIsNotEmpty();\n```\n\n## isLessThan\n\n```js\n  const {expect} = require('assertior');\n  expect(9).isLessThan(10);\n```\n\n## stringIsEmpty\n\n```js\n  const {expect} = require('assertior');\n  expect('').stringIsEmpty();\n```\n\n## toBePromise\n\n```js\n  const {expect} = require('assertior');\n  expect(Promise.resolve('test')).toBePromise;\n```\n\n## toBeSymbol\n\n```js\n  const {expect} = require('assertior');\n  expect(Symbol('test')).toBeSymbol;\n```\n\n## toBeArray\n\n```js\n  const {expect} = require('assertior');\n  expect([]).toBeArray;\n```\n\n## toBeBool\n\n```js\n  const {expect} = require('assertior');\n  expect(false).toBeBool;\n```\n\n## toBeAsyncFunction\n\n```js\n  const {expect} = require('assertior');\n  expect(async () =\u003e ({})).toBeAsyncFunction;\n```\n\n## toBeFunction\n\n```js\n  const {expect} = require('assertior');\n  expect(() =\u003e ({})).toBeFunction;\n```\n\n## toBeSet\n\n```js\n  const {expect} = require('assertior');\n  expect(new Set()).toBeSet;\n```\n\n## toBeUndefined\n\n```js\n  const {expect} = require('assertior');\n  expect(undefined).toBeUndefined;\n```\n\n## toBeNumber\n\n```js\n  const {expect} = require('assertior');\n  expect(1).toBeNumber;\n```\n\n## toBeNull\n\n```js\n  const {expect} = require('assertior');\n  expect(null).toBeNull;\n```\n\n## toBeObject\n\n```js\n  const {expect} = require('assertior');\n  expect({}).toBeObject;\n```\n\n## toBeString\n\n```js\n  const {expect} = require('assertior');\n  expect('').toBeString;\n```\n\n## arrayIncludesMembers\n\n```js\n  const {expect} = require('assertior');\n  expect([12,23]).arrayIncludesMembers(23);\n```\n\n## arrayNotIncludesMembers\n\n```js\n  const {expect} = require('assertior');\n  expect([12,23]).arrayNotIncludesMembers(25);\n```\n\n\n## toMatchRegex\n\n```js\n  const {expect} = require('assertior');\n  expect('test').toMatchRegex(/t/ig);\n```\n\n# expect.soft\n\n## toEqual\n\n```js\n  const {expect} = require('assertior');\n  expect.soft('bar').toEqual('bar');\n```\n\n## toDeepEqual\n\n```js\n  const {expect} = require('assertior');\n  expect.soft({a: 'bar'}).toDeepEqual({a: 'bar'});\n```\n\n## toNotEqual\n\n```js\n  const {expect} = require('assertior');\n  expect.soft('bar').toNotEqual('foo');\n```\n\n## toNotDeepEqual\n\n```js\n  const {expect} = require('assertior');\n  expect.soft([{a: 'foo'}]).toNotDeepEqual([{a: 'bar'}]);\n```\n\n## toBeEmptyArray\n\n```js\n  const {expect} = require('assertior');\n  expect.soft([]).toBeEmptyArray();\n```\n\n## toBeNotEmptyArray\n\n```js\n  const {expect} = require('assertior');\n  expect.soft([1,2,3]).toBeNotEmptyArray();\n```\n\n## objectIncludesKeys\n\n```js\n  const {expect} = require('assertior');\n  expect.soft({foo: 'bar'}).objectIncludesKeys(['foo']);\n```\n\n## hasType\n\n```js\n  const {expect} = require('assertior');\n  expect.soft({foo: 'bar'}).hasType('object');\n  expect.soft([]).hasType('array');\n  expect.soft(null).hasType('null');\n```\n\n## stringIncludesSubstring\n\n```js\n  const {expect} = require('assertior');\n  expect.soft('foo').stringIncludesSubstring('foo');\n```\n\n## stringNotIncludesSubstring\n\n```js\n  const {expect} = require('assertior');\n  expect.soft('foo').stringNotIncludesSubstring('foo');\n```\n\n## objectIsNotEmpty\n\n```js\n  const {expect} = require('assertior');\n  expect.soft({a: 1}).objectIsNotEmpty('foo');\n```\n\n## objectIsEmpty\n\n```js\n  const {expect} = require('assertior');\n  expect.soft({a: 1}).objectIsEmpty('foo');\n```\n\n## stringIsNotEmpty\n\n```js\n  const {expect} = require('assertior');\n  expect.soft('test').stringIsNotEmpty();\n```\n\n## stringIsEmpty\n\n```js\n  const {expect} = require('assertior');\n  expect.soft('').stringIsEmpty();\n```\n\n## isGreaterThan\n\n```js\n  const {expect} = require('assertior');\n  expect.soft(10).isGreaterThan(9);\n```\n\n## isLessThan\n```js\n  const {expect} = require('assertior');\n  expect.soft(9).isLessThan(10);\n```\n\n## toBePromise\n\n```js\n  const {expect} = require('assertior');\n  expect.soft(Promise.resolve('test')).toBePromise;\n```\n\n## toBeSymbol\n\n```js\n  const {expect} = require('assertior');\n  expect.soft(Symbol('test')).toBeSymbol;\n```\n\n## toBeBool\n\n```js\n  const {expect} = require('assertior');\n  expect.soft(false).toBeBool;\n```\n\n## toBeAsyncFunction\n\n```js\n  const {expect} = require('assertior');\n  expect.soft(async () =\u003e ({})).toBeAsyncFunction;\n```\n\n## toBeFunction\n\n```js\n  const {expect} = require('assertior');\n  expect.soft(() =\u003e ({})).toBeFunction;\n```\n\n## toBeSet\n\n```js\n  const {expect} = require('assertior');\n  expect.soft(new Set()).toBeSet;\n```\n\n## toBeUndefined\n\n```js\n  const {expect} = require('assertior');\n  expect.soft(undefined).toBeUndefined;\n```\n\n## toBeNumber\n\n```js\n  const {expect} = require('assertior');\n  expect.soft(1).toBeNumber;\n```\n\n## toBeNull\n\n```js\n  const {expect} = require('assertior');\n  expect.soft(null).toBeNull;\n```\n\n## toBeObject\n\n```js\n  const {expect} = require('assertior');\n  expect.soft({}).toBeObject;\n```\n\n## toBeString\n\n```js\n  const {expect} = require('assertior');\n  expect.soft('').toBeString;\n```\n\n## toBeArray\n\n```js\n  const {expect} = require('assertior');\n  expect.soft([]).toBeArray;\n```\n\n## toMatchRegex\n\n```js\n  const {expect} = require('assertior');\n  expect.soft('test').toMatchRegex(/t/ig);\n```\n\n## arrayIncludesMembers\n\n```js\n  const {expect} = require('assertior');\n  expect.soft([12,23]).arrayIncludesMembers(23);\n```\n\n## arrayNotIncludesMembers\n\n```js\n  const {expect} = require('assertior');\n  expect.soft([12,23]).arrayNotIncludesMembers(25);\n```\n\n## arrayHasLengthAbove\n\n```js\n  const {expect} = require('assertior');\n  expect.soft([1, 2, 3]).arrayHasLengthAbove(2);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimple-automation-testing%2Fassertior","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimple-automation-testing%2Fassertior","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimple-automation-testing%2Fassertior/lists"}