mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-24 09:26:14 -04:00
tests: fix importexport frontend tests (#4827)
* CI: Leave log level at INFO for frontend tests * CI: Disable frontend admin tests for non-admin workflow * CI: Disable import/export rate limiting for frontend tests * tests: fix importexport tests The testing approach was redone to fix numerous issues: * Even if the tests had been working, none of them would have caught https://github.com/ether/etherpad-lite/issues/4808 because they didn't exercise the client-side import logic. Now they do. * Follow-up logic was not in the `helper.waitFor()` callback like it should have been. Now the code uses `async` and `await` to ensure proper execution order. * All `$.ajax()` calls used `async: false`. Now they're properly asynchronous. * The `helper.waitFor()` condition callbacks threw instead of returning false. * The string comparisons didn't allow for different attribute order (e.g., `<ol start="1" class="list-number1">` vs. `<ol class="list-number1" start="1">`). Now `Node.isEqualNode()` is used to reduce fragility. (`Node.isEqualNode()` is not perfect, so the tests are still a bit fragile: If class names or style strings are in a different order then `Node.isEqualNode()` will return false even if the nodes are semantically equivalent.) Co-authored-by: Richard Hansen <rhansen@rhansen.org> Co-authored-by: Richard Hansen <rhansen@rhansen.org>
This commit is contained in:
parent
ed8a8eb590
commit
9b03f8f6ab
3 changed files with 609 additions and 329 deletions
4
.github/workflows/frontend-admin-tests.yml
vendored
4
.github/workflows/frontend-admin-tests.yml
vendored
|
@ -50,8 +50,8 @@ jobs:
|
|||
id: environment
|
||||
run: echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
|
||||
|
||||
- name: Write custom settings.json with loglevel WARN
|
||||
run: "sed 's/\"loglevel\": \"INFO\",/\"loglevel\": \"WARN\",/' < settings.json.template > settings.json"
|
||||
- name: Create settings.json
|
||||
run: cp settings.json.template settings.json
|
||||
|
||||
- name: Write custom settings.json that enables the Admin UI tests
|
||||
run: "sed -i 's/\"enableAdminUITests\": false/\"enableAdminUITests\": true,\\n\"users\":{\"admin\":{\"password\":\"changeme\",\"is_admin\":true}}/' settings.json"
|
||||
|
|
17
.github/workflows/frontend-tests.yml
vendored
17
.github/workflows/frontend-tests.yml
vendored
|
@ -28,8 +28,12 @@ jobs:
|
|||
id: environment
|
||||
run: echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
|
||||
|
||||
- name: Write custom settings.json with loglevel WARN
|
||||
run: "sed 's/\"loglevel\": \"INFO\",/\"loglevel\": \"WARN\",/' < settings.json.template > settings.json"
|
||||
- name: Create settings.json
|
||||
run: cp settings.json.template settings.json
|
||||
|
||||
- name: Disable import/export rate limiting
|
||||
run: |
|
||||
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 0/' -i settings.json
|
||||
|
||||
- uses: saucelabs/sauce-connect-action@v1.1.2
|
||||
with:
|
||||
|
@ -99,11 +103,12 @@ jobs:
|
|||
id: environment
|
||||
run: echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
|
||||
|
||||
- name: Write custom settings.json with loglevel WARN
|
||||
run: "sed 's/\"loglevel\": \"INFO\",/\"loglevel\": \"WARN\",/' < settings.json.template > settings.json"
|
||||
- name: Create settings.json
|
||||
run: cp settings.json.template settings.json
|
||||
|
||||
- name: Write custom settings.json that enables the Admin UI tests
|
||||
run: "sed -i 's/\"enableAdminUITests\": false/\"enableAdminUITests\": true,\\n\"users\":{\"admin\":{\"password\":\"changeme\",\"is_admin\":true}}/' settings.json"
|
||||
- name: Disable import/export rate limiting
|
||||
run: |
|
||||
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 0/' -i settings.json
|
||||
|
||||
# XXX we should probably run all tests, because plugins could effect their results
|
||||
- name: Remove standard frontend test files, so only plugin tests are run
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue