Skip to content

Commit 8c3b299

Browse files
committed
Test dragging resizer
1 parent 82efd67 commit 8c3b299

File tree

2 files changed

+48
-21
lines changed

2 files changed

+48
-21
lines changed

test/assertions/Asserter.js

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ import chai from 'chai';
1111

1212
const expect = chai.expect;
1313

14+
const debug = true;
15+
16+
const log = (...args) => {
17+
if (debug) console.log(...['Asserter', ...args]);
18+
};
19+
20+
1421
const renderComponent = jsx => {
1522
const testDiv = document.createElement('div');
1623
testDiv.setAttribute(
@@ -19,56 +26,56 @@ const renderComponent = jsx => {
1926
);
2027
document.body.appendChild(testDiv);
2128
const component = render(jsx, testDiv);
22-
console.log(`rendered Component`);
29+
log(`rendered Component`);
2330
return component;
2431
};
2532

2633
const logStyles = _ => {
27-
console.log(`log styles for `, _);
34+
log(`log styles for `, _);
2835
const style = findDOMNode(_).style;
2936
Object.keys(style).forEach(key => {
3037
const value = style[key];
31-
if (value) console.log(key, `->`, value);
38+
if (value) log(key, `->`, value);
3239
});
3340
};
3441

3542
const logProps = _ => {
36-
console.log(_.props);
43+
log(_.props);
3744
};
3845

3946
const asserter = jsx => {
4047
const splitPane = renderComponent(jsx);
4148
const component = findRenderedComponentWithType(splitPane, SplitPane);
4249

4350
const findPanes = () => {
44-
console.log(`findPanes`);
51+
log(`findPanes`);
4552
const components = scryRenderedComponentsWithType(component, Pane);
4653
components.forEach(_ =>
47-
console.log(findDOMNode(_).getBoundingClientRect())
54+
log(findDOMNode(_).getBoundingClientRect())
4855
);
4956
return components;
5057
};
5158

5259
const findResizers = () => {
53-
console.log(`findResizers`);
60+
log(`findResizers`);
5461
const components = scryRenderedComponentsWithType(component, Resizer);
5562
components.forEach(_ =>
56-
console.log(findDOMNode(_).getBoundingClientRect())
63+
log(findDOMNode(_).getBoundingClientRect())
5764
);
5865
return components;
5966
};
6067

61-
const getResizerPosition = () => {
62-
console.log(`getResizerPosition`);
63-
const resizerNode = findDOMNode(findResizers()[0]);
64-
//console.log(`resizerNode`, resizerNode);
68+
const getResizerPosition = (resizerIndex) => {
69+
log(`getResizerPosition`);
70+
const resizerNode = findDOMNode(findResizers()[resizerIndex]);
71+
//log(`resizerNode`, resizerNode);
6572
return resizerNode.getBoundingClientRect();
6673
};
6774

68-
const calculateMouseMove = mousePositionDifference => {
69-
console.log(`calculateMouseMove`);
70-
const resizerPosition = getResizerPosition();
71-
console.log(`resizerPosition`, resizerPosition);
75+
const calculateMouseMove = (resizerIndex, mousePositionDifference) => {
76+
log(`calculateMouseMove`, resizerIndex, mousePositionDifference);
77+
const resizerPosition = getResizerPosition(resizerIndex);
78+
log(`resizerPosition`, resizerPosition);
7279
const mouseMove = {
7380
start: {
7481
clientX: resizerPosition.left,
@@ -79,13 +86,11 @@ const asserter = jsx => {
7986
clientY: resizerPosition.top,
8087
},
8188
};
82-
8389
if (mousePositionDifference.x) {
8490
mouseMove.end.clientX = resizerPosition.left + mousePositionDifference.x;
8591
} else if (mousePositionDifference.y) {
8692
mouseMove.end.clientY = resizerPosition.top + mousePositionDifference.y;
8793
}
88-
8994
return mouseMove;
9095
};
9196

@@ -143,11 +148,13 @@ const asserter = jsx => {
143148
expect(actualSizes).to.eql(expectedSizes, 'Unexpected flex sizes');
144149
return this;
145150
},
146-
simulateDragAndDrop(mousePositionDifference) {
147-
const mouseMove = calculateMouseMove(mousePositionDifference);
148-
component.onMouseDown(mouseMove.start);
151+
dragResizer(resizerIndex, mousePositionDifference) {
152+
const mouseMove = calculateMouseMove(resizerIndex, mousePositionDifference);
153+
log(`mouseMove`, mouseMove);
154+
component.onMouseDown(mouseMove.start, resizerIndex);
149155
component.onMouseMove(mouseMove.end);
150156
component.onMouseUp();
157+
return this;
151158
},
152159
};
153160
};

test/default-split-pane-tests.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,24 @@ describe.only('Div panes', () => {
150150
});
151151
});
152152
});
153+
154+
describe('Drag resizer', () => {
155+
156+
it.only('vertical panes', () => {
157+
const jsx = (
158+
<SplitPane>
159+
<div>one</div>
160+
<div>two</div>
161+
</SplitPane>
162+
);
163+
164+
asserter(jsx)
165+
.assertOrientation('vertical')
166+
.assertNumberOfPanes(2)
167+
.assertNumberOfResizers(1)
168+
.assertSizes([299.5, 299.5])
169+
.dragResizer(0, {x:20, y:0})
170+
//.assertSizes([299.5, 299.5]);
171+
});
172+
});
153173
});

0 commit comments

Comments
 (0)