Aller au contenu principal
Version : Suivant

Plateforme Jest

Vous pouvez sélectionner des fonctionnalités spécifiques de Jest et les utiliser comme des paquets autonomes. Voici une liste des paquets disponibles :

jest-changed-files​

Outil pour identifier les fichiers modifiés dans un dépôt git/hg. Exporte deux fonctions :

  • getChangedFilesForRoots returns a promise that resolves to an object with the changed files and repos.
  • findRepos returns a promise that resolves to a set of repositories contained in the specified path.

Exemple​

const {getChangedFilesForRoots} = require('jest-changed-files');

// print the set of modified files since last commit in the current repo
getChangedFilesForRoots(['./'], {
lastCommit: true,
}).then(result => console.log(result.changedFiles));

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

jest-diff​

Outil pour visualiser les changements dans les données. Exporte une fonction qui compare deux valeurs de n'importe quel type et renvoie une chaîne « joliment formatée » illustrant la différence entre les deux arguments.

Exemple​

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

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

const result = diff(a, b);

// affiche les différences
console.log(result);

jest-docblock​

Outil pour extraire et analyser les commentaires en haut d'un fichier JavaScript. Exporte diverses fonctions pour manipuler les données à l'intérieur du bloc de commentaires.

Exemple​

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

const code = `
/**
* This is a sample
*
* @flow
*/

console.log('Hello World!');
`;

const parsed = parseWithComments(code);

// prints an object with two attributes: comments and pragmas.
console.log(parsed);

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

jest-get-type​

Module qui identifie le type primitif de n'importe quelle valeur JavaScript. Exporte une fonction qui retourne une chaîne de caractères avec le type de la valeur passée en argument.

Exemple​

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

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

// prints 'array'
console.log(getType(array));
// prints 'null'
console.log(getType(nullValue));
// prints 'undefined'
console.log(getType(undefinedValue));

jest-validate​

Outil de validation des configurations transmises par les utilisateurs. Exporte une fonction qui prend deux arguments : la configuration de l'utilisateur et un objet contenant un exemple de configuration et d'autres options. La valeur retournée est un objet avec deux attributs :

  • hasDeprecationWarnings, a boolean indicating whether the submitted configuration has deprecation warnings,
  • isValid, a boolean indicating whether the configuration is correct or not.

Exemple​

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​

Module utilisé pour la parallélisation des tâches. Exports a class JestWorker that takes the path of Node.js module and lets you call the module's exported methods as if they were class methods, returning a promise that resolves when the specified method finishes its execution in a forked process.

Exemple​

heavy-task.js
module.exports = {
myHeavyTask: args => {
// long running CPU intensive task.
},
};
main.js
async function main() {
const worker = new Worker(require.resolve('./heavy-task.js'));

// exécute 2 tâches en parallèle avec des arguments différents
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​

Exporte une fonction qui convertit n'importe quelle valeur JavaScript en une chaîne lisible par l'homme. Prend en charge tous les types de JavaScript intégrés et permet d'étendre les types spécifiques aux applications via des plugins définis par l'utilisateur.

Exemple​

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.