Платформа Jest
Ви можете вибрати лише потрібні вам можливості Jest і використовувати їх як окремі пакети. Ось список доступних пакетів:
jest-changed-files
Інструмент для ідентифікації змінених файлів в Git/Mercurial репозиторії. Експортує дві функції:
getChangedFilesForRoots
повертає проміс, який вирішується з об’єктом, що містить змінені файли і репозиторії.findRepos
повертає проміс, який вирішується з набором репозиторіїв, які містяться за вказаним шляхом.
Приклад
const {getChangedFilesForRoots} = require('jest-changed-files');
// Вивести список змінених файлів з моменту останнього коміту в поточному репозиторії
getChangedFilesForRoots(['./'], {
lastCommit: true,
}).then(result => console.log(result.changedFiles));
You can read more about jest-changed-files
in the readme file.
jest-diff
Інструмент для візуалізації зміни в даних. Експортує функцію, яка порівнює два значення будь-якого типу і повертає відформатований рядок, що ілюструє різницю між двома аргументами.
Приклад
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 = `
/**
* This is a sample
*
* @flow
*/
console.log('Hello World!');
`;
const parsed = parseWithComments(code);
// вивід об’єкта з двома властивостями: коментарями і програмними інструкціями.
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: ' Documentation: 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 модуля і дозволяє викликати експортовані модулем методи так, ніби це методи цього класу, що повертають проміс, який вирішується після завершення виконання вказаного методу в дочірньому процесі.
Приклад
module.exports = {
myHeavyTask: args => {
// довготривала задача з інтенсивним використанням процесора.
},
};
async function main() {
const worker = new Worker(require.resolve('./heavy-task.js'));
// запускаємо 2 паралельні задачі з різними аргументами
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.