You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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:
It allows for the use of each package independently without having to rely on the "plugin" package, which currently heavily relies on unsafe and can break due to changes in Gio. This separation provides greater control over each package without the need to use op.Ops.
It enables the use of each package without a dependency on Gio. One example of a package that uses this is gio-plugins/safedata, which contains "giosafedata" as a sub-package. Additionally, this opens up the possibility of supporting other frameworks such as Fyne and Ebiten.
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:
Basic build-tests and static tests will be run when Gio changes, so that we can identify issues that could break the package easily and publicly. So, we know if some unsafe code is broken due to Gio change.
I'll also run more elaborate tests that compare results by image. This will help protect against regression bugs. However, the most challenging part of this will be testing the package against multiple versions of Android and iOS, as well as multiple browsers.
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.
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.
The text was updated successfully, but these errors were encountered: