refactor(admintimeout): merge the admin monitor middleware into the admin monitor service

This commit is contained in:
Oscar Zhou
2022-03-30 15:08:06 +13:00
parent 4d698c532a
commit 03ac0c8aed
10 changed files with 67 additions and 223 deletions
+7 -10
View File
@@ -11,18 +11,18 @@ import (
)
func Test_stopWithoutStarting(t *testing.T) {
monitor := New(1*time.Minute, nil, nil, nil)
monitor := New(1*time.Minute, nil, nil)
monitor.Stop()
}
func Test_stopCouldBeCalledMultipleTimes(t *testing.T) {
monitor := New(1*time.Minute, nil, nil, nil)
monitor := New(1*time.Minute, nil, nil)
monitor.Stop()
monitor.Stop()
}
func Test_startOrStopCouldBeCalledMultipleTimesConcurrently(t *testing.T) {
monitor := New(1*time.Minute, nil, nil, context.Background())
monitor := New(1*time.Minute, nil, context.Background())
go monitor.Start()
monitor.Start()
@@ -34,7 +34,7 @@ func Test_startOrStopCouldBeCalledMultipleTimesConcurrently(t *testing.T) {
}
func Test_canStopStartedMonitor(t *testing.T) {
monitor := New(1*time.Minute, nil, nil, context.Background())
monitor := New(1*time.Minute, nil, context.Background())
monitor.Start()
assert.NotNil(t, monitor.cancellationFunc, "cancellation function is missing in started monitor")
@@ -42,16 +42,13 @@ func Test_canStopStartedMonitor(t *testing.T) {
assert.Nil(t, monitor.cancellationFunc, "cancellation function should absent in stopped monitor")
}
func Test_start_shouldSendSignalAfterTimeout_ifNotInitialized(t *testing.T) {
func Test_start_shouldDisableInstanceAfterTimeout_ifNotInitialized(t *testing.T) {
timeout := 10 * time.Millisecond
initTimeoutSignal := make(chan interface{})
datastore := i.NewDatastore(i.WithUsers([]portainer.User{}))
monitor := New(timeout, datastore, initTimeoutSignal, context.Background())
monitor := New(timeout, datastore, context.Background())
monitor.Start()
<-time.After(20 * timeout)
_, ok := <-initTimeoutSignal
assert.False(t, ok, "monitor should have been timeout and sent init timeout signal out")
assert.True(t, monitor.WasInstanceDisabled(), "monitor should have been timeout and instance is disabled")
}