46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
|
import ReactDOM from "react-dom";
|
||
|
import * as Renderer from "../renderer/renderScene";
|
||
|
import { reseed } from "../random";
|
||
|
import { render, queryByTestId } from "../tests/test-utils";
|
||
|
|
||
|
import ExcalidrawApp from "../excalidraw-app";
|
||
|
|
||
|
const renderScene = jest.spyOn(Renderer, "renderScene");
|
||
|
|
||
|
describe("Test <App/>", () => {
|
||
|
beforeEach(async () => {
|
||
|
// Unmount ReactDOM from root
|
||
|
ReactDOM.unmountComponentAtNode(document.getElementById("root")!);
|
||
|
localStorage.clear();
|
||
|
renderScene.mockClear();
|
||
|
reseed(7);
|
||
|
});
|
||
|
|
||
|
it("should show error modal when using brave and measureText API is not working", async () => {
|
||
|
(global.navigator as any).brave = {
|
||
|
isBrave: {
|
||
|
name: "isBrave",
|
||
|
},
|
||
|
};
|
||
|
|
||
|
const originalContext = global.HTMLCanvasElement.prototype.getContext("2d");
|
||
|
//@ts-ignore
|
||
|
global.HTMLCanvasElement.prototype.getContext = (contextId) => {
|
||
|
return {
|
||
|
...originalContext,
|
||
|
measureText: () => ({
|
||
|
width: 0,
|
||
|
}),
|
||
|
};
|
||
|
};
|
||
|
|
||
|
await render(<ExcalidrawApp />);
|
||
|
expect(
|
||
|
queryByTestId(
|
||
|
document.querySelector(".excalidraw-modal-container")!,
|
||
|
"brave-measure-text-error",
|
||
|
),
|
||
|
).toMatchSnapshot();
|
||
|
});
|
||
|
});
|