fix(cropper): make load failures visible; loud config errors

'Load next queued' did nothing because the running server had been started
without its env file (a restart used '-f .env' from tools/, where no .env
exists), so the cropper was unconfigured and every action answered 503 —
and none of that was visible, because notifications never rendered either:

- notifications used cds-toast/cds-toast-item, which the Carbon bundle does
  not define; a cds-toast-notification element renders nothing standalone in
  this build. The cropper now uses cds-inline-notification in the fixed
  toast viewport (renders, themed, close button) like the wizard
- an unconfigured deployment now says so on the page (503 'Cropper
  unavailable') instead of rendering actions that all fail, and logs a
  startup warning naming the missing credentials
- tests: notifications use a registered element; unconfigured page 503
This commit is contained in:
2026-10-01 04:36:31 +01:00
parent cb5b151988
commit 95200b6abf
6 changed files with 44 additions and 11 deletions
+4 -4
View File
@@ -316,11 +316,11 @@ test('the active tool is marked on both navigation surfaces', async () => {
const { base, stop } = await bootApp();
try {
const cookies = await login(base);
const cropper = await (await fetch(`${base}/cropper`, { headers: { cookie: cookies } })).text();
assert.match(cropper, /cds-header-nav-item href="\/cropper" aria-current="page"/);
assert.match(cropper, /cds-side-nav-link href="\/cropper" aria-current="page"/);
const wizard = await (await fetch(`${base}/fingerprint`, { headers: { cookie: cookies } })).text();
assert.match(wizard, /cds-header-nav-item href="\/fingerprint" aria-current="page"/);
assert.match(wizard, /cds-side-nav-link href="\/fingerprint" aria-current="page"/);
assert.ok(
!/cds-header-nav-item href="\/fingerprint" aria-current/.test(cropper),
!/cds-header-nav-item href="\/cropper" aria-current/.test(wizard),
'the other tool is not marked current'
);
} finally {