diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d7d0f3ab..ffd618492 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# 2.3.2 + +### Notable enhancements and fixes + +- Fixed admin ui displaying incorrect text + # 2.3.1 ### Notable enhancements and fixes diff --git a/admin/package.json b/admin/package.json index 37755b5f2..d7c21392c 100644 --- a/admin/package.json +++ b/admin/package.json @@ -1,7 +1,7 @@ { "name": "admin", "private": true, - "version": "2.3.1", + "version": "2.3.2", "type": "module", "scripts": { "dev": "vite", diff --git a/bin/package.json b/bin/package.json index 310d8eb60..01464c2a4 100644 --- a/bin/package.json +++ b/bin/package.json @@ -1,6 +1,6 @@ { "name": "bin", - "version": "2.3.1", + "version": "2.3.2", "description": "", "main": "checkAllPads.js", "directories": { diff --git a/package.json b/package.json index 2c290f30d..57aa9f73a 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,6 @@ "type": "git", "url": "https://github.com/ether/etherpad-lite.git" }, - "version": "2.3.1", + "version": "2.3.2", "license": "Apache-2.0" } diff --git a/src/node/hooks/express/admin.ts b/src/node/hooks/express/admin.ts index 708c9b452..ceefb0155 100644 --- a/src/node/hooks/express/admin.ts +++ b/src/node/hooks/express/admin.ts @@ -23,11 +23,9 @@ exports.expressCreateServer = (hookName: string, args: ArgsExpressType, cb: Func return cb(); } args.app.get('/admin/*', (req: any, res: any) => { - // parse URL - const parsedUrl = url.parse(req.url); // extract URL path - let pathname = ADMIN_PATH + `${parsedUrl.pathname}`; - pathname = path.normalize(path.join(ADMIN_PATH), parsedUrl.pathname) + let pathname = path.join(ADMIN_PATH, req.url); + pathname = path.normalize(pathname) if (!pathname.startsWith(ADMIN_PATH)) { res.statusCode = 403; diff --git a/src/package.json b/src/package.json index 09bfb0dc0..6d827911d 100644 --- a/src/package.json +++ b/src/package.json @@ -142,6 +142,6 @@ "debug:socketio": "cross-env DEBUG=socket.io* node --require tsx/cjs node/server.ts", "test:vitest": "vitest" }, - "version": "2.3.1", + "version": "2.3.2", "license": "Apache-2.0" } diff --git a/src/tests/frontend-new/admin-spec/adminupdateplugins.spec.ts b/src/tests/frontend-new/admin-spec/adminupdateplugins.spec.ts index c1121d41b..214202350 100644 --- a/src/tests/frontend-new/admin-spec/adminupdateplugins.spec.ts +++ b/src/tests/frontend-new/admin-spec/adminupdateplugins.spec.ts @@ -13,18 +13,17 @@ test.describe('Plugins page', ()=> { await page.waitForSelector('.search-field'); const pluginTable = page.locator('table tbody').nth(1); await expect(pluginTable).not.toBeEmpty() - const plugins = await pluginTable.locator('tr').count() - expect(plugins).toBeGreaterThan(10) + await expect(pluginTable.locator('tr')).toHaveCount(190) }) test('Searches for a plugin', async ({page}) => { await page.waitForSelector('.search-field'); await page.click('.search-field') - await page.keyboard.type('ep_font_color3') + await page.keyboard.type('ep_font_color') await page.keyboard.press('Enter') const pluginTable = page.locator('table tbody').nth(1); await expect(pluginTable.locator('tr')).toHaveCount(1) - await expect(pluginTable.locator('tr').first()).toContainText('ep_font_color3') + await expect(pluginTable.locator('tr').first()).toContainText('ep_font_color') }) @@ -35,17 +34,17 @@ test.describe('Plugins page', ()=> { timeout: 15000 }) const plugins = await pluginTable.locator('tr').count() - expect(plugins).toBeGreaterThan(10) + await expect(pluginTable.locator('tr')).toHaveCount(190) // Now everything is loaded, lets install a plugin await page.click('.search-field') - await page.keyboard.type('ep_font_color3') + await page.keyboard.type('ep_font_color') await page.keyboard.press('Enter') await expect(pluginTable.locator('tr')).toHaveCount(1) const pluginRow = pluginTable.locator('tr').first() - await expect(pluginRow).toContainText('ep_font_color3') + await expect(pluginRow).toContainText('ep_font_color') // Select Installation button await pluginRow.locator('td').nth(4).locator('button').first().click() @@ -59,7 +58,7 @@ test.describe('Plugins page', ()=> { const installedPluginRow = installedPluginsRows.nth(1) - await expect(installedPluginRow).toContainText('ep_font_color3') + await expect(installedPluginRow).toContainText('ep_font_color') await installedPluginRow.locator('td').nth(2).locator('button').first().click() // Wait for the uninstallation to complete