assert
Vitest znovu exportuje metodu assert z chai pro ověřování invariantů.
assert
- Typ:
(expression: any, message?: string) => asserts expression
Ověří, zda je daný expression truthy. Pokud ne, test selže.
import { assert, test } from 'vitest';
test('assert', () => {
assert('foo' !== 'bar', 'foo by nemělo být rovno bar');
});fail
- Typ:
(message?: string) => never<T>(actual: T, expected: T, message?: string, operator?: string) => never
Vynutí selhání testu.
import { assert, test } from 'vitest';
test('assert.fail', () => {
assert.fail('Chybová zpráva při selhání.');
assert.fail('foo', 'bar', 'foo není bar', '===');
});isOk
- Typ:
<T>(value: T, message?: string) => void - Alias:
ok
Ověří, zda je daná value truthy.
import { assert, test } from 'vitest';
test('assert.isOk', () => {
assert.isOk('foo', 'Každá truthy hodnota je v pořádku.');
assert.isOk(false, 'Toto selže, protože false není truthy hodnota.');
});isNotOk
- Typ:
<T>(value: T, message?: string) => void - Alias:
notOk
Ověří, zda je daná value falsy (vyhodnocuje se jako nepravdivá).
import { assert, test } from 'vitest';
test('assert.isNotOk', () => {
assert.isNotOk(
'foo',
'Toto selže, protože každá truthy hodnota není v pořádku.'
);
assert.isNotOk(false, 'Toto projde, protože false je falsy.');
});equal
- Typ:
<T>(actual: T, expected: T, message?: string) => void
Ověří nepřísnou rovnost (==) mezi actual a expected.
import { assert, test } from 'vitest';
test('assert.equal', () => {
assert.equal(Math.sqrt(4), '2');
});notEqual
- Typ:
<T>(actual: T, expected: T, message?: string) => void
Ověří nepřísnou nerovnost (!=) mezi actual a expected.
import { assert, test } from 'vitest';
test('assert.notEqual', () => {
assert.notEqual(Math.sqrt(4), 3);
});strictEqual
- Typ:
<T>(actual: T, expected: T, message?: string) => void
Ověří přísnou rovnost (===) mezi actual a expected.
import { assert, test } from 'vitest';
test('assert.strictEqual', () => {
assert.strictEqual(Math.sqrt(4), 2);
});deepEqual
- Typ:
<T>(actual: T, expected: T, message?: string) => void
Ověří, zda je actual hluboce rovno expected. Porovnává rekurzivně všechny vlastnosti obou objektů.
import { assert, test } from 'vitest';
test('assert.deepEqual', () => {
assert.deepEqual({ color: 'green' }, { color: 'green' });
});notDeepEqual
- Typ:
<T>(actual: T, expected: T, message?: string) => void
Ověří, zda se actual hluboce nerovná expected.
import { assert, test } from 'vitest';
test('assert.notDeepEqual', () => {
assert.notDeepEqual({ color: 'green' }, { color: 'red' });
});isAbove
- Typ:
(valueToCheck: number, valueToBeAbove: number, message?: string) => void
Ověří, zda je valueToCheck přísně větší než (>) valueToBeAbove.
import { assert, test } from 'vitest';
test('assert.isAbove', () => {
assert.isAbove(5, 2, '5 je větší než 2');
});isAtLeast
- Typ:
(valueToCheck: number, valueToBeAtLeast: number, message?: string) => void
Ověří, zda je valueToCheck větší nebo rovna (>=) valueToBeAtLeast.
import { assert, test } from 'vitest';
test('assert.isAtLeast', () => {
assert.isAtLeast(5, 2, '5 je větší nebo rovna 2');
assert.isAtLeast(3, 3, '3 je větší nebo rovna 3');
});isBelow
- Typ:
(valueToCheck: number, valueToBeBelow: number, message?: string) => void
Ověří, zda je valueToCheck přísně menší než (<) valueToBeBelow.
import { assert, test } from 'vitest';
test('assert.isBelow', () => {
assert.isBelow(3, 6, '3 je menší než 6');
});isAtMost
- Typ:
(valueToCheck: number, valueToBeAtMost: number, message?: string) => void
Ověří, zda je valueToCheck menší nebo rovna (<=) valueToBeAtMost.
import { assert, test } from 'vitest';
test('assert.isAtMost', () => {
assert.isAtMost(3, 6, '3 je menší nebo rovna 6');
assert.isAtMost(4, 4, '4 je menší nebo rovna 4');
});isTrue
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda je value rovna true.
import { assert, test } from 'vitest';
const testPassed = true;
test('assert.isTrue', () => {
assert.isTrue(testPassed);
});isNotTrue
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda value není rovna true.
import { assert, test } from 'vitest';
const testPassed = 'ok';
test('assert.isNotTrue', () => {
assert.isNotTrue(testPassed);
});isFalse
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda je value rovna false.
import { assert, test } from 'vitest';
const testPassed = false;
test('assert.isFalse', () => {
assert.isFalse(testPassed);
});isNotFalse
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda value není rovna false.
import { assert, test } from 'vitest';
const testPassed = 'no';
test('assert.isNotFalse', () => {
assert.isNotFalse(testPassed);
});isNull
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda je value null (nulová hodnota).
import { assert, test } from 'vitest';
const error = null;
test('assert.isNull', () => {
assert.isNull(error, 'error je null');
});isNotNull
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda value není null (nulová hodnota).
import { assert, test } from 'vitest';
const error = { message: 'nastala chyba' };
test('assert.isNotNull', () => {
assert.isNotNull(error, 'error není null, je to objekt');
});isNaN
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda je value NaN (Not a Number, není číslo).
import { assert, test } from 'vitest';
const calculation = 1 * 'vitest';
test('assert.isNaN', () => {
assert.isNaN(calculation, '1 * "vitest" je NaN');
});isNotNaN
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda value není NaN (není číslo).
import { assert, test } from 'vitest';
const calculation = 1 * 2;
test('assert.isNotNaN', () => {
assert.isNotNaN(calculation, '1 * 2 není NaN, ale 2');
});exists
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda value není ani null, ani undefined (nedefinováno).
import { assert, test } from 'vitest';
const name = 'foo';
test('assert.exists', () => {
assert.exists(name, 'foo není ani null, ani undefined');
});notExists
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda je value buď null, nebo undefined (nedefinováno).
import { assert, test } from 'vitest';
const foo = null;
const bar = undefined;
test('assert.notExists', () => {
assert.notExists(foo, 'foo je null, proto neexistuje');
assert.notExists(bar, 'bar je undefined, proto neexistuje');
});isUndefined
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda je value undefined (nedefinováno).
import { assert, test } from 'vitest';
const name = undefined;
test('assert.isUndefined', () => {
assert.isUndefined(name, 'name je undefined');
});isDefined
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda value není undefined (nedefinováno).
import { assert, test } from 'vitest';
const name = 'foo';
test('assert.isDefined', () => {
assert.isDefined(name, 'name není undefined');
});isFunction
- Typ:
<T>(value: T, message?: string) => void - Alias:
isCallableOvěří, zda jevaluefunkce.
import { assert, test } from 'vitest';
function name() {
return 'foo';
}
test('assert.isFunction', () => {
assert.isFunction(name, 'name je funkce');
});isNotFunction
- Typ:
<T>(value: T, message?: string) => void - Alias:
isNotCallable
Ověří, zda value není funkce.
import { assert, test } from 'vitest';
const name = 'foo';
test('assert.isNotFunction', () => {
assert.isNotFunction(name, 'name není funkce, je to řetězec');
});isObject
- Typ:
<T>(value: T, message?: string) => void
Ověří, zda je value objektem typu Object (jak ukazuje Object.prototype.toString). Toto ověření se neshoduje s objekty odvozenými od Object.
import { assert, test } from 'vitest';
const someThing = { color: 'red', shape: 'circle' };
test('assert.isObject', () => {
assert.isObject(someThing, 'someThing je objekt');
});isNotObject
- Typ:
<T>(value: T, message?: string) => void
Ověří, že value není objekt typu Object (zjištěno pomocí Object.prototype.toString). Toto tvrzení selže i pro instance podtříd Object.
import { assert, test } from 'vitest';
const someThing = 'redCircle';
test('assert.isNotObject', () => {
assert.isNotObject(someThing, 'someThing není objekt, ale řetězec');
});isArray
- Typ:
<T>(value: T, message?: string) => void
Ověří, že value je pole.
import { assert, test } from 'vitest';
const color = ['red', 'green', 'yellow'];
test('assert.isArray', () => {
assert.isArray(color, 'color je pole');
});isNotArray
- Typ:
<T>(value: T, message?: string) => void
Ověří, že value není pole.
import { assert, test } from 'vitest';
const color = 'red';
test('assert.isNotArray', () => {
assert.isNotArray(color, 'color není pole, ale řetězec');
});isString
- Typ:
<T>(value: T, message?: string) => void
Ověří, že value je řetězec.
import { assert, test } from 'vitest';
const color = 'red';
test('assert.isString', () => {
assert.isString(color, 'color je řetězec');
});isNotString
- Typ:
<T>(value: T, message?: string) => void
Ověří, že value není řetězec.
import { assert, test } from 'vitest';
const color = ['red', 'green', 'yellow'];
test('assert.isNotString', () => {
assert.isNotString(color, 'color není řetězec, ale pole');
});isNumber
- Typ:
<T>(value: T, message?: string) => void
Ověří, že value je číslo.
import { assert, test } from 'vitest';
const colors = 3;
test('assert.isNumber', () => {
assert.isNumber(colors, 'colors je číslo');
});isNotNumber
- Typ:
<T>(value: T, message?: string) => void
Ověří, že value není číslo.
import { assert, test } from 'vitest';
const colors = '3 colors';
test('assert.isNotNumber', () => {
assert.isNotNumber(colors, 'colors není číslo, ale řetězec');
});isFinite
- Typ:
<T>(value: T, message?: string) => void
Ověří, že value je konečné číslo (tj. není NaN ani Infinity).
import { assert, test } from 'vitest';
const colors = 3;
test('assert.isFinite', () => {
assert.isFinite(colors, 'colors je konečné číslo, není NaN nebo Infinity');
});isBoolean
- Typ:
<T>(value: T, message?: string) => void
Ověří, že value je logická hodnota (boolean).
import { assert, test } from 'vitest';
const isReady = true;
test('assert.isBoolean', () => {
assert.isBoolean(isReady, 'isReady je logická hodnota');
});isNotBoolean
- Typ:
<T>(value: T, message?: string) => void
Ověří, že value není logická hodnota (boolean).
import { assert, test } from 'vitest';
const isReady = 'sure';
test('assert.isNotBoolean', () => {
assert.isNotBoolean(isReady, 'isReady není logická hodnota, ale řetězec');
});typeOf
- Typ:
<T>(value: T, name: string, message?: string) => void
Ověří, že typ value odpovídá zadanému name, jak je určeno pomocí Object.prototype.toString.
import { assert, test } from 'vitest';
test('assert.typeOf', () => {
assert.typeOf({ color: 'red' }, 'object', 'máme objekt');
assert.typeOf(['red', 'green'], 'array', 'máme pole');
assert.typeOf('red', 'string', 'máme řetězec');
assert.typeOf(/red/, 'regexp', 'máme regulární výraz');
assert.typeOf(null, 'null', 'máme null');
assert.typeOf(undefined, 'undefined', 'máme undefined');
});notTypeOf
- Typ:
<T>(value: T, name: string, message?: string) => void
Ověří, že typ value neodpovídá zadanému name, jak je určeno pomocí Object.prototype.toString.
import { assert, test } from 'vitest';
test('assert.notTypeOf', () => {
assert.notTypeOf('red', 'number', '"red" není číslo');
});instanceOf
- Typ:
<T>(value: T, constructor: Function, message?: string) => void
Ověří, že value je instance konstruktoru constructor.
import { assert, test } from 'vitest';
function Person(name) {
this.name = name;
}
const foo = new Person('foo');
class Tea {
constructor(name) {
this.name = name;
}
}
const coffee = new Tea('coffee');
test('assert.instanceOf', () => {
assert.instanceOf(foo, Person, 'foo je instance Person');
assert.instanceOf(coffee, Tea, 'coffee je instance Tea');
});notInstanceOf
- Typ:
<T>(value: T, constructor: Function, message?: string) => void
Ověří, že value není instance konstruktoru constructor.
import { assert, test } from 'vitest';
function Person(name) {
this.name = name;
}
const foo = new Person('foo');
class Tea {
constructor(name) {
this.name = name;
}
}
const coffee = new Tea('coffee');
test('assert.notInstanceOf', () => {
assert.notInstanceOf(foo, Tea, 'foo není instance Tea');
});include
- Typ:
(haystack: string, needle: string, message?: string) => void<T>(haystack: readonly T[] | ReadonlySet<T> | ReadonlyMap<any, T>, needle: T, message?: string) => void<T extends object>(haystack: WeakSet<T>, needle: T, message?: string) => void<T>(haystack: T, needle: Partial<T>, message?: string) => void
Ověří, že haystack obsahuje needle. Lze použít k ověření přítomnosti hodnoty v poli, podřetězce v řetězci nebo podmnožiny vlastností v objektu.
import { assert, test } from 'vitest';
test('assert.include', () => {
assert.include([1, 2, 3], 2, 'pole obsahuje hodnotu');
assert.include('foobar', 'foo', 'řetězec obsahuje podřetězec');
assert.include(
{ foo: 'bar', hello: 'universe' },
{ foo: 'bar' },
'objekt obsahuje vlastnost'
);
});notInclude
- Typ:
(haystack: string, needle: string, message?: string) => void<T>(haystack: readonly T[] | ReadonlySet<T> | ReadonlyMap<any, T>, needle: T, message?: string) => void<T extends object>(haystack: WeakSet<T>, needle: T, message?: string) => void<T>(haystack: T, needle: Partial<T>, message?: string) => void
Ověří, že haystack neobsahuje needle. Lze použít k ověření absence hodnoty v poli, podřetězce v řetězci nebo podmnožiny vlastností v objektu.
import { assert, test } from 'vitest';
test('assert.notInclude', () => {
assert.notInclude([1, 2, 3], 4, 'pole neobsahuje 4');
assert.notInclude('foobar', 'baz', 'foobar neobsahuje baz');
assert.notInclude(
{ foo: 'bar', hello: 'universe' },
{ foo: 'baz' },
'objekt neobsahuje vlastnost'
);
});deepInclude
- Typ:
(haystack: string, needle: string, message?: string) => void<T>(haystack: readonly T[] | ReadonlySet<T> | ReadonlyMap<any, T>, needle: T, message?: string) => void<T>(haystack: T, needle: T extends WeakSet<any> ? never : Partial<T>, message?: string) => void
Ověří, že haystack obsahuje needle. Lze použít k ověření přítomnosti hodnoty v poli nebo podmnožiny vlastností v objektu. Používá hlubokou rovnost (deep equality).
import { assert, test } from 'vitest';
const obj1 = { a: 1 };
const obj2 = { b: 2 };
test('assert.deepInclude', () => {
assert.deepInclude([obj1, obj2], { a: 1 });
assert.deepInclude({ foo: obj1, bar: obj2 }, { foo: { a: 1 } });
});notDeepInclude
- Typ:
(haystack: string, needle: string, message?: string) => void<T>(haystack: readonly T[] | ReadonlySet<T> | ReadonlyMap<any, T>, needle: T, message?: string) => void<T>(haystack: T, needle: T extends WeakSet<any> ? never : Partial<T>, message?: string) => void
Ověří, že haystack neobsahuje needle. Lze použít k ověření absence hodnoty v poli nebo podmnožiny vlastností v objektu. Používá hlubokou rovnost (deep equality).
import { assert, test } from 'vitest';
const obj1 = { a: 1 };
const obj2 = { b: 2 };
test('assert.notDeepInclude', () => {
assert.notDeepInclude([obj1, obj2], { a: 10 });
assert.notDeepInclude({ foo: obj1, bar: obj2 }, { foo: { a: 10 } });
});nestedInclude
- Typ:
(haystack: any, needle: any, message?: string) => void
Ověří, že haystack obsahuje needle. Lze použít k ověření přítomnosti podmnožiny vlastností ve vnořeném objektu. Umožňuje použití tečkové a závorkové notace pro odkazování na vnořené vlastnosti. Znaky [] a . v názvech vlastností je nutné escapovat pomocí dvojitých zpětných lomítek.
import { assert, test } from 'vitest';
test('assert.nestedInclude', () => {
assert.nestedInclude({ '.a': { b: 'x' } }, { '\\.a.[b]': 'x' });
assert.nestedInclude({ a: { '[b]': 'x' } }, { 'a.\\[b\\]': 'x' });
});notNestedInclude
- Typ:
(haystack: any, needle: any, message?: string) => void
Ověří, že haystack neobsahuje needle. Lze použít k ověření absence podmnožiny vlastností ve vnořeném objektu. Umožňuje použití tečkové a závorkové notace pro odkazování na vnořené vlastnosti. Znaky [] a . v názvech vlastností je nutné escapovat pomocí dvojitých zpětných lomítek.
import { assert, test } from 'vitest';
test('assert.notNestedInclude', () => {
assert.notNestedInclude({ '.a': { b: 'x' } }, { '\\.a.b': 'y' });
assert.notNestedInclude({ a: { '[b]': 'x' } }, { 'a.\\[b\\]': 'y' });
});deepNestedInclude
- Typ:
(haystack: any, needle: any, message?: string) => void
Ověří, že haystack obsahuje needle. Lze použít k ověření přítomnosti podmnožiny vlastností ve vnořeném objektu s použitím hluboké rovnosti (deep equality). Umožňuje použití tečkové a závorkové notace pro odkazování na vnořené vlastnosti. Znaky [] a . v názvech vlastností je nutné escapovat pomocí dvojitých zpětných lomítek.
import { assert, test } from 'vitest';
test('assert.deepNestedInclude', () => {
assert.deepNestedInclude({ a: { b: [{ x: 1 }] } }, { 'a.b[0]': { x: 1 } });
assert.deepNestedInclude(
{ '.a': { '[b]': { x: 1 } } },
{ '\\.a.\\[b\\]': { x: 1 } }
);
});notDeepNestedInclude
- Typ:
(haystack: any, needle: any, message?: string) => void
Ověří, že haystack neobsahuje needle. Lze použít k ověření absence podmnožiny vlastností ve vnořeném objektu s použitím hluboké rovnosti (deep equality). Umožňuje použití tečkové a závorkové notace pro odkazování na vnořené vlastnosti. Znaky [] a . v názvech vlastností je nutné escapovat pomocí dvojitých zpětných lomítek.
import { assert, test } from 'vitest';
test('assert.notDeepNestedInclude', () => {
assert.notDeepNestedInclude({ a: { b: [{ x: 1 }] } }, { 'a.b[0]': { y: 1 } });
assert.notDeepNestedInclude(
{ '.a': { '[b]': { x: 1 } } },
{ '\\.a.\\[b\\]': { y: 2 } }
);
});ownInclude
- Typ:
(haystack: any, needle: any, message?: string) => void
Ověří, že haystack obsahuje needle jako vlastní vlastnost (tj. nezděděnou). Lze použít k ověření přítomnosti podmnožiny vlastností v objektu, přičemž se ignorují zděděné vlastnosti.
import { assert, test } from 'vitest';
test('assert.ownInclude', () => {
assert.ownInclude({ a: 1 }, { a: 1 });
});notOwnInclude
- Typ:
(haystack: any, needle: any, message?: string) => void
Ověří, že haystack neobsahuje needle jako vlastní vlastnost (tj. nezděděnou). Lze použít k ověření absence podmnožiny vlastností v objektu, přičemž se ignorují zděděné vlastnosti.
import { assert, test } from 'vitest';
const obj1 = {
b: 2,
};
const obj2 = Object.create(obj1);
obj2.a = 1;
test('assert.notOwnInclude', () => {
assert.notOwnInclude(obj2, { b: 2 });
});deepOwnInclude
- Typ:
(haystack: any, needle: any, message?: string) => void
Ověří, zda haystack obsahuje needle jako vlastní vlastnost (tj. nezděděnou). Používá se k ověření, zda objekt obsahuje podmnožinu vlastností, přičemž se kontroluje hloubková rovnost. Zděděné vlastnosti jsou ignorovány.
import { assert, test } from 'vitest';
test('assert.deepOwnInclude', () => {
assert.deepOwnInclude({ a: { b: 2 } }, { a: { b: 2 } });
});notDeepOwnInclude
- Typ:
(haystack: any, needle: any, message?: string) => void
Ověří, zda haystack neobsahuje needle jako vlastní vlastnost (tj. nezděděnou). Používá se k ověření, zda objekt neobsahuje podmnožinu vlastností, přičemž se kontroluje hloubková rovnost. Zděděné vlastnosti jsou ignorovány.
import { assert, test } from 'vitest';
test('assert.notDeepOwnInclude', () => {
assert.notDeepOwnInclude({ a: { b: 2 } }, { a: { c: 3 } });
});match
- Typ:
(value: string, regexp: RegExp, message?: string) => void
Ověří, zda řetězec value odpovídá regulárnímu výrazu regexp.
import { assert, test } from 'vitest';
test('assert.match', () => {
assert.match('foobar', /^foo/, 'regexp matches');
});notMatch
- Typ:
(value: string, regexp: RegExp, message?: string) => void
Ověří, zda řetězec value neodpovídá regulárnímu výrazu regexp.
import { assert, test } from 'vitest';
test('assert.notMatch', () => {
assert.notMatch('foobar', /^foo/, 'regexp does not match');
});property
- Typ:
<T>(object: T, property: string, message?: string) => void
Ověří, zda object má vlastnost s názvem property, ať už přímou nebo zděděnou.
import { assert, test } from 'vitest';
test('assert.property', () => {
assert.property({ tea: { green: 'matcha' } }, 'tea');
assert.property({ tea: { green: 'matcha' } }, 'toString');
});notProperty
- Typ:
<T>(object: T, property: string, message?: string) => void
Ověří, zda object nemá vlastnost s názvem property, ať už přímou nebo zděděnou.
import { assert, test } from 'vitest';
test('assert.notProperty', () => {
assert.notProperty({ tea: { green: 'matcha' } }, 'coffee');
});propertyVal
- Typ:
<T, V>(object: T, property: string, value: V, message?: string) => void
Ověří, zda object má vlastnost s názvem property (ať už přímou nebo zděděnou) a zda má tato vlastnost hodnotu rovnou value. Používá striktní porovnání rovnosti (===).
import { assert, test } from 'vitest';
test('assert.propertyVal', () => {
assert.propertyVal({ tea: 'is good' }, 'tea', 'is good');
});notPropertyVal
- Typ:
<T, V>(object: T, property: string, value: V, message?: string) => void
Ověří, zda object nemá vlastnost s názvem property (ať už přímou nebo zděděnou) s hodnotou rovnou value. Používá striktní porovnání rovnosti (===).
import { assert, test } from 'vitest';
test('assert.notPropertyVal', () => {
assert.notPropertyVal({ tea: 'is good' }, 'tea', 'is bad');
assert.notPropertyVal({ tea: 'is good' }, 'coffee', 'is good');
});deepPropertyVal
- Typ:
<T, V>(object: T, property: string, value: V, message?: string) => void
Ověří, zda object má vlastnost s názvem property (ať už přímou nebo zděděnou) a zda má tato vlastnost hodnotu hloubkově rovnou value. Používá hloubkové porovnání rovnosti.
import { assert, test } from 'vitest';
test('assert.notDeepPropertyVal', () => {
assert.deepPropertyVal({ tea: { green: 'matcha' } }, 'tea', {
green: 'matcha',
});
});notDeepPropertyVal
- Typ:
<T, V>(object: T, property: string, value: V, message?: string) => void
Ověří, zda object nemá vlastnost s názvem property (ať už přímou nebo zděděnou) s hodnotou hloubkově rovnou value. Používá hloubkové porovnání rovnosti.
import { assert, test } from 'vitest';
test('assert.notDeepPropertyVal', () => {
assert.notDeepPropertyVal({ tea: { green: 'matcha' } }, 'tea', {
black: 'matcha',
});
assert.notDeepPropertyVal({ tea: { green: 'matcha' } }, 'tea', {
green: 'oolong',
});
assert.notDeepPropertyVal({ tea: { green: 'matcha' } }, 'coffee', {
green: 'matcha',
});
});nestedProperty
- Typ:
<T>(object: T, property: string, message?: string) => void
Ověří, zda object má vnořenou vlastnost s názvem property. property může být řetězec používající tečkovou notaci (např. tea.green) nebo hranaté závorky (např. tea['green']) pro odkazování na vnořené vlastnosti.
import { assert, test } from 'vitest';
test('assert.nestedProperty', () => {
assert.nestedProperty({ tea: { green: 'matcha' } }, 'tea.green');
});notNestedProperty
- Typ:
<T>(object: T, property: string, message?: string) => void
Ověří, zda object nemá vnořenou vlastnost s názvem property. property může být řetězec používající tečkovou notaci (např. tea.green) nebo hranaté závorky (např. tea['green']) pro odkazování na vnořené vlastnosti.
import { assert, test } from 'vitest';
test('assert.notNestedProperty', () => {
assert.notNestedProperty({ tea: { green: 'matcha' } }, 'tea.oolong');
});nestedPropertyVal
- Typ:
<T>(object: T, property: string, value: any, message?: string) => void
Ověří, zda object má vnořenou vlastnost s názvem property a zda má tato vlastnost hodnotu rovnou value. property může používat tečkovou notaci (např. tea.green) nebo hranaté závorky (např. tea['green']) pro odkazování na vnořené vlastnosti. Používá striktní porovnání rovnosti (===).
import { assert, test } from 'vitest';
test('assert.nestedPropertyVal', () => {
assert.nestedPropertyVal({ tea: { green: 'matcha' } }, 'tea.green', 'matcha');
});notNestedPropertyVal
- Typ:
<T>(object: T, property: string, value: any, message?: string) => void
Ověří, zda object nemá vnořenou vlastnost s názvem property s hodnotou rovnou value. property může používat tečkovou notaci (např. tea.green) nebo hranaté závorky (např. tea['green']) pro odkazování na vnořené vlastnosti. Používá striktní porovnání rovnosti (===).
import { assert, test } from 'vitest';
test('assert.notNestedPropertyVal', () => {
assert.notNestedPropertyVal(
{ tea: { green: 'matcha' } },
'tea.green',
'konacha'
);
assert.notNestedPropertyVal(
{ tea: { green: 'matcha' } },
'coffee.green',
'matcha'
);
});deepNestedPropertyVal
- Typ:
<T>(object: T, property: string, value: any, message?: string) => void
Ověří, zda object má vnořenou vlastnost s názvem property a zda má tato vlastnost hodnotu hloubkově rovnou value. property může používat tečkovou notaci (např. tea.green) nebo hranaté závorky (např. tea['green']) pro odkazování na vnořené vlastnosti. Používá hloubkové porovnání rovnosti.
import { assert, test } from 'vitest';
test('assert.deepNestedPropertyVal', () => {
assert.deepNestedPropertyVal(
{ tea: { green: 'matcha' } },
'tea.green',
'konacha'
);
assert.deepNestedPropertyVal(
{ tea: { green: 'matcha' } },
'coffee.green',
'matcha'
);
});notDeepNestedPropertyVal
- Typ:
<T>(object: T, property: string, value: any, message?: string) => void
Ověří, zda object nemá vnořenou vlastnost s názvem property s hodnotou hloubkově rovnou value. property může používat tečkovou notaci (např. tea.green) nebo hranaté závorky (např. tea['green']) pro odkazování na vnořené vlastnosti. Používá hloubkové porovnání rovnosti.
import { assert, test } from 'vitest';
test('assert.notDeepNestedPropertyVal', () => {
assert.notDeepNestedPropertyVal(
{ tea: { green: { matcha: 'yum' } } },
'tea.green',
{ oolong: 'yum' }
);
assert.notDeepNestedPropertyVal(
{ tea: { green: { matcha: 'yum' } } },
'tea.green',
{ matcha: 'yuck' }
);
assert.notDeepNestedPropertyVal(
{ tea: { green: { matcha: 'yum' } } },
'tea.black',
{ matcha: 'yum' }
);
});lengthOf
- Typ:
<T extends { readonly length?: number | undefined } | { readonly size?: number | undefined }>(object: T, length: number, message?: string) => void
Ověří, zda má object vlastnost length (pro pole, řetězce atd.) nebo size (pro Set, Map atd.) s hodnotou rovnou length.
import { assert, test } from 'vitest';
test('assert.lengthOf', () => {
assert.lengthOf([1, 2, 3], 3, 'array has length of 3');
assert.lengthOf('foobar', 6, 'string has length of 6');
assert.lengthOf(new Set([1, 2, 3]), 3, 'set has size of 3');
assert.lengthOf(
new Map([
['a', 1],
['b', 2],
['c', 3],
]),
3,
'map has size of 3'
);
});hasAnyKeys
- Typ:
<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void
Ověří, zda object má alespoň jeden z klíčů uvedených v keys. Argument keys může být buď pole klíčů, nebo objekt, jehož klíče se použijí jako sada očekávaných klíčů.
import { assert, test } from 'vitest';
test('assert.hasAnyKeys', () => {
assert.hasAnyKeys({ foo: 1, bar: 2, baz: 3 }, ['foo', 'iDontExist', 'baz']);
assert.hasAnyKeys(
{ foo: 1, bar: 2, baz: 3 },
{ foo: 30, iDontExist: 99, baz: 1337 }
);
assert.hasAnyKeys(
new Map([
[{ foo: 1 }, 'bar'],
['key', 'value'],
]),
[{ foo: 1 }, 'key']
);
assert.hasAnyKeys(new Set([{ foo: 'bar' }, 'anotherKey']), [
{ foo: 'bar' },
'anotherKey',
]);
});hasAllKeys
- Typ:
<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void
Ověří, zda object má všechny klíče uvedené v keys a pouze je. Argument keys může být buď pole klíčů, nebo objekt, jehož klíče se použijí jako sada očekávaných klíčů.
import { assert, test } from 'vitest';
test('assert.hasAllKeys', () => {
assert.hasAllKeys({ foo: 1, bar: 2, baz: 3 }, ['foo', 'bar', 'baz']);
assert.hasAllKeys(
{ foo: 1, bar: 2, baz: 3 },
{ foo: 30, bar: 99, baz: 1337 }
);
assert.hasAllKeys(
new Map([
[{ foo: 1 }, 'bar'],
['key', 'value'],
]),
[{ foo: 1 }, 'key']
);
assert.hasAllKeys(
new Set([{ foo: 'bar' }, 'anotherKey'], [{ foo: 'bar' }, 'anotherKey'])
);
});containsAllKeys
- Typ:
<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void
Ověří, zda object obsahuje všechny klíče uvedené v keys, a případně i další klíče. Argument keys může být buď pole klíčů, nebo objekt, jehož klíče se použijí jako sada očekávaných klíčů.
import { assert, test } from 'vitest';
test('assert.containsAllKeys', () => {
assert.containsAllKeys({ foo: 1, bar: 2, baz: 3 }, ['foo', 'baz']);
assert.containsAllKeys({ foo: 1, bar: 2, baz: 3 }, ['foo', 'bar', 'baz']);
assert.containsAllKeys({ foo: 1, bar: 2, baz: 3 }, { foo: 30, baz: 1337 });
assert.containsAllKeys(
{ foo: 1, bar: 2, baz: 3 },
{ foo: 30, bar: 99, baz: 1337 }
);
assert.containsAllKeys(
new Map([
[{ foo: 1 }, 'bar'],
['key', 'value'],
]),
[{ foo: 1 }]
);
assert.containsAllKeys(
new Map([
[{ foo: 1 }, 'bar'],
['key', 'value'],
]),
[{ foo: 1 }, 'key']
);
assert.containsAllKeys(
new Set([{ foo: 'bar' }, 'anotherKey'], [{ foo: 'bar' }])
);
assert.containsAllKeys(
new Set([{ foo: 'bar' }, 'anotherKey'], [{ foo: 'bar' }, 'anotherKey'])
);
});doesNotHaveAnyKeys
- Typ:
<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void
Ověří, že objekt object neobsahuje žádný z klíčů uvedených v keys. Místo pole klíčů lze zadat i objekt, jehož klíče budou použity jako sada očekávaných klíčů.
import { assert, test } from 'vitest';
test('assert.doesNotHaveAnyKeys', () => {
assert.doesNotHaveAnyKeys({ foo: 1, bar: 2, baz: 3 }, [
'one',
'two',
'example',
]);
assert.doesNotHaveAnyKeys(
{ foo: 1, bar: 2, baz: 3 },
{ one: 1, two: 2, example: 'foo' }
);
assert.doesNotHaveAnyKeys(
new Map([
[{ foo: 1 }, 'bar'],
['key', 'value'],
]),
[{ one: 'two' }, 'example']
);
assert.doesNotHaveAnyKeys(
new Set([{ foo: 'bar' }, 'anotherKey'], [{ one: 'two' }, 'example'])
);
});doesNotHaveAllKeys
- Typ:
<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void
Ověří, že objekt object neobsahuje alespoň jeden z klíčů uvedených v keys. Místo pole klíčů lze zadat i objekt, jehož klíče budou použity jako sada očekávaných klíčů.
import { assert, test } from 'vitest';
test('assert.doesNotHaveAllKeys', () => {
assert.doesNotHaveAnyKeys({ foo: 1, bar: 2, baz: 3 }, [
'one',
'two',
'example',
]);
assert.doesNotHaveAnyKeys(
{ foo: 1, bar: 2, baz: 3 },
{ one: 1, two: 2, example: 'foo' }
);
assert.doesNotHaveAnyKeys(
new Map([
[{ foo: 1 }, 'bar'],
['key', 'value'],
]),
[{ one: 'two' }, 'example']
);
assert.doesNotHaveAnyKeys(new Set([{ foo: 'bar' }, 'anotherKey']), [
{ one: 'two' },
'example',
]);
});hasAnyDeepKeys
- Typ:
<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void
Ověří, že objekt object obsahuje alespoň jeden z klíčů uvedených v keys. Vzhledem k tomu, že Set a Map mohou mít objekty jako klíče, lze tuto aserci použít k provedení hloubkového porovnání klíčů. Místo pole klíčů lze zadat i objekt, jehož klíče budou použity jako sada očekávaných klíčů.
import { assert, test } from 'vitest';
test('assert.hasAnyDeepKeys', () => {
assert.hasAnyDeepKeys(
new Map([
[{ one: 'one' }, 'valueOne'],
[1, 2],
]),
{ one: 'one' }
);
assert.hasAnyDeepKeys(
new Map([
[{ one: 'one' }, 'valueOne'],
[1, 2],
]),
[{ one: 'one' }, { two: 'two' }]
);
assert.hasAnyDeepKeys(
new Map([
[{ one: 'one' }, 'valueOne'],
[{ two: 'two' }, 'valueTwo'],
]),
[{ one: 'one' }, { two: 'two' }]
);
assert.hasAnyDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), {
one: 'one',
});
assert.hasAnyDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
{ one: 'one' },
{ three: 'three' },
]);
assert.hasAnyDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
{ one: 'one' },
{ two: 'two' },
]);
});hasAllDeepKeys
- Typ:
<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void
Ověří, že objekt object obsahuje všechny klíče uvedené v keys a pouze tyto klíče. Vzhledem k tomu, že Set a Map mohou mít objekty jako klíče, lze tuto aserci použít k provedení hloubkového porovnání klíčů. Místo pole klíčů lze zadat i objekt, jehož klíče budou použity jako sada očekávaných klíčů.
import { assert, test } from 'vitest';
test('assert.hasAllDeepKeys', () => {
assert.hasAllDeepKeys(new Map([[{ one: 'one' }, 'valueOne']]), {
one: 'one',
});
assert.hasAllDeepKeys(
new Map([
[{ one: 'one' }, 'valueOne'],
[{ two: 'two' }, 'valueTwo'],
]),
[{ one: 'one' }, { two: 'two' }]
);
assert.hasAllDeepKeys(new Set([{ one: 'one' }]), { one: 'one' });
assert.hasAllDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
{ one: 'one' },
{ two: 'two' },
]);
});containsAllDeepKeys
- Typ:
<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void
Ověří, že objekt object obsahuje všechny klíče uvedené v keys. Vzhledem k tomu, že Set a Map mohou mít objekty jako klíče, lze tuto aserci použít k provedení hloubkového porovnání klíčů. Místo pole klíčů lze zadat i objekt, jehož klíče budou použity jako sada očekávaných klíčů.
import { assert, test } from 'vitest';
test('assert.containsAllDeepKeys', () => {
assert.containsAllDeepKeys(
new Map([
[{ one: 'one' }, 'valueOne'],
[1, 2],
]),
{ one: 'one' }
);
assert.containsAllDeepKeys(
new Map([
[{ one: 'one' }, 'valueOne'],
[{ two: 'two' }, 'valueTwo'],
]),
[{ one: 'one' }, { two: 'two' }]
);
assert.containsAllDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), {
one: 'one',
});
assert.containsAllDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
{ one: 'one' },
{ two: 'two' },
]);
});doesNotHaveAnyDeepKeys
- Typ:
<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void
Ověří, že objekt object neobsahuje žádný z klíčů uvedených v keys. Vzhledem k tomu, že Set a Map mohou mít objekty jako klíče, lze tuto aserci použít k provedení hloubkového porovnání klíčů. Místo pole klíčů lze zadat i objekt, jehož klíče budou použity jako sada očekávaných klíčů.
import { assert, test } from 'vitest';
test('assert.doesNotHaveAnyDeepKeys', () => {
assert.doesNotHaveAnyDeepKeys(
new Map([
[{ one: 'one' }, 'valueOne'],
[1, 2],
]),
{ thisDoesNot: 'exist' }
);
assert.doesNotHaveAnyDeepKeys(
new Map([
[{ one: 'one' }, 'valueOne'],
[{ two: 'two' }, 'valueTwo'],
]),
[{ twenty: 'twenty' }, { fifty: 'fifty' }]
);
assert.doesNotHaveAnyDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), {
twenty: 'twenty',
});
assert.doesNotHaveAnyDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
{ twenty: 'twenty' },
{ fifty: 'fifty' },
]);
});doesNotHaveAllDeepKeys
- Typ:
<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string) => void
Ověří, že objekt object neobsahuje alespoň jeden z klíčů uvedených v keys. Vzhledem k tomu, že Set a Map mohou mít objekty jako klíče, lze tuto aserci použít k provedení hloubkového porovnání klíčů. Místo pole klíčů lze zadat i objekt, jehož klíče budou použity jako sada očekávaných klíčů.
import { assert, test } from 'vitest';
test('assert.doesNotHaveAllDeepKeys', () => {
assert.doesNotHaveAllDeepKeys(
new Map([
[{ one: 'one' }, 'valueOne'],
[1, 2],
]),
{ thisDoesNot: 'exist' }
);
assert.doesNotHaveAllDeepKeys(
new Map([
[{ one: 'one' }, 'valueOne'],
[{ two: 'two' }, 'valueTwo'],
]),
[{ twenty: 'twenty' }, { one: 'one' }]
);
assert.doesNotHaveAllDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), {
twenty: 'twenty',
});
assert.doesNotHaveAllDeepKeys(new Set([{ one: 'one' }, { two: 'two' }]), [
{ one: 'one' },
{ fifty: 'fifty' },
]);
});throws
- Typ:
(fn: () => void, errMsgMatcher?: RegExp | string, ignored?: any, message?: string) => void(fn: () => void, errorLike?: ErrorConstructor | Error | null, errMsgMatcher?: RegExp | string | null, message?: string) => void
- Alias:
throwThrow
Pokud je errorLike konstruktor chyby (ErrorConstructor), ověří, že funkce fn vyvolá chybu, která je instancí tohoto konstruktoru. Pokud je errorLike instance chyby (Error), ověří, že vyvolaná chyba je stejná instance jako errorLike. Pokud je zadán errMsgMatcher, ověří se také, že zpráva vyvolané chyby odpovídá regulárnímu výrazu nebo řetězci errMsgMatcher.
import { assert, test } from 'vitest';
test('assert.throws', () => {
assert.throws(fn, 'Error thrown must have this msg');
assert.throws(fn, /Error thrown must have a msg that matches this/);
assert.throws(fn, ReferenceError);
assert.throws(fn, errorInstance);
assert.throws(
fn,
ReferenceError,
'Error thrown must be a ReferenceError and have this msg'
);
assert.throws(
fn,
errorInstance,
'Error thrown must be the same errorInstance and have this msg'
);
assert.throws(
fn,
ReferenceError,
/Error thrown must be a ReferenceError and match this/
);
assert.throws(
fn,
errorInstance,
/Error thrown must be the same errorInstance and match this/
);
});doesNotThrow
- Typ:
(fn: () => void, errMsgMatcher?: RegExp | string, ignored?: any, message?: string) => void - Typ:
(fn: () => void, errorLike?: ErrorConstructor | Error | null, errMsgMatcher?: RegExp | string | null, message?: string) => void
Pokud je errorLike konstruktor chyby (ErrorConstructor), ověří, že funkce fn nevyvolá chybu, která je instancí tohoto konstruktoru. Pokud je errorLike instance chyby (Error), ověří, že vyvolaná chyba není stejná instance jako errorLike. Pokud je zadán errMsgMatcher, ověří se také, že zpráva vyvolané chyby neodpovídá regulárnímu výrazu nebo řetězci errMsgMatcher.
import { assert, test } from 'vitest';
test('assert.doesNotThrow', () => {
assert.doesNotThrow(fn, 'Any Error thrown must not have this message');
assert.doesNotThrow(fn, /Any Error thrown must not match this/);
assert.doesNotThrow(fn, Error);
assert.doesNotThrow(fn, errorInstance);
assert.doesNotThrow(fn, Error, 'Error must not have this message');
assert.doesNotThrow(fn, errorInstance, 'Error must not have this message');
assert.doesNotThrow(fn, Error, /Error must not match this/);
assert.doesNotThrow(fn, errorInstance, /Error must not match this/);
});operator
- Typ:
(val1: OperatorComparable, operator: Operator, val2: OperatorComparable, message?: string) => void
Porovná hodnoty val1 a val2 pomocí zadaného operatoru.
import { assert, test } from 'vitest';
test('assert.operator', () => {
assert.operator(1, '<', 2, 'everything is ok');
});closeTo
- Typ:
(actual: number, expected: number, delta: number, message?: string) => void - Alias:
approximately
Ověří, že actual (skutečná hodnota) je přibližně rovna expected (očekávané hodnotě), s tolerancí +/- delta.
import { assert, test } from 'vitest';
test('assert.closeTo', () => {
assert.closeTo(1.5, 1, 0.5, 'numbers are close');
});sameMembers
- Typ:
<T>(set1: T[], set2: T[], message?: string) => void
Ověří, že set1 a set2 obsahují stejné prvky v libovolném pořadí. Používá se striktní porovnání rovnosti (===).
import { assert, test } from 'vitest';
test('assert.sameMembers', () => {
assert.sameMembers([1, 2, 3], [2, 1, 3], 'same members');
});notSameMembers
- Typ:
<T>(set1: T[], set2: T[], message?: string) => void
Ověří, že set1 a set2 neobsahují stejné prvky v libovolném pořadí. Používá se striktní porovnání rovnosti (===).
import { assert, test } from 'vitest';
test('assert.sameMembers', () => {
assert.notSameMembers([1, 2, 3], [5, 1, 3], 'not same members');
});sameDeepMembers
- Typ:
<T>(set1: T[], set2: T[], message?: string) => void
Ověří, že set1 a set2 obsahují stejné prvky v libovolném pořadí. Používá se hloubkové porovnání rovnosti.
import { assert, test } from 'vitest';
test('assert.sameDeepMembers', () => {
assert.sameDeepMembers(
[{ a: 1 }, { b: 2 }, { c: 3 }],
[{ b: 2 }, { a: 1 }, { c: 3 }],
'same deep members'
);
});notSameDeepMembers
- Typ:
<T>(set1: T[], set2: T[], message?: string) => void
Ověří, že set1 a set2 neobsahují stejné prvky v libovolném pořadí. Používá se hloubkové porovnání rovnosti.
import { assert, test } from 'vitest';
test('assert.sameDeepMembers', () => {
assert.sameDeepMembers(
[{ a: 1 }, { b: 2 }, { c: 3 }],
[{ b: 2 }, { a: 1 }, { c: 3 }],
'same deep members'
);
});sameOrderedMembers
- Typ:
<T>(set1: T[], set2: T[], message?: string) => void
Ověří, že set1 a set2 obsahují stejné prvky ve stejném pořadí. Používá se striktní porovnání rovnosti (===).
import { assert, test } from 'vitest';
test('assert.sameOrderedMembers', () => {
assert.sameOrderedMembers([1, 2, 3], [1, 2, 3], 'same ordered members');
});notSameOrderedMembers
- Typ:
<T>(set1: T[], set2: T[], message?: string) => void
Ověří, že set1 a set2 neobsahují stejné prvky ve stejném pořadí. Používá se striktní porovnání rovnosti (===).
import { assert, test } from 'vitest';
test('assert.notSameOrderedMembers', () => {
assert.notSameOrderedMembers(
[1, 2, 3],
[2, 1, 3],
'not same ordered members'
);
});sameDeepOrderedMembers
- Typ:
<T>(set1: T[], set2: T[], message?: string) => void
Ověří, že set1 a set2 obsahují stejné prvky ve stejném pořadí. Používá se hloubkové porovnání rovnosti.
import { assert, test } from 'vitest';
test('assert.sameDeepOrderedMembers', () => {
assert.sameDeepOrderedMembers(
[{ a: 1 }, { b: 2 }, { c: 3 }],
[{ a: 1 }, { b: 2 }, { c: 3 }],
'same deep ordered members'
);
});notSameDeepOrderedMembers
- Typ:
<T>(set1: T[], set2: T[], message?: string) => void
Ověřuje, že set1 a set2 neobsahují stejné prvky ve stejném pořadí. Pro porovnání prvků se používá hloubková kontrola rovnosti.
import { assert, test } from 'vitest';
test('assert.notSameDeepOrderedMembers', () => {
assert.notSameDeepOrderedMembers(
[{ a: 1 }, { b: 2 }, { c: 3 }],
[{ a: 1 }, { b: 2 }, { z: 5 }],
'not same deep ordered members'
);
assert.notSameDeepOrderedMembers(
[{ a: 1 }, { b: 2 }, { c: 3 }],
[{ b: 2 }, { a: 1 }, { c: 3 }],
'not same deep ordered members'
);
});includeMembers
- Typ:
<T>(superset: T[], subset: T[], message?: string) => void
Ověřuje, že subset je podmnožinou superset bez ohledu na pořadí prvků. Pro porovnání prvků se používá striktní kontrola rovnosti (===). Duplicitní prvky v subset jsou ignorovány.
import { assert, test } from 'vitest';
test('assert.includeMembers', () => {
assert.includeMembers([1, 2, 3], [2, 1, 2], 'include members');
});notIncludeMembers
- Typ:
<T>(superset: T[], subset: T[], message?: string) => void
Ověřuje, že subset není podmnožinou superset bez ohledu na pořadí prvků. Pro porovnání prvků se používá striktní kontrola rovnosti (===). Duplicitní prvky v subset jsou ignorovány.
import { assert, test } from 'vitest';
test('assert.notIncludeMembers', () => {
assert.notIncludeMembers([1, 2, 3], [5, 1], 'not include members');
});includeDeepMembers
- Typ:
<T>(superset: T[], subset: T[], message?: string) => void
Ověřuje, že subset je podmnožinou superset bez ohledu na pořadí prvků. Pro porovnání prvků se používá hloubková kontrola rovnosti. Duplicitní prvky v subset jsou ignorovány.
import { assert, test } from 'vitest';
test('assert.includeDeepMembers', () => {
assert.includeDeepMembers(
[{ a: 1 }, { b: 2 }, { c: 3 }],
[{ b: 2 }, { a: 1 }, { b: 2 }],
'include deep members'
);
});notIncludeDeepMembers
- Typ:
<T>(superset: T[], subset: T[], message?: string) => void
Ověřuje, že subset není podmnožinou superset bez ohledu na pořadí prvků. Pro porovnání prvků se používá hloubková kontrola rovnosti. Duplicitní prvky v subset jsou ignorovány.
import { assert, test } from 'vitest';
test('assert.notIncludeDeepMembers', () => {
assert.notIncludeDeepMembers(
[{ a: 1 }, { b: 2 }, { c: 3 }],
[{ b: 2 }, { f: 5 }],
'not include deep members'
);
});includeOrderedMembers
- Typ:
<T>(superset: T[], subset: T[], message?: string) => void
Ověřuje, že subset je obsažen v superset ve stejném pořadí, počínaje prvním prvkem v superset. Pro porovnání prvků se používá striktní kontrola rovnosti (===).
import { assert, test } from 'vitest';
test('assert.includeOrderedMembers', () => {
assert.includeOrderedMembers([1, 2, 3], [1, 2], 'include ordered members');
});notIncludeOrderedMembers
- Typ:
<T>(superset: T[], subset: T[], message?: string) => void
Ověřuje, že subset není obsažen v superset ve stejném pořadí, počínaje prvním prvkem v superset. Pro porovnání prvků se používá striktní kontrola rovnosti (===).
import { assert, test } from 'vitest';
test('assert.notIncludeOrderedMembers', () => {
assert.notIncludeOrderedMembers(
[1, 2, 3],
[2, 1],
'not include ordered members'
);
assert.notIncludeOrderedMembers(
[1, 2, 3],
[2, 3],
'not include ordered members'
);
});includeDeepOrderedMembers
- Typ:
<T>(superset: T[], subset: T[], message?: string) => void
Ověřuje, že subset je obsažen v superset ve stejném pořadí, počínaje prvním prvkem v superset. Pro porovnání prvků se používá hloubková kontrola rovnosti.
import { assert, test } from 'vitest';
test('assert.includeDeepOrderedMembers', () => {
assert.includeDeepOrderedMembers(
[{ a: 1 }, { b: 2 }, { c: 3 }],
[{ a: 1 }, { b: 2 }],
'include deep ordered members'
);
});notIncludeDeepOrderedMembers
- Typ:
<T>(superset: T[], subset: T[], message?: string) => void
Ověřuje, že subset není obsažen v superset ve stejném pořadí, počínaje prvním prvkem v superset. Pro porovnání prvků se používá hloubková kontrola rovnosti.
import { assert, test } from 'vitest';
test('assert.notIncludeDeepOrderedMembers', () => {
assert.notIncludeDeepOrderedMembers(
[{ a: 1 }, { b: 2 }, { c: 3 }],
[{ a: 1 }, { f: 5 }],
'not include deep ordered members'
);
assert.notIncludeDeepOrderedMembers(
[{ a: 1 }, { b: 2 }, { c: 3 }],
[{ b: 2 }, { a: 1 }],
'not include deep ordered members'
);
assert.notIncludeDeepOrderedMembers(
[{ a: 1 }, { b: 2 }, { c: 3 }],
[{ b: 2 }, { c: 3 }],
'not include deep ordered members'
);
});oneOf
- Typ:
<T>(inList: T, list: T[], message?: string) => void
Ověřuje, že hodnota inList (která není objekt ani pole) se nachází v poli list.
import { assert, test } from 'vitest';
test('assert.oneOf', () => {
assert.oneOf(1, [2, 1], 'Not found in list');
});changes
- Typ:
<T>(modifier: Function, object: T, property: string, message?: string) => void
Ověřuje, že funkce modifier změní hodnotu vlastnosti property objektu object.
import { assert, test } from 'vitest';
test('assert.changes', () => {
const obj = { val: 10 };
function fn() {
obj.val = 22;
}
assert.changes(fn, obj, 'val');
});changesBy
- Typ:
<T>(modifier: Function, object: T, property: string, change: number, message?: string) => void
Ověřuje, že funkce modifier změní hodnotu vlastnosti property objektu object o hodnotu change.
import { assert, test } from 'vitest';
test('assert.changesBy', () => {
const obj = { val: 10 };
function fn() {
obj.val += 2;
}
assert.changesBy(fn, obj, 'val', 2);
});doesNotChange
- Typ:
<T>(modifier: Function, object: T, property: string, message?: string) => void
Ověřuje, že funkce modifier nezmění hodnotu vlastnosti property objektu object.
import { assert, test } from 'vitest';
test('assert.doesNotChange', () => {
const obj = { val: 10 };
function fn() {
obj.val += 2;
}
assert.doesNotChange(fn, obj, 'val');
});changesButNotBy
- Typ:
<T>(modifier: Function, object: T, property: string, change:number, message?: string) => void
Ověřuje, že funkce modifier změní hodnotu vlastnosti property objektu object, ale ne o hodnotu change.
import { assert, test } from 'vitest';
test('assert.changesButNotBy', () => {
const obj = { val: 10 };
function fn() {
obj.val += 10;
}
assert.changesButNotBy(fn, obj, 'val', 5);
});increases
- Typ:
<T>(modifier: Function, object: T, property: string, message?: string) => void
Ověřuje, že funkce modifier zvýší hodnotu číselné vlastnosti property objektu object.
import { assert, test } from 'vitest';
test('assert.increases', () => {
const obj = { val: 10 };
function fn() {
obj.val = 13;
}
assert.increases(fn, obj, 'val');
});increasesBy
- Typ:
<T>(modifier: Function, object: T, property: string, change: number, message?: string) => void
Ověřuje, že funkce modifier zvýší hodnotu číselné vlastnosti property objektu object o hodnotu change.
import { assert, test } from 'vitest';
test('assert.increasesBy', () => {
const obj = { val: 10 };
function fn() {
obj.val += 10;
}
assert.increasesBy(fn, obj, 'val', 10);
});doesNotIncrease
- Typ:
<T>(modifier: Function, object: T, property: string, message?: string) => void
Ověřuje, že funkce modifier nezvýší hodnotu číselné vlastnosti property objektu object.
import { assert, test } from 'vitest';
test('assert.doesNotIncrease', () => {
const obj = { val: 10 };
function fn() {
obj.val = 8;
}
assert.doesNotIncrease(fn, obj, 'val');
});increasesButNotBy
- Typ:
<T>(modifier: Function, object: T, property: string, change: number, message?: string) => void
Ověřuje, že funkce modifier zvýší hodnotu číselné vlastnosti property objektu object, ale ne o hodnotu change.
import { assert, test } from 'vitest';
test('assert.increasesButNotBy', () => {
const obj = { val: 10 };
function fn() {
obj.val += 15;
}
assert.increasesButNotBy(fn, obj, 'val', 10);
});decreases
- Typ:
<T>(modifier: Function, object: T, property: string, message?: string) => void
Ověřuje, že funkce modifier sníží hodnotu číselné vlastnosti property objektu object.
import { assert, test } from 'vitest';
test('assert.decreases', () => {
const obj = { val: 10 };
function fn() {
obj.val = 5;
}
assert.decreases(fn, obj, 'val');
});decreasesBy
- Typ:
<T>(modifier: Function, object: T, property: string, change: number, message?: string) => void
Ověřuje, že funkce modifier sníží hodnotu číselné vlastnosti property objektu object o hodnotu change.
import { assert, test } from 'vitest';
test('assert.decreasesBy', () => {
const obj = { val: 10 };
function fn() {
obj.val -= 5;
}
assert.decreasesBy(fn, obj, 'val', 5);
});doesNotDecrease
- Typ:
<T>(modifier: Function, object: T, property: string, message?: string) => void
Ověřuje, že funkce modifier nesníží hodnotu číselné vlastnosti property objektu object.
import { assert, test } from 'vitest';
test('assert.doesNotDecrease', () => {
const obj = { val: 10 };
function fn() {
obj.val = 15;
}
assert.doesNotDecrease(fn, obj, 'val');
});doesNotDecreaseBy
- Type:
<T>(modifier: Function, object: T, property: string, change: number, message?: string) => void
Ověří, že modifier nesníží číselnou hodnotu vlastnosti property objektu object ani návratovou hodnotu modifier o hodnotu change nebo více.
import { assert, test } from 'vitest';
test('assert.doesNotDecreaseBy', () => {
const obj = { val: 10 };
function fn() {
obj.val = 5;
}
assert.doesNotDecreaseBy(fn, obj, 'val', 1);
});decreasesButNotBy
- Type:
<T>(modifier: Function, object: T, property: string, change: number, message?: string) => void
Ověří, že modifier sníží číselnou hodnotu vlastnosti property objektu object nebo návratovou hodnotu modifier, ale ne o hodnotu change.
import { assert, test } from 'vitest';
test('assert.decreasesButNotBy', () => {
const obj = { val: 10 };
function fn() {
obj.val = 5;
}
assert.decreasesButNotBy(fn, obj, 'val', 1);
});ifError
- Type:
<T>(object: T, message?: string) => void
Ověří, zda je object nepravdivá hodnota (falsy). Pokud je object pravdivá hodnota (truthy), vyvolá výjimku. Tato funkce byla přidána, aby bylo možné použít chai jako přímou náhradu za Node.js assert class.
import { assert, test } from 'vitest';
test('assert.ifError', () => {
const err = new Error('I am a custom error');
assert.ifError(err); // Znovu vyvolá err!
});isExtensible
- Type:
<T>(object: T, message?: string) => void - Alias:
extensible
Ověří, že object je rozšiřitelný (lze k němu přidávat nové vlastnosti).
import { assert, test } from 'vitest';
test('assert.isExtensible', () => {
assert.isExtensible({});
});isNotExtensible
- Type:
<T>(object: T, message?: string) => void - Alias:
notExtensible
Ověří, že object není rozšiřitelný (nelze k němu přidávat nové vlastnosti).
import { assert, test } from 'vitest';
test('assert.isNotExtensible', () => {
const nonExtensibleObject = Object.preventExtensions({});
const sealedObject = Object.seal({});
const frozenObject = Object.freeze({});
assert.isNotExtensible(nonExtensibleObject);
assert.isNotExtensible(sealedObject);
assert.isNotExtensible(frozenObject);
});isSealed
- Type:
<T>(object: T, message?: string) => void - Alias:
sealed
Ověří, že object je zapečetěný (nelze k němu přidávat nové vlastnosti ani odstraňovat existující, ale hodnoty existujících vlastností lze měnit, pokud jsou zapisovatelné).
import { assert, test } from 'vitest';
test('assert.isSealed', () => {
const sealedObject = Object.seal({});
const frozenObject = Object.freeze({});
assert.isSealed(sealedObject);
assert.isSealed(frozenObject);
});isNotSealed
- Type:
<T>(object: T, message?: string) => void - Alias:
notSealed
Ověří, že object není zapečetěný (mohou k němu být přidány nové vlastnosti a jeho existující vlastnosti mohou být odstraněny).
import { assert, test } from 'vitest';
test('assert.isNotSealed', () => {
assert.isNotSealed({});
});isFrozen
- Type:
<T>(object: T, message?: string) => void - Alias:
frozen
Ověří, že object je zmrazený (nemohou k němu být přidány nové vlastnosti a jeho existující vlastnosti nemohou být měněny).
import { assert, test } from 'vitest';
test('assert.isFrozen', () => {
const frozenObject = Object.freeze({});
assert.frozen(frozenObject);
});isNotFrozen
- Type:
<T>(object: T, message?: string) => void - Alias:
notFrozen
Ověří, že object není zmrazený (mohou k němu být přidány nové vlastnosti a jeho existující vlastnosti mohou být měněny).
import { assert, test } from 'vitest';
test('assert.isNotFrozen', () => {
assert.isNotFrozen({});
});isEmpty
- Type:
<T>(target: T, message?: string) => void - Alias:
empty
Ověří, že target neobsahuje žádné hodnoty. Pro pole a řetězce kontroluje vlastnost length. Pro instance Map a Set kontroluje vlastnost size. Pro objekty kontroluje počet klíčů.
import { assert, test } from 'vitest';
test('assert.isEmpty', () => {
assert.isEmpty([]);
assert.isEmpty('');
assert.isEmpty(new Map());
assert.isEmpty({});
});isNotEmpty
- Type:
<T>(object: T, message?: string) => void - Alias:
notEmpty
Ověří, že target obsahuje hodnoty. Pro pole a řetězce kontroluje vlastnost length. Pro instance Map a Set kontroluje vlastnost size. Pro objekty kontroluje počet klíčů.
import { assert, test } from 'vitest';
test('assert.isNotEmpty', () => {
assert.isNotEmpty([1, 2]);
assert.isNotEmpty('34');
assert.isNotEmpty(new Set([5, 6]));
assert.isNotEmpty({ key: 7 });
});