Sin más, este post es específico por si en algún momento les pasa lo que dice el título:
Cannot set property scrollHeight of [object Element] which has only a getter
Me ocurrió intentando testear un componente que tenía en el código algo como:
let scrollHeight = this.$refs.content.scrollHeight
claro, en jdom scrollHeight de un elemento del DOM es 0, entonces lo lógico es setearlo en el test. De ahí que no se puede porque esa propiedad en jdom solo tiene un getter.
Lo que tenemos que hacer es guardar una variable local en el test para la referencia del objeto y redefinir la propiedad agregando un setter. Así:
let localHeight = 0
Object.defineProperty(wrapper.vm.$refs.content, 'scrollHeight', {
get: function () {
return localHeight;
},
set: function (value) {
localHeight = value;
}
});
wrapper.vm.$refs.content.scrollHeight = '200px'
Espero haberlos ayudado.
Chauuu