github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/worker/statushistorypruner/worker_test.go (about) 1 // Copyright 2021 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package statushistorypruner_test 5 6 import ( 7 "time" 8 9 "github.com/juju/clock/testclock" 10 "github.com/juju/loggo" 11 jc "github.com/juju/testing/checkers" 12 "github.com/juju/worker/v3/workertest" 13 "go.uber.org/mock/gomock" 14 gc "gopkg.in/check.v1" 15 16 "github.com/juju/juju/core/watcher/watchertest" 17 "github.com/juju/juju/environs/config" 18 coretesting "github.com/juju/juju/testing" 19 "github.com/juju/juju/worker/pruner" 20 "github.com/juju/juju/worker/pruner/mocks" 21 "github.com/juju/juju/worker/statushistorypruner" 22 ) 23 24 type PrunerSuite struct{} 25 26 var _ = gc.Suite(&PrunerSuite{}) 27 28 func (s *PrunerSuite) TestRunStop(c *gc.C) { 29 ctrl := gomock.NewController(c) 30 defer ctrl.Finish() 31 32 ch := make(chan struct{}, 1) 33 ch <- struct{}{} 34 w := watchertest.NewMockNotifyWatcher(ch) 35 36 attrs := coretesting.FakeConfig().Merge(map[string]interface{}{ 37 "max-status-history-size": "0", 38 "max-status-history-age": "0", 39 }) 40 modelConfig, err := config.New(config.UseDefaults, attrs) 41 c.Assert(err, jc.ErrorIsNil) 42 43 facade := mocks.NewMockFacade(ctrl) 44 facade.EXPECT().WatchForModelConfigChanges().Return(w, nil) 45 facade.EXPECT().ModelConfig().Return(modelConfig, nil).AnyTimes() 46 47 updater, err := statushistorypruner.New(pruner.Config{ 48 Facade: facade, 49 PruneInterval: 0, 50 Clock: testclock.NewClock(time.Now()), 51 Logger: loggo.GetLogger("test"), 52 }) 53 c.Assert(err, jc.ErrorIsNil) 54 workertest.CleanKill(c, updater) 55 }