javascript - Jest - Obtener nombre de la prueba y descripción
Estoy tratando de obtener el nombre del test que se pasó a la función it(name: string) de Jest, así como el nombre de la descripción que se pasó a describe(name: string, ....).
¿Hay alguna manera de acceder a esto de alguna forma?
Por ejemplo
describe("Description", () => {
it("Test", () => {
const description = "How do I get the description name?"
const test = "How do I get the test name?";
expect(`${description} - ${test}`).toBe("Description - Test");
});
})
Enlace de CodeSandbox
Actualización 1
La razón subyacente por la que quiero esto es porque quiero hacer algunas convenciones de nombres de instantáneas personalizadas basadas en describe, test y algunas variables de entorno (por ejemplo, tamaños de ventana gráfica + datos simulados/reales).
Respuesta #1
Puedes lograr esto usando un comparador personalizado
expect.extend({
testName(exp) {
return {
pass: this.currentTestName === exp,
message: () => '',
};
},
});
describe("Description", () => {
it("Test", () => {
expect(`Description Test`).testName();
});
});
Respuesta #2
Quizás, la solución más obvia es lo que quieres. En lugar de pasar literales a describe y it, simplemente guárdalos en constantes respectivas que luego podrían ser fácilmente accesibles dentro de los casos de prueba respectivos a través del alcance exterior.
Estas constantes podrían inicializarse fácilmente ya sea con valores de las variables de entorno o con valores predeterminados literales.
const suiteA = 'Description';
describe(suiteA, () => {
const testA = 'Test';
it(testA, () => {
expect(`${suiteA} - ${testA}`).toBe("Description - Test");
});
})
