Aller au contenu principal
Version: 26.x

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 retourne une promesse qui se résout en un objet avec les fichiers et les dépôts modifiés.
  • findRepos retourne une promesse qui se résout en un ensemble de dépôts contenus dans le chemin spécifié.

Exemple#

const {getChangedFilesForRoots} = require('jest-changed-files');
// affiche l'ensemble des fichiers modifiés depuis le dernier commit dans le dépôt courant
getChangedFilesForRoots(['./'], {
lastCommit: true,
}).then(result => console.log(result.changedFiles));

Vous en lirez plus sur jest-changed-files dans le fichier readme.

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').default;
const a = {a: {b: {c: 5}}};
const b = {a: {b: {c: 6}}};
const result = diff(a, b);
// print diff
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 = `
/**
* C'est un exemple
*
* @flow
*/
console.log('Hello World!');
`;
const parsed = parseWithComments(code);
// imprime un objet avec deux attributs : comments et pragmas.
console.log(parsed);

Vous en lirez plus sur jest-docblock dans le fichier readme.

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;
// affiche 'array'
console.log(getType(array));
// affiche 'null'
console.log(getType(nullValue));
// affiche '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, un booléen indiquant si la configuration transmise a des avertissements de dépréciation,
  • isValid, un booléen indiquant si la configuration est correcte ou non.

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);

Vous en lirez plus sur jest-validate dans le fichier readme.

jest-worker#

Module utilisé pour la parallélisation des tâches. Exporte une classe JestWorker qui prend le chemin du module Node.js et vous permet d'appeler les méthodes exportées du module comme s'il s'agissait de méthodes de classe, en renvoyant une promesse qui se résout lorsque la méthode spécifiée termine son exécution dans un processus dérivé.

Exemple#

// heavy-task.js
module.exports = {
myHeavyTask: args => {
// une tâche longue et intensive pour le CPU.
},
};
// 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();

Vous en lirez plus sur jest-worker dans le fichier readme.

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 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));

Vous en lirez plus sur pretty-format dans le fichier readme.