¿Estoy haciendo algo mal o JSDOM carece por completo de soporte para estilos en línea en cascada?
Un ejemplo sencillo:
var doc = jsdom.jsdom('<html><body><div style="color: red;"><div id="nested"></div></div></body></html>');
var win = doc.defaultView;
var el = doc.getElementById('nested');
console.log(win.getComputedStyle(el, ''));
Producción:
CSSStyleDeclaration {
'0': 'display',
_values: { display: 'block' },
_importants: { display: '' },
_length: 1,
_onChange: [Function] }
Como referencia, aquí el comportamiento del navegador para el mismo ejemplo:
¿JSDOM carece por completo de soporte para estilos en línea en cascada?
Eso es cierto afaik. Nadie ha escrito nada para tratar adecuadamente con la cascada todavía.
Ouch... ¿Eso suena como una tarea enorme? En lo que respecta al manejo del estilo, también parece que no hay ningún tipo de análisis de estilo en getComputedStyle()
? Por ejemplo, el navegador devuelve rgb(255, 0, 0)
para el color del ejemplo anterior, mientras que jsdom devuelve red
.
¿Alguna idea de cuándo/si esto se solucionará? Mis pruebas fallan debido a que getComputedStyle devuelve un valor incorrecto debido a la falta de cascada en JSDOM.