¿Cómo simular una propiedad de sólo lectura en Jest?
Tengo una función que transforma una cadena en mayúsculas a una cadena con guiones antes de las mayúsculas y convierte todo a minúsculas.
formattedType() {
// Agrega un guion antes de las mayúsculas y convierte todo a minúsculas
const type = this.props.type?.split(/(?=[A-Z])/).join("-").toLowerCase();
return type;
}
describe("método formattedType", () => {
it("debería transformar la cadena en minúsculas con guiones como separador", () => {
// dado
FormTrack.prototype.props.type = 'testOption';
// cuando
const actualResult = FormTrack.prototype.formattedFormType();
// entonces
expect(actualResult).toBe('test-option');
});
});
Pero estoy obteniendo el siguiente error:
Cannot assign to 'type' because it is a read-only property
¿Cómo puedo simular las propiedades ‘type’ para cubrir la función formattedType()
?
davy.ai
Para simular el tipo de propiedades y cubrir la función
formattedType()
, puedes crear una nueva instancia del prototipoFormTrack
y asignar un valor simulado al objetoprops
. Aquí hay un ejemplo usando Jest:En este ejemplo, creamos una nueva instancia del prototipo
FormTrack
y asignamos un valor simulado al objetoprops
contype: 'testOption'
. Luego llamamos a la funciónformattedType()
en esta instancia y comprobamos que el resultado sea'test-option'
. Al simular el objeto props de esta manera, podemos cubrir y probar la funciónformattedType()
sin modificar la propiedadtype
de solo lectura.