MCPcopy Index your code
hub / github.com/coder/coder / TestManager_ToDOT

Function TestManager_ToDOT

agent/unit/manager_test.go:691–743  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

689}
690
691func TestManager_ToDOT(t *testing.T) {
692 t.Parallel()
693
694 t.Run("ExportSimpleGraph", func(t *testing.T) {
695 t.Parallel()
696
697 manager := unit.NewManager()
698
699 // Register units
700 err := manager.Register(unitA)
701 require.NoError(t, err)
702 err = manager.Register(unitB)
703 require.NoError(t, err)
704
705 // Add dependency
706 err = manager.AddDependency(unitA, unitB, unit.StatusStarted)
707 require.NoError(t, err)
708
709 dot, err := manager.ExportDOT("test")
710 require.NoError(t, err)
711 assert.NotEmpty(t, dot)
712 assert.Contains(t, dot, "digraph")
713 })
714
715 t.Run("ExportComplexGraph", func(t *testing.T) {
716 t.Parallel()
717
718 manager := unit.NewManager()
719
720 // Register all units
721 units := []unit.ID{unitA, unitB, unitC, unitD}
722 for _, unit := range units {
723 err := manager.Register(unit)
724 require.NoError(t, err)
725 }
726
727 // Create complex dependency graph
728 // A depends on B and C, B depends on D, C depends on D
729 err := manager.AddDependency(unitA, unitB, unit.StatusStarted)
730 require.NoError(t, err)
731 err = manager.AddDependency(unitA, unitC, unit.StatusStarted)
732 require.NoError(t, err)
733 err = manager.AddDependency(unitB, unitD, unit.StatusComplete)
734 require.NoError(t, err)
735 err = manager.AddDependency(unitC, unitD, unit.StatusComplete)
736 require.NoError(t, err)
737
738 dot, err := manager.ExportDOT("complex")
739 require.NoError(t, err)
740 assert.NotEmpty(t, dot)
741 assert.Contains(t, dot, "digraph")
742 })
743}

Callers

nothing calls this directly

Calls 7

RegisterMethod · 0.95
AddDependencyMethod · 0.95
ExportDOTMethod · 0.95
NewManagerFunction · 0.92
NotEmptyMethod · 0.80
RunMethod · 0.65
ContainsMethod · 0.45

Tested by

no test coverage detected