-
Notifications
You must be signed in to change notification settings - Fork 127
Open
Description
We've stumbled across the following scenario:
- We want to write an e2e test a component
- This component is designed to be primarily rendered on the server (SEO, perceived page load etc)
- Running tests against the
~preview
endpoint isn't ideal - it's not a true test as it's not what would happen on production (additionally we'd have to writewaitFor
type code to compensate for the client side injection process)
One possible solution would be to extend the Registry API to accept a custom Accept
header (similar to what we do for unrendered components i.e. Accept:application/vnd.oc.unrendered+json
) to just return the rendered html string. Example:
Normal request:
curl http://my-components-registry.mydomain.com/hello-world
{
"href": "https://my-components-registry.mydomain.com/hello-world",
"version": "1.0.0",
"requestVersion": "",
"html": "<oc-component href=\"https://my-components-registry.mydomain.com/hello-world\" data-hash=\"cad2a9671257d5033d2abfd739b1660993021d02\" id=\"2890594349\" data-rendered=\"true\" data-version=\"1.0.13\">Hello John doe!</oc-component>",
"type": "oc-component",
"renderMode": "rendered"
}
New "rendered html" request:
curl http://my-components-registry.mydomain.com/hello-world -H Accept:application/vnd.oc.rendered+html
<oc-component href=\"https://my-components-registry.mydomain.com/hello-world\" data-hash=\"cad2a9671257d5033d2abfd739b1660993021d02\" id=\"2890594349\" data-rendered=\"true\" data-version=\"1.0.13\">Hello John doe!</oc-component>
Thoughts? 😇
mattiaerre and badsyntax