|  | 
|  | 1 | +// Copyright 2025 The Gitea Authors. All rights reserved. | 
|  | 2 | +// SPDX-License-Identifier: MIT | 
|  | 3 | + | 
|  | 4 | +package cron | 
|  | 5 | + | 
|  | 6 | +import ( | 
|  | 7 | +	"testing" | 
|  | 8 | +	"time" | 
|  | 9 | + | 
|  | 10 | +	"code.gitea.io/gitea/modules/setting" | 
|  | 11 | +	"code.gitea.io/gitea/modules/test" | 
|  | 12 | + | 
|  | 13 | +	"github.com/stretchr/testify/assert" | 
|  | 14 | +) | 
|  | 15 | + | 
|  | 16 | +func Test_GCLFSConfig(t *testing.T) { | 
|  | 17 | +	cfg, err := setting.NewConfigProviderFromData(` | 
|  | 18 | +[cron.gc_lfs] | 
|  | 19 | +ENABLED = true | 
|  | 20 | +RUN_AT_START = true | 
|  | 21 | +SCHEDULE = "@every 2h" | 
|  | 22 | +OLDER_THAN = "1h" | 
|  | 23 | +LAST_UPDATED_MORE_THAN_AGO = "7h" | 
|  | 24 | +NUMBER_TO_CHECK_PER_REPO = 10 | 
|  | 25 | +PROPORTION_TO_CHECK_PER_REPO = 0.1 | 
|  | 26 | +`) | 
|  | 27 | +	assert.NoError(t, err) | 
|  | 28 | +	defer test.MockVariableValue(&setting.CfgProvider, cfg)() | 
|  | 29 | + | 
|  | 30 | +	config := &GCLFSConfig{ | 
|  | 31 | +		BaseConfig: BaseConfig{ | 
|  | 32 | +			Enabled:    false, | 
|  | 33 | +			RunAtStart: false, | 
|  | 34 | +			Schedule:   "@every 24h", | 
|  | 35 | +		}, | 
|  | 36 | +		OlderThan:                24 * time.Hour * 7, | 
|  | 37 | +		LastUpdatedMoreThanAgo:   24 * time.Hour * 3, | 
|  | 38 | +		NumberToCheckPerRepo:     100, | 
|  | 39 | +		ProportionToCheckPerRepo: 0.6, | 
|  | 40 | +	} | 
|  | 41 | + | 
|  | 42 | +	_, err = setting.GetCronSettings("gc_lfs", config) | 
|  | 43 | +	assert.NoError(t, err) | 
|  | 44 | +	assert.Equal(t, true, config.Enabled) | 
|  | 45 | +	assert.Equal(t, true, config.RunAtStart) | 
|  | 46 | +	assert.Equal(t, "@every 2h", config.Schedule) | 
|  | 47 | +	assert.Equal(t, 1*time.Hour, config.OlderThan) | 
|  | 48 | +	assert.Equal(t, 7*time.Hour, config.LastUpdatedMoreThanAgo) | 
|  | 49 | +	assert.Equal(t, int64(10), config.NumberToCheckPerRepo) | 
|  | 50 | +	assert.Equal(t, 0.1, config.ProportionToCheckPerRepo) | 
|  | 51 | +} | 
0 commit comments