Merge branch 'develop'
Some checks failed
Backend tests / Linux without plugins (push) Has been cancelled
Backend tests / Linux with Plugins (push) Has been cancelled
Backend tests / Windows without plugins (push) Has been cancelled
Backend tests / Windows with Plugins (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Frontend admin tests powered by Sauce Labs / with plugins (push) Has been cancelled
Frontend tests powered by Sauce Labs / Playwright Chrome (push) Has been cancelled
Frontend tests powered by Sauce Labs / Playwright Firefox (push) Has been cancelled
Frontend tests powered by Sauce Labs / Playwright Webkit (push) Has been cancelled
Loadtest / without plugins (push) Has been cancelled
Loadtest / with Plugins (push) Has been cancelled
Loadtest / long running (push) Has been cancelled
Perform type checks / perform type check (push) Has been cancelled
rate limit / test (push) Has been cancelled
Upgrade from latest release / Linux with Plugins (push) Has been cancelled
Windows Build / Build .zip (push) Has been cancelled

This commit is contained in:
SamTV12345 2025-06-25 22:49:41 +02:00
commit 9d3167a333
7 changed files with 19 additions and 16 deletions

View file

@ -1,3 +1,9 @@
# 2.3.2
### Notable enhancements and fixes
- Fixed admin ui displaying incorrect text
# 2.3.1
### Notable enhancements and fixes

View file

@ -1,7 +1,7 @@
{
"name": "admin",
"private": true,
"version": "2.3.1",
"version": "2.3.2",
"type": "module",
"scripts": {
"dev": "vite",

View file

@ -1,6 +1,6 @@
{
"name": "bin",
"version": "2.3.1",
"version": "2.3.2",
"description": "",
"main": "checkAllPads.js",
"directories": {

View file

@ -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"
}

View file

@ -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;

View file

@ -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"
}

View file

@ -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