Investigate failing sync service test on stable27
Describe the bug
For a while the sync.spec.js has been failing on the stable27 branch:
Looks like it may have been introduced by #5087 or at the same time. The cypress run in the PR passed though.
To Reproduce Steps to reproduce the behavior:
- Go to cypress action run overview for stable27 branch
- See the failed runs
- Scroll down till you see green runs again.
- Inspect individual failed runs to see most of them fail in
sync.spec.js.
Expected behavior Cypress should pass on all integration branches.
Server log is probably unrelated - maybe from a retry:
{
"reqId": "XNUpWmg1ATmxO2rATg7u",
"level": 3,
"time": "2023-12-21T05:51:19+00:00",
"remoteAddr": "127.0.0.1",
"user": "admin",
"app": "ocs_api",
"method": "POST",
"url": "/ocs/v2.php/cloud/users?format=json",
"message": "Failed addUser attempt: User already exists.",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/13.6.1 Chrome/114.0.5735.289 Electron/25.8.4 Safari/537.36",
"version": "27.1.5.1",
"data": {
"app": "ocs_api"
}
}
running the last passing commit of text with the latest commit of server stable27 passes: https://github.com/nextcloud/text/actions/runs/7104754058/job/19905039693 At the same time the current state of text with the last passing commit of server still fails: https://github.com/nextcloud/text/actions/runs/7303886691/job/19905235351
So looks like this somehow broke on the text side of things rather than the server side.
I tried to understand what happens here, but failed so far.
Two tests in sync.spec.js fail reliably when running them with cypress run locally - even though they pass reliably with cypress open:
- saves the actual file and document state
- saves on close
Both tests load a document, edit the document, download the file and see whether the edits are in the downloaded file. The first one does a manual save before download, the second closes the document before download.
In the screenshots it's obvious that the file got saved. I suspected a race condition, but adding cy.wait() at different places in the test doesn't change the situation. The downloaded file always stays the one initially uploaded, without the editing changes.
Ok, found a reliable fix now: https://github.com/nextcloud/text/pull/5601
Fixed by #5604