Test_ShutdownServices() — fiber Function Reference
Architecture documentation for the Test_ShutdownServices() function in services_test.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD 31b09217_6aa0_ab40_0c4f_f09bac8fcacd["Test_ShutdownServices()"] a3b050d2_f10a_df85_e082_e3ac664a6a6c["services_test.go"] 31b09217_6aa0_ab40_0c4f_f09bac8fcacd -->|defined in| a3b050d2_f10a_df85_e082_e3ac664a6a6c style 31b09217_6aa0_ab40_0c4f_f09bac8fcacd fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
services_test.go lines 310–421
func Test_ShutdownServices(t *testing.T) {
t.Run("no-services", func(t *testing.T) {
app := &App{
configured: Config{
Services: []Service{},
},
state: newState(),
}
err := app.shutdownServices(context.Background())
require.NoError(t, err)
require.Zero(t, app.state.ServicesLen())
})
t.Run("successful-shutdown", func(t *testing.T) {
srv1 := &mockService{name: "dep1"}
srv2 := &mockService{name: "dep2"}
// Expected state, including the two started services
expectedState := newState()
expectedState.setService(srv1)
expectedState.setService(srv2)
app := &App{
configured: Config{
Services: []Service{srv1, srv2},
},
state: expectedState,
}
err := app.shutdownServices(context.Background())
require.NoError(t, err)
require.Zero(t, app.state.ServicesLen())
})
t.Run("failed-shutdown", func(t *testing.T) {
srv1 := &mockService{name: "dep1", terminateError: errors.New(terminateErrorMessage + " 1")}
srv2 := &mockService{name: "dep2", terminateError: errors.New(terminateErrorMessage + " 2")}
srv3 := &mockService{name: "dep3"}
// Expected state, including the two started services
expectedState := newState()
expectedState.setService(srv1)
expectedState.setService(srv2)
expectedState.setService(srv3)
app := &App{
configured: Config{
Services: []Service{srv1, srv2, srv3},
},
state: expectedState,
}
err := app.shutdownServices(context.Background())
require.Error(t, err)
require.Contains(t, err.Error(), terminateErrorMessage+" 1")
require.Contains(t, err.Error(), terminateErrorMessage+" 2")
require.Equal(t, 2, app.state.ServicesLen()) // 2 services failed to terminate
})
t.Run("context", func(t *testing.T) {
t.Run("already-canceled", func(t *testing.T) {
srv1 := &mockService{name: "dep1"}
// Expected state, including the two started services
expectedState := newState()
expectedState.setService(srv1)
app := &App{
configured: Config{
Services: []Service{srv1},
},
state: expectedState,
}
// Create a context that is already canceled
ctx, cancel := context.WithCancel(context.Background())
cancel()
err := app.shutdownServices(ctx)
require.Error(t, err)
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does Test_ShutdownServices() do?
Test_ShutdownServices() is a function in the fiber codebase, defined in services_test.go.
Where is Test_ShutdownServices() defined?
Test_ShutdownServices() is defined in services_test.go at line 310.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free