mirror of
https://github.com/twentyhq/twenty.git
synced 2024-12-23 20:13:21 +03:00
f7c99ddc7a
This PR adds the possibility of creating new steps. For now, only actions are available. The steps are stored on the server, and the visualizer is reloaded to include them. Selecting a step opens the right drawer and shows its details. For now, it's only the id of the step, but in the future, it will be the parameters of the step. In the future we'll want to let users add steps at any point in the diagram. As a consequence, it's crucial to be able to walk in the tree that make the steps to find the correct place where to put the new step. I wrote a function that returns where the new step should be inserted. This function will become recursive once we get branching implemented. Things to mention: - Reactflow needs every node and edge to have a unique identifier. In this PR, I chose to use steps' id as nodes' id. That way, it's easy to move from a node to a step, which helps make operations on a step without resolving the step's id from the node's id.
17 lines
652 B
TypeScript
17 lines
652 B
TypeScript
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
|
// allows you to do things like:
|
|
// expect(element).toHaveTextContent(/react/i)
|
|
// learn more: https://github.com/testing-library/jest-dom
|
|
import '@testing-library/jest-dom';
|
|
|
|
/**
|
|
* The structuredClone global function is not available in jsdom, it needs to be mocked for now.
|
|
*
|
|
* The most naive way to mock structuredClone is to use JSON.stringify and JSON.parse. This works
|
|
* for arguments with simple types like primitives, arrays and objects, but doesn't work with functions,
|
|
* Map, Set, etc.
|
|
*/
|
|
global.structuredClone = (val) => {
|
|
return JSON.parse(JSON.stringify(val));
|
|
};
|