element-web/test/unit-tests/components/views/dialogs/UploadConfirmDialog-test.tsx
Michael Telatynski 45ab536737
Fix handling of SVGs (#31359)
* Fix handling of SVGs

1. Ensure we always include thumbnails for them
2. Show `m.file` handler if we cannot render the SVG
3. When opening ImageView use svg thumbnail if the SVG cannot be rendered

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix UploadConfirmDialog choking under React devmode

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix test

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add tests

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-12-01 16:00:09 +00:00

28 lines
1.0 KiB
TypeScript

/*
Copyright 2025 Element Creations Ltd.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
import React from "react";
import { render } from "jest-matrix-react";
import { secureRandomString } from "matrix-js-sdk/src/randomstring";
import UploadConfirmDialog from "../../../../../src/components/views/dialogs/UploadConfirmDialog.tsx";
describe("<UploadConfirmDialog />", () => {
it("should display image preview", () => {
const url = "blob:null/1234-5678-9101-1121";
jest.spyOn(URL, "createObjectURL").mockReturnValue(url);
const file = new File([secureRandomString(1024 * 124)], "image.png", { type: "image/png" });
const { asFragment, getByRole } = render(
<UploadConfirmDialog file={file} currentIndex={0} totalFiles={1} onFinished={jest.fn()} />,
);
expect(getByRole("img")).toHaveAttribute("src", url);
expect(asFragment()).toMatchSnapshot();
});
});