mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-08-30 12:09:15 +00:00
fix(image-updates): explain persistent digest rebuilds after update (#1784)
* fix(image-updates): explain persistent digest rebuilds after update When an update completes but a same-tag digest rebuild is still detected, the generic "update still detected" warning told operators nothing about why. The digest comparison already knows the remaining updates are digest-only (no higher tag), so recheckStack now returns a targeted warning naming the two daemon-side causes: a registry mirror or cache serving stale content, or a container still pinned to the previous image. The digest-rebuild badge surfaces (Anatomy banner, Fleet cards, mobile) now carry a tooltip with the same explanation, and the post-update warning is added to the pre-update refresh sanitization set. * fix(image-updates): surface digest warnings on editor and mobile paths Editor Update discarded recheckWarning, digest hints were hover-only, and service-scoped rechecks blamed the daemon when only sibling services remained stale.
This commit is contained in:
@@ -317,9 +317,14 @@ describe('verification preview helpers', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('enables Apply for a safe, non-blocked update', () => {
|
||||
it('enables Apply for a safe, non-blocked update', async () => {
|
||||
render(<MobileReadinessCard card={card()} onApply={vi.fn()} />);
|
||||
expect(apply()).toBeEnabled();
|
||||
// Digest-rebuild headline opens an accessible popover (not hover-only title).
|
||||
const hint = screen.getByTestId('digest-rebuild-hint');
|
||||
expect(hint).toHaveTextContent('Rebuild available');
|
||||
await act(async () => { fireEvent.click(hint); });
|
||||
expect(await screen.findByTestId('digest-rebuild-hint-content')).toHaveTextContent(/same tag, newer content/i);
|
||||
});
|
||||
|
||||
it('disables Apply for tag-only advisory updates', () => {
|
||||
@@ -652,6 +657,11 @@ describe('AutoUpdateReadinessView desktop Apply now', () => {
|
||||
|
||||
render(<AutoUpdateReadinessView />);
|
||||
const serviceApply = await screen.findByRole('button', { name: /^Apply$/i });
|
||||
// Digest-rebuild headline opens an accessible popover (not hover-only title).
|
||||
const hint = screen.getByTestId('digest-rebuild-hint');
|
||||
expect(hint).toHaveTextContent('Rebuild available');
|
||||
await act(async () => { fireEvent.click(hint); });
|
||||
expect(await screen.findByTestId('digest-rebuild-hint-content')).toHaveTextContent(/same tag, newer content/i);
|
||||
await act(async () => { fireEvent.click(serviceApply); });
|
||||
|
||||
await waitFor(() => {
|
||||
|
||||
Reference in New Issue
Block a user