Skip to content

Commit 9837e0d

Browse files
committed
refactor(tests): use composable tester cmp
1 parent 30f158c commit 9837e0d

File tree

1 file changed

+86
-64
lines changed

1 file changed

+86
-64
lines changed

tests/cypress/component/4-composables/useNodesData.cy.ts

Lines changed: 86 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -6,87 +6,109 @@ import { getElements } from '../../utils'
66
const { nodes } = getElements()
77

88
describe('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

Comments
 (0)