builttoroam / device_calendar

A cross platform plugin for modifying calendars on the user's device
https://pub.dev/packages/device_calendar
BSD 3-Clause "New" or "Revised" License
260 stars 263 forks source link

Integration test for iOS devices #392

Open thomassth opened 2 years ago

thomassth commented 2 years ago

Continuing #385

@sowens-csd please help out when you have the time. Anyone else with an iOS device and a mac can join in too! It should be a rather trivial thing if you have the tools needed (which I don't)

And problems I have that isn't answered in SO:

Related SO answer: https://stackoverflow.com/questions/66514569/grant-ios-permissions-to-flutter-driver-for-integration-test

sowens-csd commented 2 years ago

Working on this now. I didn't notice in the PR that the test files are under the example directory. I think those should be in the root. Any problem with moving them?

thomassth commented 2 years ago

I thought integration tests only works when we build an app for it?

If we can test directly on the library, that would definitely save us a lot of trouble. Not sure how though.

sowens-csd commented 2 years ago

You're right of course. Sorry about that. I was thinking of the directory structure in an app I was working on not a plugin.

sowens-csd commented 2 years ago

PR #393 is ready for review. The iOS integration test uses a shell script. Currently I've moved the existing Android test to integration_test_android.dart but I think it might be better if we had just the one integration_test.dart and switched Android to use a shell script as well so that the two integration tests followed the same process. Let me know what you think once you've reviewed.

thomassth commented 2 years ago

Can people replace the simulated iOS device with a real one? So people with a device don't have to make a virtual one. Or there might be some situation that passes in sim but fails in actual devices.

If it's not possible then we can just write that down so people knows.

sowens-csd commented 2 years ago

Good question, not currently but it would be pretty easy to add an option to the script to run on a real device. Just to be sure it's clear, the user doesn't need to make a virtual device, the script does that and then deletes it after.

Do you want me to add the real device option before we merge?