@@ -6,87 +6,109 @@ import { getElements } from '../../utils'
66const { nodes } = getElements ( )
77
88describe ( 'Composable: `useNodesData`' , ( ) => {
9- describe ( 'returns node data for a single node' , ( ) => {
10- let data : any = null
11-
9+ it ( 'should return node data' , ( ) => {
1210 const node = nodes [ 0 ]
1311
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 )
3116
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+ } ,
3421 } )
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 )
3540 } )
3641
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' )
3944
4045 const nodeIds = nodes . map ( ( node ) => node . id )
4146
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 )
5953
60- it ( 'should return the node data' , ( ) => {
61- expect ( data . value ) . to . deep . equal ( nodes . map ( ( node ) => node . data ) )
54+ return 'Composable Tester'
55+ } ,
6256 } )
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+ )
6376 } )
6477
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' )
6780
6881 const nodeIds = nodes . map ( ( node ) => node . id )
6982
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 ) )
8787
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+ } ,
9092 } )
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+ )
91113 } )
92114} )
0 commit comments