aboutsummaryrefslogtreecommitdiffstats
path: root/services/cron/tasks_extended_test.go
blob: a3d40630a3c89ee03ac1a1270d37f177f5deb9d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Copyright 2025 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT

package cron

import (
	"testing"
	"time"

	"code.gitea.io/gitea/modules/setting"
	"code.gitea.io/gitea/modules/test"

	"github.com/stretchr/testify/assert"
)

func Test_GCLFSConfig(t *testing.T) {
	cfg, err := setting.NewConfigProviderFromData(`
[cron.gc_lfs]
ENABLED = true
RUN_AT_START = true
SCHEDULE = "@every 2h"
OLDER_THAN = "1h"
LAST_UPDATED_MORE_THAN_AGO = "7h"
NUMBER_TO_CHECK_PER_REPO = 10
PROPORTION_TO_CHECK_PER_REPO = 0.1
`)
	assert.NoError(t, err)
	defer test.MockVariableValue(&setting.CfgProvider, cfg)()

	config := &GCLFSConfig{
		BaseConfig: BaseConfig{
			Enabled:    false,
			RunAtStart: false,
			Schedule:   "@every 24h",
		},
		OlderThan:                24 * time.Hour * 7,
		LastUpdatedMoreThanAgo:   24 * time.Hour * 3,
		NumberToCheckPerRepo:     100,
		ProportionToCheckPerRepo: 0.6,
	}

	_, err = setting.GetCronSettings("gc_lfs", config)
	assert.NoError(t, err)
	assert.True(t, config.Enabled)
	assert.True(t, config.RunAtStart)
	assert.Equal(t, "@every 2h", config.Schedule)
	assert.Equal(t, 1*time.Hour, config.OlderThan)
	assert.Equal(t, 7*time.Hour, config.LastUpdatedMoreThanAgo)
	assert.Equal(t, int64(10), config.NumberToCheckPerRepo)
	assert.InDelta(t, 0.1, config.ProportionToCheckPerRepo, 0.001)
}