Contributions
Closed this issue · 6 comments
Hey @DigitalFlow, this project looks exciting :) I'd love to work on it.. can you give any more suggestions for functions you would like to see added to the project? (I see you've mentioned RUI support already).
Hi @camelCaseDave,
awesome, I'm glad that you're interested in this project :)
Yes RUI support should be done quite soon. I guess this will be rather easy, as the Dynamics Level Up Chrome Extension already retrieves the context in RUI and UCI as well.
So we know that it's definetly possible.
Next up I'd like to handle Quick Create forms.
As this project targets to simulate process testing, so focus to business processes instead of simulating every user click, we need to find the correct IFrame after opening a quick create form, for being able to use its Xrm.Page object for issuing commands.
I already did a quick check and was able to find the correct IFrame in the debugger once a quick create form was opened. I imagined the openQuickCreate function to return a class instance, which allows interacting with it, just as the normal forms do.
I will also have to come up with some kind of namespaces for all functions that we provide, so that it's easier to work with. All functions directly in the top scope get messy really quick.
The nice thing is that easy tests are already working and we can build on that.
I'm really glad that you want to join in, as this will become quite a lot of work, but I think it will pay off.
Working with UI tests is so much less painful when using the Xrm.Page JS calls.
Kind Regards,
Florian
Awesome :) thanks for getting back to me.
Yeah agreed with your point on namespacing. The sooner the better for them being defined I think, less breaking changes moving forward and contributors will also have a clearer idea of how you want to structure the project.
Hi @camelCaseDave,
some progress already happened yesterday evening.
The latest commit on master now has a function for retrieving the Xrm object in UCI as well as in RUI and namespaces are split up.
We now have namespaces such as XrmTest.Attribute.get / set, XrmTest.Entity.Save and so on.
Pressing of ribbon buttons is now possible by id as well as by label.
Once the RUI tests work as expected and the docs are updated, I'll publish a new version on npm.
Kind Regards,
Florian
Hi @camelCaseDave,
are you still interested and want to give it a spin?
I have the feeling that we reached a pretty good state right now.
There is a demo repository for getting started quickly here: https://github.com/DigitalFlow/D365-UI-Test-Jest-Demo
Would be great to get some feedback and maybe you still want to contribute :)
Kind Regards,
Florian
Hey @DigitalFlow
I am indeed! I noticed you pushed some significant changes yesterday.
I also just included this project in a blog post (though I've not publicised the blog post yet).
I'll have a go with the demo repository. I'm sure it will then become obvious which methods I could look at implementing. If you have any other suggestions please do say.
Thanks
Dave
Hey @camelCaseDave,
that's great, thanks for the blog post, I like it very much :)
Maybe it would be useful to include the example repository in there already.
I did a few tests with O365 and also custom auth and fixed some issues in v0.0.18.
The latest version of the example repository already uses this version.
On my agenda I will now implement setting values in quick create, adding new records from subgrids and lookups and a helper function for setting multiple attributes at once.
Once you really use this lib and see need for more functions or easier access, I'm happy for every PR :)
Kind Regards,
Florian