Closed rmunn closed 2 months ago
2 files ±0 21 suites +1 5m 37s :stopwatch: -2s 315 tests +2 293 :heavy_check_mark: ±0 22 :zzz: +2 0 :x: ±0 318 runs +2 296 :heavy_check_mark: ±0 22 :zzz: +2 0 :x: ±0
Results for commit 9f09fc02. ± Comparison against base commit f518d8d9.
:recycle: This comment has been updated with latest results.
First end-to-end test is written and working. Doing self-review now, then will ask for code review.
The one failing test is the one this PR adds, with HttpRequestException : Connection refused (localhost:80)
, from a previous SocketException : Connection refused
. This is quite simply because the LfMerge GitHub workflow doesn't set up a copy of LexBox before running the tests. Before merging this PR, we might want to set up a local copy of LexBox, similarly to how https://github.com/sillsdev/languageforge-lexbox/pull/873 did it, so that the end-to-end tests can run.
Might want to split the test runs in two, actually; one runner will run the non-E2E tests with the current setup, and the other runner will set up a Kubernetes environment in GHA to run the E2E tests. That way the non-E2E tests can be run without paying the cost of setting up a k8s environment.
Okay, commit 779358e demonstrates the race condition with hgweb's dir cache in local LexBox, and commit 80d45bba adjusts these tests to expect newly-created projects to sometimes not be available right away, avoiding the race condition. To test a potential fix in LexBox, use commit 779358e and run dotnet test --filter E2E_
repeatedly until you get test failures (shouldn't take long).
Fixes https://github.com/sillsdev/LfMerge/issues/339.
This PR uses the LexBox API to set up end-to-end testing of Send/Receive scenarios.
Work completed:
Future plans:
In a new PR, I will port most of the SynchronizeActionTests tests and convert them to real end-to-end tests. Then I'll add some more tests testing things like round-tripping of comments, various merge conflict scenarios, and so on.