mirror of
https://github.com/gethomepage/homepage.git
synced 2026-02-07 08:20:53 +08:00
Enhancement: better display of Arcane widget errors (#6281)
Some checks failed
Docker CI / Linting Checks (push) Has been cancelled
Docker CI / Docker Build & Push (push) Has been cancelled
Tests / vitest (1) (push) Has been cancelled
Tests / vitest (2) (push) Has been cancelled
Tests / vitest (3) (push) Has been cancelled
Tests / vitest (4) (push) Has been cancelled
Some checks failed
Docker CI / Linting Checks (push) Has been cancelled
Docker CI / Docker Build & Push (push) Has been cancelled
Tests / vitest (1) (push) Has been cancelled
Tests / vitest (2) (push) Has been cancelled
Tests / vitest (3) (push) Has been cancelled
Tests / vitest (4) (push) Has been cancelled
This commit is contained in:
@@ -24,7 +24,8 @@ export default function Component({ service }) {
|
|||||||
const { data: images, error: imagesError } = useWidgetAPI(widget, "images");
|
const { data: images, error: imagesError } = useWidgetAPI(widget, "images");
|
||||||
const { data: updates, error: updatesError } = useWidgetAPI(widget, "updates");
|
const { data: updates, error: updatesError } = useWidgetAPI(widget, "updates");
|
||||||
|
|
||||||
const error = containersError ?? imagesError ?? updatesError;
|
const error =
|
||||||
|
containersError ?? imagesError ?? updatesError ?? containers?.detail ?? images?.detail ?? updates?.detail;
|
||||||
if (error) {
|
if (error) {
|
||||||
return <Container service={service} error={error} />;
|
return <Container service={service} error={error} />;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,16 @@ describe("widgets/arcane/component", () => {
|
|||||||
expect(screen.getByText("arcane.environment_required")).toBeInTheDocument();
|
expect(screen.getByText("arcane.environment_required")).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("shows an error when API calls return detail errors", () => {
|
||||||
|
useWidgetAPI.mockImplementation(() => ({ data: { detail: "Specific API error" }, error: undefined }));
|
||||||
|
|
||||||
|
renderWithProviders(<Component service={{ widget: { type: "arcane", env: "prod" } }} />, {
|
||||||
|
settings: { hideErrors: false },
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(screen.getByText("Specific API error")).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
it("renders placeholders while loading data", () => {
|
it("renders placeholders while loading data", () => {
|
||||||
useWidgetAPI.mockImplementation(() => ({ data: undefined, error: undefined }));
|
useWidgetAPI.mockImplementation(() => ({ data: undefined, error: undefined }));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user