qunit-dom icon indicating copy to clipboard operation
qunit-dom copied to clipboard

This whitespace replace regex is not replacing   encoded whitespaces.

Open ChristianGreinke opened this issue 2 years ago • 3 comments

This whitespace replace regex is not replacing   encoded whitespaces.

https://github.com/simplabs/qunit-dom/blob/ec5c614f1ea589419eea1591f9b62d32760dc5a1/lib/helpers/collapse-whitespace.ts#L4

You could maybe replace with .replace(/[ \u00a0]+/g, ' ')

It creates for example issues with assert.dom().hasText() where one uses test text to compare with dom element textContent and all multiple continuous white spaces from the test text are collapsed to one single white space.

For example with html

a   b

assert.dom('p').hasText('a b') would fail and it is not possible to create a hasText parameter which would succeed the assertion.

ChristianGreinke avatar May 31 '22 12:05 ChristianGreinke

assert.dom('p').hasText('a b') would fail

that is intentional because multiple nbsp are not collapsed into a single whitespace.

Turbo87 avatar May 31 '22 13:05 Turbo87

that is intentional because multiple nbsp are not collapsed into a single whitespace.

I see. That means assert..hasText is not usable for dom text elements having   encodings. Is there an alternative one could use? Besides not using   at all. Though then you get collapsed whitespace in the rendered browser output. Which could only be prevented by adding more boilerplate styles like white-space : pre.

ChristianGreinke avatar Jun 02 '22 09:06 ChristianGreinke

hasText() supports regex expectations. maybe that helps?

Turbo87 avatar Jun 02 '22 10:06 Turbo87