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  }