feat: enhance medialib image handling and add asset URL resolution

- Implemented `resolveApiAssetUrl` function to normalize asset URLs based on API base.
- Updated `MedialibImage` component to utilize new asset URL resolution and added support for alt text and class properties.
- Enhanced image loading behavior with improved width measurement and focal point handling.
- Added placeholder image handling and improved accessibility with alt text.
- Introduced new test script for auditing broken links in skill documentation.
- Expanded seeded test content to include medialib entries and updated related tests for pagebuilder previews.
- Improved global setup and teardown logging for clarity on seeded content management.
This commit is contained in:
2026-05-17 00:52:41 +00:00
parent 958b45272d
commit 4020ad62c5
44 changed files with 4276 additions and 867 deletions
+14
View File
@@ -21,6 +21,9 @@ export const test = base.extend({
export async function loginToAdmin(page: Page): Promise<void> {
await page.goto(`${TEST_ADMIN_BASE_URL}/login`)
// Admin bootet als SPA; das Formular ist oft erst nach Chunk-Ladevorgang interaktiv.
await expect(page.getByLabel(/Benutzername|Username/i)).toBeVisible({ timeout: 20000 })
await page.getByLabel(/Benutzername|Username/i).fill(ADMIN_UI_CREDENTIALS.username)
await page.getByLabel(/Passwort|Password/i).fill(ADMIN_UI_CREDENTIALS.password)
await page.getByRole("button", { name: /Anmelden|Sign in|Login/i }).click()
@@ -55,6 +58,17 @@ export async function openNewContentEntry(page: Page): Promise<void> {
await openNewCollectionEntry(page, /Inhalte/, "content", "Inhalte")
}
export async function openContentEntry(page: Page, rowText: string | RegExp): Promise<void> {
await openContentCollection(page)
const entryRow = page.getByRole("row").filter({ hasText: rowText }).first()
await expect(entryRow).toBeVisible()
await entryRow.click()
await expect(page).toHaveURL(/\/collections\/content\/entries\/[^/?]+/)
await expect(page.locator("main")).toBeVisible()
}
export async function openNavigationCollection(page: Page): Promise<void> {
await openCollection(page, /Navigation/, "navigation", "Navigation")
}