backend-app-api: make sure DependencyGraph.findUnsatisfiedDeps doesn't break on circular deps

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2023-08-14 14:03:24 +02:00
parent de295fe8a8
commit 1fb03402ea
@@ -109,6 +109,29 @@ describe('DependencyGraph', () => {
).toEqual([{ value: '1', unsatisfied: ['a'] }]);
});
it('should handle circular dependencies', async () => {
expect(
DependencyGraph.fromMap({
1: { consumes: ['a'], provides: ['a'] },
}).findUnsatisfiedDeps(),
).toEqual([]);
expect(
DependencyGraph.fromMap({
1: { consumes: ['a'], provides: ['b'] },
2: { consumes: ['b'], provides: ['a'] },
}).findUnsatisfiedDeps(),
).toEqual([]);
expect(
DependencyGraph.fromMap({
1: { consumes: ['a'] },
2: { consumes: ['b'], provides: ['c'] },
3: { consumes: ['c'], provides: ['a', 'b'] },
}).findUnsatisfiedDeps(),
).toEqual([]);
});
it('should find multiple unsatisfied deps for one node', async () => {
expect(
DependencyGraph.fromMap({