Open KristofferStrube opened 3 years ago
Hi @KristofferStrube
The problem is that you cannot overload based on generic types, so it would mean making SetupModule
generic, e.g.: SetupModule<TObjectReference>(...) where TObjectReference : IJSObjectReference
to keep using the same name (SetupModule). But that will require users to always specify the IJSObjectReference
or a derived type, even in the most common case, e.g. SetupModule<IJSObjectReference>(...)
.
As you say, its probably not too many that needs this, so I would like to keep things simple for the majority. If your workaround works, then I think I will keep it as is, and instead document this particular use case.
What do you think?
Hey @egil
I think you are right. Let's just keep it as it is and maybe document it in this section: https://bunit.dev/docs/test-doubles/emulating-ijsruntime.html#support-for-ijsinprocessobjectreference-and-ijsunmarshalledobjectreference
Ill add it to the to-do list. If you want, a docs PR is very welcome ;)
Is the feature request related to a problem? Please elaborate.
The
SetupModule
extension for setting up an imported JS module only supportsIJSObjectReference
but you can also import modules of typesIJSInProcessObjectReference
andIJSUnmarshalledObjectReference
.The suggested solution
IJSInProcessObjectReference
andIJSUnmarshalledObjectReference
are derived fromIJSObjectReference
so I think it should be possible to support this with minor changes.Describe any alternative solutions
If we can not use that they are derived interfaces to
IJSObjectReference
then it could just be implemented like the module setup feature forIJSObjectReference
.Additional context
I don't think a lot of people use this way of importing modules so might not be a priority.
Currently, I just do the following instead:
Might also be related to the last bit in this old issue #233 where we quickly mentioned
IJSInProcessObjectReference