@@ -6,87 +6,109 @@ import { getElements } from '../../utils'
6
6
const { nodes } = getElements ( )
7
7
8
8
describe ( 'Composable: `useNodesData`' , ( ) => {
9
- describe ( 'returns node data for a single node' , ( ) => {
10
- let data : any = null
11
-
9
+ it ( 'should return node data' , ( ) => {
12
10
const node = nodes [ 0 ]
13
11
14
- beforeEach ( ( ) => {
15
- cy . vueFlow (
16
- {
17
- nodes : nodes . map ( ( node ) => ( { ...node , type : 'custom' } ) ) ,
18
- } ,
19
- { } ,
20
- {
21
- 'node-custom' : defineComponent ( {
22
- setup ( ) {
23
- data = useNodesData ( nodes [ 0 ] . id )
24
-
25
- return ( ) => h ( 'div' , 'Custom Node' )
26
- } ,
27
- } ) ,
28
- } ,
29
- )
30
- } )
12
+ const ComposableTester = defineComponent ( {
13
+ emits : [ 'change' ] ,
14
+ setup ( _ , { emit } ) {
15
+ const data = useNodesData ( node . id )
31
16
32
- it ( 'should return the node data' , ( ) => {
33
- expect ( data . value ) . to . deep . equal ( node . data )
17
+ emit ( 'change' , data . value )
18
+
19
+ return 'Composable Tester'
20
+ } ,
34
21
} )
22
+
23
+ const onChangeSpy = cy . spy ( ) . as ( 'onChangeSpy' )
24
+
25
+ cy . vueFlow (
26
+ {
27
+ nodes : nodes . map ( ( node ) => ( { ...node , type : 'custom' } ) ) ,
28
+ } ,
29
+ { } ,
30
+ {
31
+ default : ( ) =>
32
+ h ( ComposableTester , {
33
+ onChange : onChangeSpy ,
34
+ nodes : node . id ,
35
+ } ) ,
36
+ } ,
37
+ )
38
+
39
+ cy . get ( '@onChangeSpy' ) . should ( 'have.been.calledWith' , node . data )
35
40
} )
36
41
37
- describe ( 'returns node data for multiple nodes', ( ) => {
38
- let data : any = null
42
+ it ( 'should return nodes data ', ( ) => {
43
+ const onChangeSpy = cy . spy ( ) . as ( 'onChangeSpy' )
39
44
40
45
const nodeIds = nodes . map ( ( node ) => node . id )
41
46
42
- beforeEach ( ( ) => {
43
- cy . vueFlow (
44
- {
45
- nodes : nodes . map ( ( node ) => ( { ...node , type : 'custom' } ) ) ,
46
- } ,
47
- { } ,
48
- {
49
- 'node-custom' : defineComponent ( {
50
- setup ( ) {
51
- data = useNodesData ( nodeIds )
52
-
53
- return ( ) => h ( 'div' , 'Custom Node' )
54
- } ,
55
- } ) ,
56
- } ,
57
- )
58
- } )
47
+ const ComposableTester = defineComponent ( {
48
+ emits : [ 'change' ] ,
49
+ setup ( _ , { emit } ) {
50
+ const data = useNodesData ( nodeIds )
51
+
52
+ emit ( 'change' , data . value )
59
53
60
- it ( 'should return the node data' , ( ) => {
61
- expect ( data . value ) . to . deep . equal ( nodes . map ( ( node ) => node . data ) )
54
+ return 'Composable Tester'
55
+ } ,
62
56
} )
57
+
58
+ cy . vueFlow (
59
+ {
60
+ nodes : nodes . map ( ( node ) => ( { ...node , type : 'custom' } ) ) ,
61
+ } ,
62
+ { } ,
63
+ {
64
+ default : ( ) =>
65
+ h ( ComposableTester , {
66
+ onChange : onChangeSpy ,
67
+ nodes : nodeIds ,
68
+ } ) ,
69
+ } ,
70
+ )
71
+
72
+ cy . get ( '@onChangeSpy' ) . should (
73
+ 'have.been.calledWith' ,
74
+ nodes . map ( ( node ) => node . data ) ,
75
+ )
63
76
} )
64
77
65
- describe ( 'returns node data for multiple nodes with a guard ', ( ) => {
66
- let data : any = null
78
+ it ( 'should return the node data with typeguard ', ( ) => {
79
+ const onChangeSpy = cy . spy ( ) . as ( 'onChangeSpy' )
67
80
68
81
const nodeIds = nodes . map ( ( node ) => node . id )
69
82
70
- beforeEach ( ( ) => {
71
- cy . vueFlow (
72
- {
73
- nodes : nodes . map ( ( node ) => ( { ...node , type : 'custom' } ) ) ,
74
- } ,
75
- { } ,
76
- {
77
- 'node-custom' : defineComponent ( {
78
- setup ( ) {
79
- data = useNodesData ( nodeIds , ( node ) : node is Node < { randomData : number } > => node . type === 'custom' )
80
-
81
- return ( ) => h ( 'div' , 'Custom Node' )
82
- } ,
83
- } ) ,
84
- } ,
85
- )
86
- } )
83
+ const ComposableTester = defineComponent < { guard ?: ( node : Node ) => node is Node } > ( {
84
+ emits : [ 'change' ] ,
85
+ setup ( props , { emit } ) {
86
+ const data = useNodesData ( nodeIds , props . guard || ( ( node ) : node is Node => true ) )
87
87
88
- it ( 'should return the node data' , ( ) => {
89
- expect ( data . value ) . to . deep . equal ( nodes . map ( ( node ) => node . data ) )
88
+ emit ( 'change' , data . value )
89
+
90
+ return 'Composable Tester'
91
+ } ,
90
92
} )
93
+
94
+ cy . vueFlow (
95
+ {
96
+ nodes : nodes . map ( ( node ) => ( { ...node , type : 'custom' } ) ) ,
97
+ } ,
98
+ { } ,
99
+ {
100
+ default : ( ) =>
101
+ h ( ComposableTester , {
102
+ onChange : onChangeSpy ,
103
+ nodes : nodeIds ,
104
+ guard : ( node ) : node is Node < { randomData : number } > => node . type === 'custom' ,
105
+ } ) ,
106
+ } ,
107
+ )
108
+
109
+ cy . get ( '@onChangeSpy' ) . should (
110
+ 'have.been.calledWith' ,
111
+ nodes . map ( ( node ) => node . data ) ,
112
+ )
91
113
} )
92
114
} )
0 commit comments