gioui-plugins / gio-plugins

Gio-Plugins offers new plugins to extend and enhance your Gio app. Inspired by flutter/plugins repository,
Other
55 stars 6 forks source link

Best approached to cross device testing #29

Open gedw99 opened 1 year ago

gedw99 commented 1 year ago

Most of the things in gio-plugins rely on native features and so are specific to the OS.

Windows 10 and windows 11, mac ( latest ) are the main ones for Desktops.

I was wondering what peoples thoughts are on doing this. This stuff is not easy, and there maybe be innovative ways to get it sot of decent using github actions.

Some ideas :)

Dialogue box: In am integration test, trigger opening a naive dialog and take a screenshot and save it as part of the test and compare it to a golden image.

Software update: Install an old version, and then trigger the "Check for update" page and button, and then take a screenshot. then sleep waiting for the Update to install, and then take another screen shot on the "About" page that shows the installed version.

There is also a golang robot software that seems designed for exactly this crazy stuff ! https://github.com/go-vgo/robotgo

I personally lean towards robotgo, and installing it as part of the github workflow and then running it on each OS. Looks like its heavily used too: https://github.com/go-vgo/robotgo/network/dependents

here is one that use Robotgo with Fyne: https://github.com/GavinTan/autoTyper/blob/main/main.go Its written like an integration test...

I noticed some of the example us https://github.com/robotn/gohook, which looks like it maybe useful.

inkeliz commented 1 year ago

That is something that needs to be improved, I will take a look further into that.

inkeliz commented 1 year ago

I have made some changes, and I'm sending some PR. There's many bugs features and some new features. Also, one of the key changes is split between each "plugin" and "gio-plugin" packages. This separation has two main benefits:

I'm also working on adding support for Google/Apple/Microsoft OAuth on the client-side (the server-side implementation is not part of gio-plugins).

After all those changes, I am also planning to add some tests to the package:

Since some changes will be a break-change, I don't think make sense to include tests right now. Overall, I believe that these changes and tests will improve the reliability and flexibility of the package, and I look forward to hearing your thoughts on them.