Skip to content

fix(admin): honour escape sequences in settings form string fields #8895

fix(admin): honour escape sequences in settings form string fields

fix(admin): honour escape sequences in settings form string fields #8895

Triggered via pull request September 17, 2026 12:20
Status Failure
Total duration 11m 10s
Artifacts 1

frontend-admin-tests.yml

on: pull_request
Matrix: with plugins
Fit to window
Zoom out
Zoom in

Annotations

5 errors, 1 warning, and 1 notice
with plugins (24)
Process completed with exit code 1.
[chromium-admin] › tests/frontend-new/admin-spec/adminsettings.spec.ts:441:7 › admin settings › #8211 escape sequences typed in a form string field are saved unescaped: src/tests/frontend-new/admin-spec/adminsettings.spec.ts#L454
3) [chromium-admin] › tests/frontend-new/admin-spec/adminsettings.spec.ts:441:7 › admin settings › #8211 escape sequences typed in a form string field are saved unescaped Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveValue(expected) failed Locator: getByTestId('field-defaultPadText') Expected pattern: /^Welcome to Etherpad!\\n\\nThis pad text/ Received string: "Welcome\\n\\ntest \"quoted\" C:\\\\dir\\n" Timeout: 20000ms Call log: - Expect "toHaveValue" getByTestId('field-defaultPadText') with timeout 20000ms - waiting for getByTestId('field-defaultPadText') 44 × locator resolved to <input type="text" spellcheck="false" id="field-defaultPadText" data-testid="field-defaultPadText" value="Welcome\n\ntest "quoted" C:\\dir\n" class="settings-widget settings-widget-string"/> - unexpected value "Welcome\n\ntest "quoted" C:\\dir\n" 452 | // Existing newlines are displayed as `\n` rather than silently dropped 453 | // by the single-line <input>. > 454 | await expect(field).toHaveValue(/^Welcome to Etherpad!\\n\\nThis pad text/); | ^ 455 | await field.fill('Welcome\\n\\ntest "quoted" C:\\\\dir\\n'); 456 | await saveSettings(page); 457 | at /home/runner/work/etherpad/etherpad/src/tests/frontend-new/admin-spec/adminsettings.spec.ts:454:25
[chromium-admin] › tests/frontend-new/admin-spec/adminsettings.spec.ts:441:7 › admin settings › #8211 escape sequences typed in a form string field are saved unescaped: src/tests/frontend-new/admin-spec/adminsettings.spec.ts#L465
3) [chromium-admin] › tests/frontend-new/admin-spec/adminsettings.spec.ts:441:7 › admin settings › #8211 escape sequences typed in a form string field are saved unescaped Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).not.toBeNull() Received: null 463 | const after = await page.getByTestId('settings-raw-textarea').inputValue(); 464 | const m = /^\s*"defaultPadText"\s*:\s*("(?:[^"\\]|\\.)*")/m.exec(after); > 465 | expect(m).not.toBeNull(); | ^ 466 | expect(JSON.parse(m![1])).toEqual('Welcome\n\ntest "quoted" C:\\dir\n'); 467 | 468 | // Restore at /home/runner/work/etherpad/etherpad/src/tests/frontend-new/admin-spec/adminsettings.spec.ts:465:19
[chromium-admin] › tests/frontend-new/admin-spec/adminsettings.spec.ts:187:7 › admin settings › form view derives label + help text from key comment: src/tests/frontend-new/admin-spec/adminsettings.spec.ts#L212
2) [chromium-admin] › tests/frontend-new/admin-spec/adminsettings.spec.ts:187:7 › admin settings › form view derives label + help text from key comment Error: expect(locator).toContainText(expected) failed Locator: locator('label[for="field-title"]').locator('xpath=ancestor::*[contains(@Class,"settings-row")][1]') Expected substring: "CustomTitleLabel" Received string: "Name your instance!" Timeout: 20000ms Call log: - Expect "toContainText" locator('label[for="field-title"]').locator('xpath=ancestor::*[contains(@Class,"settings-row")][1]') with timeout 20000ms - waiting for locator('label[for="field-title"]').locator('xpath=ancestor::*[contains(@Class,"settings-row")][1]') 44 × locator resolved to <div class="settings-row" id="settings-row-title">…</div> - unexpected value "Name your instance!" 210 | await expect(titleLabel).toBeVisible({timeout: 10000}); 211 | const titleRow = titleLabel.locator('xpath=ancestor::*[contains(@Class,"settings-row")][1]'); > 212 | await expect(titleRow).toContainText('CustomTitleLabel'); | ^ 213 | await expect(titleRow).toContainText('ExtraHelpMarker'); 214 | 215 | // Restore at /home/runner/work/etherpad/etherpad/src/tests/frontend-new/admin-spec/adminsettings.spec.ts:212:28
[chromium-admin] › tests/frontend-new/admin-spec/adminsettings.spec.ts:187:7 › admin settings › form view derives label + help text from key comment: src/tests/frontend-new/admin-spec/adminsettings.spec.ts#L212
1) [chromium-admin] › tests/frontend-new/admin-spec/adminsettings.spec.ts:187:7 › admin settings › form view derives label + help text from key comment Error: expect(locator).toContainText(expected) failed Locator: locator('label[for="field-title"]').locator('xpath=ancestor::*[contains(@Class,"settings-row")][1]') Expected substring: "CustomTitleLabel" Received string: "Name your instance!" Timeout: 20000ms Call log: - Expect "toContainText" locator('label[for="field-title"]').locator('xpath=ancestor::*[contains(@Class,"settings-row")][1]') with timeout 20000ms - waiting for locator('label[for="field-title"]').locator('xpath=ancestor::*[contains(@Class,"settings-row")][1]') 44 × locator resolved to <div class="settings-row" id="settings-row-title">…</div> - unexpected value "Name your instance!" 210 | await expect(titleLabel).toBeVisible({timeout: 10000}); 211 | const titleRow = titleLabel.locator('xpath=ancestor::*[contains(@Class,"settings-row")][1]'); > 212 | await expect(titleRow).toContainText('CustomTitleLabel'); | ^ 213 | await expect(titleRow).toContainText('ExtraHelpMarker'); 214 | 215 | // Restore at /home/runner/work/etherpad/etherpad/src/tests/frontend-new/admin-spec/adminsettings.spec.ts:212:28
with plugins (24)
No files were found with the provided path: src/playwright-report/. No artifacts will be uploaded.
🎭 Playwright Run Summary
1 failed [chromium-admin] › tests/frontend-new/admin-spec/adminsettings.spec.ts:441:7 › admin settings › #8211 escape sequences typed in a form string field are saved unescaped 1 flaky [chromium-admin] › tests/frontend-new/admin-spec/adminsettings.spec.ts:187:7 › admin settings › form view derives label + help text from key comment 2 did not run 46 passed (2.0m)

Artifacts

Produced during runtime
Name Size Digest
server-log-admin-24
3.62 KB
sha256:06fc96e7940bd14b6094b14a4ea1be960deefe473c594e9213bbbb8fbcc7b85b