
* Fix AvatarField to work with authenticated media * Fix ViewMediaButton to work for user's media tab and reported events * remove console.log * cleanup AvatarField * use correct thumbnail size * fix AvatarField.test * ignore postgres data for watchman * fix new avatar preview * watchman should ignore testdata completely, instead of specific subdirs * update README * change user's media icon in sidebar - use the same icon as the media tab * Add preview for user media files if mimeType is image/* * Add new line in user media Dialog
44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import { render, screen, waitFor } from "@testing-library/react";
|
|
import { RecordContextProvider } from "react-admin";
|
|
import { act } from "react";
|
|
import AvatarField from "./AvatarField";
|
|
|
|
describe("AvatarField", () => {
|
|
beforeEach(() => {
|
|
// Mock fetch
|
|
global.fetch = jest.fn(() =>
|
|
Promise.resolve({
|
|
blob: () => Promise.resolve(new Blob(["mock image data"], { type: 'image/jpeg' })),
|
|
})
|
|
) as jest.Mock;
|
|
|
|
// Mock URL.createObjectURL
|
|
global.URL.createObjectURL = jest.fn(() => "mock-object-url");
|
|
});
|
|
|
|
afterEach(() => {
|
|
jest.restoreAllMocks();
|
|
});
|
|
|
|
it.only("shows image", async () => {
|
|
const value = {
|
|
avatar: "mxc://serverName/mediaId",
|
|
};
|
|
|
|
await act(async () => {
|
|
render(
|
|
<RecordContextProvider value={value}>
|
|
<AvatarField source="avatar" />
|
|
</RecordContextProvider>
|
|
);
|
|
});
|
|
|
|
await waitFor(() => {
|
|
const img = screen.getByRole("img");
|
|
expect(img.getAttribute("src")).toBe("mock-object-url");
|
|
});
|
|
|
|
expect(global.fetch).toHaveBeenCalled();
|
|
});
|
|
});
|