This is a first pass at integration tests. It's not done yet. Things that need to be fixed before merging:
-
Debian builds are failing because of dependency on Gradle 5, which isn't yet available in Debian. We can either rewrite build.gradle
to support gradle 4.x, or we can wait until gradle 5 shows up in Debian sid (I have not investigated the timeline on this). -
Every test registers accounts on the test signal server, and will probably end up registering more than one account. We need a way to clean these up. Ideally implement an unregister method, but also maybe the testhelper on the server side can have an endpoint to clean up accounts created during a test after the test. -
Use a temp directory for config and socket when running tests.
Right now there aren't a lot of tests, so that would be good to build out as well, but that can happen in separate MRs if needed. Some tests that would be nice to see (maybe these can be broken into individual tickets eventually):
-
register a new account -
link another device to an existing account -
send, receive private messages -
send, receive group messages -
change expiration on private and group message threads. -
create, update and leave groups -
Get safety numbers from remote user, verify that trusting and untrusting them works as expected -
list, add, edit, sync contacts