@@ -9,6 +9,7 @@ import '../assets/index.less';
9
9
import Trigger from '../index' ;
10
10
import './test.less' ;
11
11
import async from 'async' ;
12
+ import { saveRef } from '../src/utils' ;
12
13
13
14
const Simulate = TestUtils . Simulate ;
14
15
window . $ = $ ;
@@ -235,18 +236,24 @@ describe('rc-trigger', function main() {
235
236
236
237
it ( 'nested action works' , ( done ) => {
237
238
class Test extends React . Component {
239
+ constructor ( props ) {
240
+ super ( props ) ;
241
+
242
+ this . saveClickTriggerRef = saveRef . bind ( this , 'clickTriggerInstance' ) ;
243
+ this . saveHoverTriggerRef = saveRef . bind ( this , 'hoverTriggerInstance' ) ;
244
+ }
238
245
render ( ) {
239
246
return (
240
247
< Trigger
241
248
action = { [ 'click' ] }
242
249
popupAlign = { placementAlignMap . left }
243
- ref = "clickTrigger"
250
+ ref = { this . saveClickTriggerRef }
244
251
popup = { < strong > click trigger</ strong > }
245
252
>
246
253
< Trigger
247
254
action = { [ 'hover' ] }
248
255
popupAlign = { placementAlignMap . left }
249
- ref = "hoverTrigger"
256
+ ref = { this . saveHoverTriggerRef }
250
257
popup = { < strong > hover trigger</ strong > }
251
258
>
252
259
< div className = "target" > trigger</ div >
@@ -262,19 +269,19 @@ describe('rc-trigger', function main() {
262
269
Simulate . mouseEnter ( target ) ;
263
270
Simulate . click ( target ) ;
264
271
async . series ( [ timeout ( 200 ) , ( next ) => {
265
- const clickPopupDomNode = trigger . refs . clickTrigger . getPopupDomNode ( ) ;
266
- const hoverPopupDomNode = trigger . refs . hoverTrigger . getPopupDomNode ( ) ;
272
+ const clickPopupDomNode = trigger . clickTriggerInstance . getPopupDomNode ( ) ;
273
+ const hoverPopupDomNode = trigger . hoverTriggerInstance . getPopupDomNode ( ) ;
267
274
expect ( clickPopupDomNode ) . to . be . ok ( ) ;
268
275
expect ( hoverPopupDomNode ) . to . be . ok ( ) ;
269
276
Simulate . mouseLeave ( target ) ;
270
277
next ( ) ;
271
278
} , timeout ( 200 ) , ( next ) => {
272
- const hoverPopupDomNode = trigger . refs . hoverTrigger . getPopupDomNode ( ) ;
279
+ const hoverPopupDomNode = trigger . hoverTriggerInstance . getPopupDomNode ( ) ;
273
280
expect ( $ ( hoverPopupDomNode ) . css ( 'display' ) ) . to . be ( 'none' ) ;
274
281
Simulate . click ( target ) ;
275
282
next ( ) ;
276
283
} , timeout ( 200 ) , ( next ) => {
277
- const clickPopupDomNode = trigger . refs . clickTrigger . getPopupDomNode ( ) ;
284
+ const clickPopupDomNode = trigger . clickTriggerInstance . getPopupDomNode ( ) ;
278
285
expect ( $ ( clickPopupDomNode ) . css ( 'display' ) ) . to . be ( 'none' ) ;
279
286
next ( ) ;
280
287
} ] , done ) ;
@@ -656,4 +663,15 @@ describe('rc-trigger', function main() {
656
663
expect ( popupNodeHeightOfOneWord ) . to . equal ( popupNodeHeightOfSeveralWords ) ;
657
664
} ) ;
658
665
} ) ;
666
+
667
+ describe ( 'utils/saveRef' , ( ) => {
668
+ const mock = { } ;
669
+ const saveTestRef = saveRef . bind ( mock , 'testInstance' ) ;
670
+
671
+ it ( 'adds a property with the given name to context' , ( ) => {
672
+ expect ( mock . testInstance ) . to . be ( undefined ) ;
673
+ saveTestRef ( 'bar' ) ;
674
+ expect ( mock . testInstance ) . to . be ( 'bar' ) ;
675
+ } ) ;
676
+ } ) ;
659
677
} ) ;
0 commit comments