Add new matcher for interpolated strings
What does this MR do?
This MR adds a new jest
custom matcher that allows to compare dom
strings created by gl-sprintf
with the template string
that generates it, for example having the following markup:
const SOME_CONSTANT = s__('Scope|Remember to check the %{linkStart}docs!%{linkEnd} buddy');
<p data-testid="the-thing">
<gl-sprintf :message="SOME_CONSTANT" >
<template #link="{content}">
<gl-link :href="someHref" target="_blank">
{{ content }}
</gl-link>
</template>
</gl-sprintf>
</p>
This would produce in vtu/jest a string like so (when queried with .text()):
Remember to check the
docs!
buddy
So running in your test:
const findTheThing = () => wrapper.find('[data-testid="the-thing"]');
//This fails
expect(findTheThing().text()).toBe(SOME_CONSTANT)
//This works
expect(findTheThing().text()).toMatchInterpolatedText(SOME_CONSTANT)
Part of #216749 (closed)
Edited by Nicolò Maria Mezzopera