excalidraw/src/tests/queries/toolQueries.ts

37 lines
894 B
TypeScript
Raw Normal View History

import { queries, buildQueries } from "@testing-library/react";
2020-03-23 16:38:41 -07:00
const toolMap = {
selection: "selection",
rectangle: "rectangle",
diamond: "diamond",
ellipse: "ellipse",
arrow: "arrow",
line: "line",
2020-05-12 20:10:11 +01:00
draw: "draw",
2020-05-29 21:59:39 +02:00
text: "text",
2020-03-23 16:38:41 -07:00
};
2020-03-23 16:38:41 -07:00
export type ToolName = keyof typeof toolMap;
const _getAllByToolName = (container: HTMLElement, tool: string) => {
const toolTitle = toolMap[tool as ToolName];
return queries.getAllByTestId(container, toolTitle);
};
const getMultipleError = (_container: any, tool: any) =>
`Found multiple elements with tool name: ${tool}`;
const getMissingError = (_container: any, tool: any) =>
`Unable to find an element with tool name: ${tool}`;
export const [
queryByToolName,
getAllByToolName,
getByToolName,
findAllByToolName,
findByToolName,
] = buildQueries<string[]>(
_getAllByToolName,
getMultipleError,
getMissingError,
);