023313e92f
* fix: show error message when measureText API breaks in brave * Add docs * Add assets * tweak message * fix * tweak message * add translations * lint * fix * fix * lint * lint * lint please work now * tweak doc * fix * split error component to new file * add specs * tweaks Co-authored-by: David Luzar <luzar.david@gmail.com> * wrap in div with a width of 30rem * fix spec * fix * Fix typo --------- Co-authored-by: David Luzar <luzar.david@gmail.com> Co-authored-by: Daniel J. Geiger <1852529+DanielJGeiger@users.noreply.github.com>
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();
|
|
});
|
|
});
|