Fix link corruption (#888)

- Adds link & floating link integrity tests to all LinkConnector
integration tests
- Fixes link changes may be lost when moving floating links
This commit is contained in:
filtered
2025-04-05 16:34:55 +11:00
committed by GitHub
parent c4373deeea
commit 64c7113440
3 changed files with 56 additions and 2 deletions

View File

@@ -121,6 +121,29 @@ const test = baseTest.extend<TestContext>({
}
}
}
for (const link of graph._links.values()) {
expect(graph.getNodeById(link!.origin_id)?.outputs[link!.origin_slot].links).toContain(link.id)
expect(graph.getNodeById(link!.target_id)?.inputs[link!.target_slot].link).toBe(link.id)
}
for (const link of graph.floatingLinks.values()) {
if (link.target_id === -1) {
expect(link.origin_id).not.toBe(-1)
expect(link.origin_slot).not.toBe(-1)
expect(link.target_slot).toBe(-1)
const outputFloatingLinks = graph.getNodeById(link.origin_id)?.outputs[link.origin_slot]._floatingLinks
expect(outputFloatingLinks).toBeDefined()
expect(outputFloatingLinks).toContain(link)
} else {
expect(link.origin_id).toBe(-1)
expect(link.origin_slot).toBe(-1)
expect(link.target_slot).not.toBe(-1)
const inputFloatingLinks = graph.getNodeById(link.target_id)?.inputs[link.target_slot]._floatingLinks
expect(inputFloatingLinks).toBeDefined()
expect(inputFloatingLinks).toContain(link)
}
}
})
},