#49 feat: grafico unificado de provenance con filtro por niveles y re-estabilizacion
This commit is contained in:
@@ -10,6 +10,8 @@ const vis = vi.hoisted(() => {
|
||||
setOptions: vi.fn(),
|
||||
fit: vi.fn(),
|
||||
destroy: vi.fn(),
|
||||
getPositions: vi.fn(() => ({})),
|
||||
moveNode: vi.fn(),
|
||||
}
|
||||
const dataSetInstance = {
|
||||
get: vi.fn(),
|
||||
@@ -96,12 +98,46 @@ describe('VisChart', () => {
|
||||
expect(vis.networkInstance.fit).toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('actualiza la red cuando cambian los nodos o aristas', async () => {
|
||||
it('separa verticalmente los nodos de una misma columna tras estabilizar', () => {
|
||||
vis.networkInstance.getPositions.mockReturnValue({
|
||||
'supplier:5': { x: 0, y: 100 },
|
||||
'supplier:6': { x: 0, y: 112 },
|
||||
'municipality:7': { x: 240, y: 100 },
|
||||
'product:1': { x: -240, y: 60 },
|
||||
})
|
||||
mount(VisChart, { props: { nodes: [], edges: [], minVerticalSpacing: 70 } })
|
||||
|
||||
const onStabilized = handlerFor(vis.networkInstance.once, 'stabilizationIterationsDone')
|
||||
onStabilized()
|
||||
|
||||
expect(vis.networkInstance.moveNode).toHaveBeenCalledWith('supplier:6', 0, 170)
|
||||
expect(vis.networkInstance.moveNode).not.toHaveBeenCalledWith('supplier:5', 0, expect.anything())
|
||||
expect(vis.networkInstance.moveNode).not.toHaveBeenCalledWith('municipality:7', 240, expect.anything())
|
||||
expect(vis.networkInstance.moveNode).not.toHaveBeenCalledWith('product:1', -240, expect.anything())
|
||||
})
|
||||
|
||||
it('no separa nodos cuando no se indica espaciado vertical mínimo', () => {
|
||||
vis.networkInstance.getPositions.mockReturnValue({
|
||||
'supplier:5': { x: 0, y: 100 },
|
||||
'supplier:6': { x: 0, y: 112 },
|
||||
})
|
||||
mount(VisChart, { props: { nodes: [], edges: [] } })
|
||||
|
||||
const onStabilized = handlerFor(vis.networkInstance.once, 'stabilizationIterationsDone')
|
||||
onStabilized()
|
||||
|
||||
expect(vis.networkInstance.moveNode).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('vuelve a estabilizar el grafo cuando cambian los nodos o aristas', async () => {
|
||||
const wrapper = mount(VisChart, { props: { nodes: [{ id: 'product:1' }], edges: [] } })
|
||||
expect(vis.networkInstance.setData).toHaveBeenCalledTimes(1)
|
||||
expect(vis.Network).toHaveBeenCalledTimes(1)
|
||||
expect(vis.networkInstance.destroy).not.toHaveBeenCalled()
|
||||
|
||||
await wrapper.setProps({ nodes: [{ id: 'product:2' }], edges: [{ from: 'product:2', to: 'supplier:5' }] })
|
||||
|
||||
expect(vis.networkInstance.destroy).toHaveBeenCalled()
|
||||
expect(vis.Network).toHaveBeenCalledTimes(2)
|
||||
expect(vis.networkInstance.setData).toHaveBeenCalledTimes(2)
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user