Fix admin socket metadata handling and footer HTML rendering in admin-tools

This commit is contained in:
David Rotermund
2026-07-07 14:42:59 +02:00
committed by yu-i-i
parent f13a251381
commit 5e465336ba
3 changed files with 54 additions and 8 deletions
@@ -23,15 +23,15 @@ const AdminController = {
let url
const openSockets = {}
for (url in http.globalAgent.sockets) {
openSockets[`http://${url}`] = http.globalAgent.sockets[url].map(
socket => socket._httpMessage.path
)
openSockets[`http://${url}`] = http.globalAgent.sockets[url].map(socket => {
return socket._httpMessage?.path || '(unknown request)'
})
}
for (url in https.globalAgent.sockets) {
openSockets[`https://${url}`] = https.globalAgent.sockets[url].map(
socket => socket._httpMessage.path
)
openSockets[`https://${url}`] = https.globalAgent.sockets[url].map(socket => {
return socket._httpMessage?.path || '(unknown request)'
})
}
const systemMessages =
@@ -14,9 +14,14 @@ function FooterItemLi({
label,
}: FooterItem) {
const textToDisplay = translatedText || text
const hasMarkup = /<[^>]+>/.test(textToDisplay)
if (!href) {
return <li dangerouslySetInnerHTML={{ __html: textToDisplay }} />
return hasMarkup ? (
<li dangerouslySetInnerHTML={{ __html: textToDisplay }} />
) : (
<li>{textToDisplay}</li>
)
}
const linkProps = {
@@ -27,7 +32,11 @@ function FooterItemLi({
return (
<li>
<a {...linkProps}>{textToDisplay}</a>
{hasMarkup ? (
<a {...linkProps} dangerouslySetInnerHTML={{ __html: textToDisplay }} />
) : (
<a {...linkProps}>{textToDisplay}</a>
)}
</li>
)
}
@@ -0,0 +1,37 @@
import React from 'react'
import ThinFooter from '../../../../frontend/js/shared/components/footer/thin-footer'
describe('<ThinFooter />', function () {
it('renders raw HTML image tags in footer items without a URL', function () {
cy.mount(
<ThinFooter
showPoweredBy={false}
subdomainLang={{}}
translatedLanguages={{}}
leftItems={[{ text: '<img src="/test-logo.png" alt="Logo" />' }]}
rightItems={[]}
/>
)
cy.get('footer.site-footer img[alt="Logo"]').should('exist')
})
it('renders raw HTML inside a footer link when URL is provided', function () {
cy.mount(
<ThinFooter
showPoweredBy={false}
subdomainLang={{}}
translatedLanguages={{}}
leftItems={[
{
text: '<img src="/test-logo.png" alt="Logo" />',
url: '/foo',
},
]}
rightItems={[]}
/>
)
cy.get('footer.site-footer a[href="/foo"] img[alt="Logo"]').should('exist')
})
})