Перейти к основной части
Version: 29.7

Jest Platform

Вы можете выбрать специфические функции Jest и использовать их в качестве отдельных пакетов. Вот список доступных пакетов:

jest-changed-files

Инструмент для определения измененных файлов в git/hg репозитории. Экспортирует две функции:

  • getChangedFilesForRoots возвращает Promise, который в Resolve хранит объект с измененными файлами и репозиторием.
  • findRepos возвращает Promise, которое в Resolve передает набор репозиториев, содержащихся в указанном пути.

Образец

// выводит набор измененных файлов с момента последнего коммита в выбранном репозитории
getChangedFilesForRoots(['./'], {
lastCommit: true,
}).then(result => console.log(result.changedFiles));

You can read more about jest-changed-files in the readme file.

jest-diff

Инструмент для визуализации изменений данных. Экспортирует функцию, которая сравнивает два значения любого типа и возвращает строку "pretty-printed", иллюстрирующую разницу между двумя аргументами.

Образец

const {diff} = require('jest-diff');

const a = {a: {b: {c: 5}}};
const b = {a: {b: {c: 6}}};

const result = diff(a, b);

// выводит разницу
console.log(result);

jest-docblock

Инструмент для разбора и парсинга комментариев в верхней части JavaScript-файла. Экспортирует различные функции для управления данными внутри блочных комментариев.

Образец

const {parseWithComments} = require('jest-docblock');

const code = `
/**
* Это пример
*
* @flow
*/

console.log('Привет мир!');
`;

const parsed = parseWithComments(code);

// выводит пример с двумя аттрибутами: комментарии и pragma.
console.log(parsed);

You can read more about jest-docblock in the readme file.

jest-get-type

Модуль, который определяет примитивный тип любого значения JavaScript. Экспортирует функцию, которая возвращает строку с типом передаваемого значения в качестве аргумента.

Образец

const {getType} = require('jest-get-type');

const array = [1, 2, 3];
const nullValue = null;
const undefinedValue = undefined;

// выведет 'array'
console.log(getType(array));
// выведет 'null'
console.log(getType(nullValue));
// выведет 'undefined'
console.log(getType(undefinedValue));

jest-validate

Инструмент для проверки конфигураций, представленных пользователями. Экспортирует функцию, которая принимает два аргумента: конфигурацию пользователя и объект, содержащий пример конфигурации и другие параметры. Возвращаемым значением является объект с двумя атрибутами:

  • hasDeprecationWarnings, логическое значение, указывающее, имеет ли представленная конфигурация предупреждение об использовании устаревшего принципа,
  • isValid, логическое значение, указывающее верна ли конфигурация или нет.

Образец

const {validate} = require('jest-validate');

const configByUser = {
transform: '<rootDir>/node_modules/my-custom-transform',
};

const result = validate(configByUser, {
comment: ' Документация: http://custom-docs.com',
exampleConfig: {transform: '<rootDir>/node_modules/babel-jest'},
});

console.log(result);

You can read more about jest-validate in the readme file.

jest-worker

Модуль используется для распараллеливания задач. Экспортирует класс JestWorker, который прокладывает путь к Node.js модулю и позволяет вызвать экспортированные методы модуля, как будто они были методами класса, возвращает Promise, который вызывает Resolve, когда указанный метод завершает его выполнение в форкнутом процессе.

Образец

heavy-task.js
module.exports = {
myHeavyTask: args => {
// большая задача, интенсивно использующая ЦП.
},
};
main.js
async function main() {
const worker = new Worker(require.resolve('./heavy-task.js'));

// Запускаем параллельно две задачи с различными параметрами
const results = await Promise.all([
worker.myHeavyTask({foo: 'bar'}),
worker.myHeavyTask({bar: 'foo'}),
]);

console.log(results);
}

main();

You can read more about jest-worker in the readme file.

pretty-format

Экспортирует функцию, которая преобразует любое значение JavaScript в человекочитаемую строку. Поддерживает все встроенные типы JavaScript из коробки и позволяет расширить для конкретных типов приложений через пользовательские плагины.

Образец

const {format: prettyFormat} = require('pretty-format');

const val = {object: {}};
val.circularReference = val;
val[Symbol('foo')] = 'foo';
val.map = new Map([['prop', 'value']]);
val.array = [-0, Infinity, NaN];

console.log(prettyFormat(val));

You can read more about pretty-format in the readme file.