| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- // Copyright 2020 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package setting
-
- import (
- "testing"
-
- "github.com/stretchr/testify/assert"
- )
-
- func Test_getCronSettings(t *testing.T) {
- type BaseStruct struct {
- Base bool
- Second string
- }
-
- type Extended struct {
- BaseStruct
- Extend bool
- }
-
- iniStr := `
- [cron.test]
- BASE = true
- SECOND = white rabbit
- EXTEND = true
- `
- cfg, err := NewConfigProviderFromData(iniStr)
- assert.NoError(t, err)
-
- extended := &Extended{
- BaseStruct: BaseStruct{
- Second: "queen of hearts",
- },
- }
-
- _, err = getCronSettings(cfg, "test", extended)
- assert.NoError(t, err)
- assert.True(t, extended.Base)
- assert.Equal(t, "white rabbit", extended.Second)
- assert.True(t, extended.Extend)
- }
-
- // Test_getCronSettings2 tests that getCronSettings can not handle two levels of embedding
- func Test_getCronSettings2(t *testing.T) {
- type BaseStruct struct {
- Enabled bool
- RunAtStart bool
- Schedule string
- }
-
- type Extended struct {
- BaseStruct
- Extend bool
- }
- type Extended2 struct {
- Extended
- Third string
- }
-
- iniStr := `
- [cron.test]
- ENABLED = TRUE
- RUN_AT_START = TRUE
- SCHEDULE = @every 1h
- EXTEND = true
- THIRD = white rabbit
- `
- cfg, err := NewConfigProviderFromData(iniStr)
- assert.NoError(t, err)
-
- extended := &Extended2{
- Extended: Extended{
- BaseStruct: BaseStruct{
- Enabled: false,
- RunAtStart: false,
- Schedule: "@every 72h",
- },
- Extend: false,
- },
- Third: "black rabbit",
- }
-
- _, err = getCronSettings(cfg, "test", extended)
- assert.NoError(t, err)
-
- // This confirms the first level of embedding works
- assert.Equal(t, "white rabbit", extended.Third)
- assert.True(t, extended.Extend)
-
- // This confirms 2 levels of embedding doesn't work
- assert.False(t, extended.Enabled)
- assert.False(t, extended.RunAtStart)
- assert.Equal(t, "@every 72h", extended.Schedule)
- }
|