Hi everyone, Im just starting on polymer. Im trying to unit test a custom
element that has dependencies and I would like to fake/mock these out.
I've found Scott Miles recommendation on how to mock the core-ajax
implementation. I thought I could follow that pattern easily but this only
works as long as my element does not import the about to be mocked
(core-ajax in this case) element.
If it does import it, then when the test tries to run I get
'Uncaught NotSupportedError: Failed to execute 'registerElement' on
'Document': Registration failed for type 'core-ajax'. A type with that name
is already registered.'
If I could do something like document.unregister the core-ajax element and
import it again in my test, Id be a much happier dev!!!
Polymer is awesome but if I can not unit test it, then it presents major
risks (at least when building an app that will need to be
maintained/changed)
How are you guys working around this? I've been digging into Polymer and
PolymerLab elements repo and most of them lack tests. So far I;ve not found
much reference on how to do it.
Thanks for the help!
Santiago
Scotts' recommendation was:
Instead of importing core-ajax/core-ajax.html, create your own core-ajax
element.
<polymer-element name="core-ajax" attributes="response"><script>
Polymer('core-ajax', {
attached: function() {
this.response = ['a', 'b', 'c'];
}
});</script></polymer-element>
Obviously, this is just an example, the actual implementation depends on
the desired mocking behavior.
This is just one way to solve it, there are many others. I'm interested to
hear what you find (in)convenient.
Follow Polymer on Google+: plus.google.com/107187849809354688692
---
You received this message because you are subscribed to the Google Groups
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/polymer-dev/650f51fd-290f-458a-abb0-2a5af04e3916%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.