vegaprotocol / vegawallet-desktop

Desktop application for Vega Protocol's wallet
MIT License
15 stars 12 forks source link

Test code proposed refactor - used create wallet tests as an example #608

Closed dalebennett1992 closed 1 year ago

dalebennett1992 commented 1 year ago

Having looked at our tests I thought it might be worth considering alternate approaches for writing our test code while the framework is still in its infancy. I think these changes will result in more maintainable test code and reusable methods that should make creating more tests faster/easier. Would be interested to get thoughts on it as an approach going forward.

I have targeted just a couple of tests for now.

dalebennett1992 commented 1 year ago

I like this a lot, seem simpler, but I'd be interested to hear @radoslaw-szpiech thoughts on this as he has done much more of this than I have 👍

nice, @radoslaw-szpiech if you are happy with this approach we could get this down? Let me know

radoslaw-szpiech commented 1 year ago

@dalebennett1992 @dexturr I remember the discussion that we were having at the beginning of cypress testing, that we want to get rid of the page object model approach, and put everything directly into test files, to make it easier for debug, and have clear picture what is happening in test. I think we can create some common functions and reuse that, to avoid lots of repetition, but I would rather not use full page object model - no point of creating separate function for a click action on specific element, that is used only once or twice ;) Just use common sense doing that :)

radoslaw-szpiech commented 1 year ago

if we have situation like this - image that means we may have done it wrong :D

radoslaw-szpiech commented 1 year ago

@dalebennett1992 Can you reuse the functions you created in other tests as well?

dalebennett1992 commented 1 year ago

@dalebennett1992 Can you reuse the functions you created in other tests as well?

theoretically you can use these functions anywhere really, as many tests as you like.. was just targeting a small portion for an example