Skip to content

Commit

Permalink
test(draghandle): add basic tests #1552
Browse files Browse the repository at this point in the history
  • Loading branch information
moklick committed Oct 5, 2021
1 parent 5d2f08c commit c5ce586
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 0 deletions.
30 changes: 30 additions & 0 deletions cypress/integration/flow/draghandle.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
describe('DragHandle Flow Rendering', () => {
before(() => {
cy.visit('/draghandle');
});

it('renders a flow with a node', () => {
cy.get('.react-flow__renderer');
cy.get('.react-flow__node').should('have.length', 1);
});

it('tries to drag a node', () => {
const $nodeElement = Cypress.$('.react-flow__node:first');
const styleBeforeDrag = $nodeElement.css('transform');

cy.drag('.react-flow__node:first', { x: 500, y: 500 }).then(() => {
const styleAfterDrag = $nodeElement.css('transform');
expect(styleBeforeDrag).to.be.equal(styleAfterDrag);
});
});

it('drags a node', () => {
const $nodeElement = Cypress.$('.react-flow__node:first');
const styleBeforeDrag = $nodeElement.css('transform');

cy.drag('.custom-drag-handle:first', { x: 500, y: 500 }).then(() => {
const styleAfterDrag = $nodeElement.css('transform');
expect(styleBeforeDrag).to.not.equal(styleAfterDrag);
});
});
});
33 changes: 33 additions & 0 deletions example/src/DragHandle/DragHandleNode.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { memo, FC } from 'react';

import { Handle, Position, NodeProps, Connection, Edge } from 'react-flow-renderer';

const onConnect = (params: Connection | Edge) => console.log('handle onConnect', params);

const labelStyle = {
display: 'flex',
alignItems: 'center',
};

const dragHandleStyle = {
display: 'inline-block',
width: 25,
height: 25,
backgroundColor: 'teal',
marginLeft: 5,
borderRadius: '50%',
};

const ColorSelectorNode: FC<NodeProps> = () => {
return (
<>
<Handle type="target" position={Position.Left} onConnect={onConnect} />
<div style={labelStyle}>
Only draggable here → <span className="custom-drag-handle" style={dragHandleStyle} />
</div>
<Handle type="source" position={Position.Right} />
</>
);
};

export default memo(ColorSelectorNode);
21 changes: 21 additions & 0 deletions example/src/DragHandle/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import ReactFlow from 'react-flow-renderer';

import DragHandleNode from './DragHandleNode';

const nodeTypes = {
dragHandleNode: DragHandleNode,
};

const elements = [
{
id: '2',
type: 'dragHandleNode',
dragHandle: '.custom-drag-handle',
style: { border: '1px solid #ddd', padding: '20px 40px' },
position: { x: 200, y: 200 },
},
];

const DragHandleFlow = () => <ReactFlow elements={elements} nodeTypes={nodeTypes} />;

export default DragHandleFlow;
5 changes: 5 additions & 0 deletions example/src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import UseZoomPanHelper from './UseZoomPanHelper';
import UseUpdateNodeInternals from './UseUpdateNodeInternals';
import Undirectional from './Undirectional';
import MultiFlows from './MultiFlows';
import DragHandle from './DragHandle';

import './index.css';

Expand Down Expand Up @@ -126,6 +127,10 @@ const routes = [
path: '/multiflows',
component: MultiFlows,
},
{
path: '/draghandle',
component: DragHandle,
},
];

const Header = withRouter(({ history, location }) => {
Expand Down

0 comments on commit c5ce586

Please sign in to comment.