code.gitea.io/gitea@v1.22.3/modules/setting/actions_test.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package setting 5 6 import ( 7 "path/filepath" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func Test_getStorageInheritNameSectionTypeForActions(t *testing.T) { 15 iniStr := ` 16 [storage] 17 STORAGE_TYPE = minio 18 ` 19 cfg, err := NewConfigProviderFromData(iniStr) 20 assert.NoError(t, err) 21 assert.NoError(t, loadActionsFrom(cfg)) 22 23 assert.EqualValues(t, "minio", Actions.LogStorage.Type) 24 assert.EqualValues(t, "actions_log/", Actions.LogStorage.MinioConfig.BasePath) 25 assert.EqualValues(t, "minio", Actions.ArtifactStorage.Type) 26 assert.EqualValues(t, "actions_artifacts/", Actions.ArtifactStorage.MinioConfig.BasePath) 27 28 iniStr = ` 29 [storage.actions_log] 30 STORAGE_TYPE = minio 31 ` 32 cfg, err = NewConfigProviderFromData(iniStr) 33 assert.NoError(t, err) 34 assert.NoError(t, loadActionsFrom(cfg)) 35 36 assert.EqualValues(t, "minio", Actions.LogStorage.Type) 37 assert.EqualValues(t, "actions_log/", Actions.LogStorage.MinioConfig.BasePath) 38 assert.EqualValues(t, "local", Actions.ArtifactStorage.Type) 39 assert.EqualValues(t, "actions_artifacts", filepath.Base(Actions.ArtifactStorage.Path)) 40 41 iniStr = ` 42 [storage.actions_log] 43 STORAGE_TYPE = my_storage 44 45 [storage.my_storage] 46 STORAGE_TYPE = minio 47 ` 48 cfg, err = NewConfigProviderFromData(iniStr) 49 assert.NoError(t, err) 50 assert.NoError(t, loadActionsFrom(cfg)) 51 52 assert.EqualValues(t, "minio", Actions.LogStorage.Type) 53 assert.EqualValues(t, "actions_log/", Actions.LogStorage.MinioConfig.BasePath) 54 assert.EqualValues(t, "local", Actions.ArtifactStorage.Type) 55 assert.EqualValues(t, "actions_artifacts", filepath.Base(Actions.ArtifactStorage.Path)) 56 57 iniStr = ` 58 [storage.actions_artifacts] 59 STORAGE_TYPE = my_storage 60 61 [storage.my_storage] 62 STORAGE_TYPE = minio 63 ` 64 cfg, err = NewConfigProviderFromData(iniStr) 65 assert.NoError(t, err) 66 assert.NoError(t, loadActionsFrom(cfg)) 67 68 assert.EqualValues(t, "local", Actions.LogStorage.Type) 69 assert.EqualValues(t, "actions_log", filepath.Base(Actions.LogStorage.Path)) 70 assert.EqualValues(t, "minio", Actions.ArtifactStorage.Type) 71 assert.EqualValues(t, "actions_artifacts/", Actions.ArtifactStorage.MinioConfig.BasePath) 72 73 iniStr = ` 74 [storage.actions_artifacts] 75 STORAGE_TYPE = my_storage 76 77 [storage.my_storage] 78 STORAGE_TYPE = minio 79 ` 80 cfg, err = NewConfigProviderFromData(iniStr) 81 assert.NoError(t, err) 82 assert.NoError(t, loadActionsFrom(cfg)) 83 84 assert.EqualValues(t, "local", Actions.LogStorage.Type) 85 assert.EqualValues(t, "actions_log", filepath.Base(Actions.LogStorage.Path)) 86 assert.EqualValues(t, "minio", Actions.ArtifactStorage.Type) 87 assert.EqualValues(t, "actions_artifacts/", Actions.ArtifactStorage.MinioConfig.BasePath) 88 89 iniStr = `` 90 cfg, err = NewConfigProviderFromData(iniStr) 91 assert.NoError(t, err) 92 assert.NoError(t, loadActionsFrom(cfg)) 93 94 assert.EqualValues(t, "local", Actions.LogStorage.Type) 95 assert.EqualValues(t, "actions_log", filepath.Base(Actions.LogStorage.Path)) 96 assert.EqualValues(t, "local", Actions.ArtifactStorage.Type) 97 assert.EqualValues(t, "actions_artifacts", filepath.Base(Actions.ArtifactStorage.Path)) 98 } 99 100 func Test_getDefaultActionsURLForActions(t *testing.T) { 101 oldActions := Actions 102 oldAppURL := AppURL 103 defer func() { 104 Actions = oldActions 105 AppURL = oldAppURL 106 }() 107 108 AppURL = "http://test_get_default_actions_url_for_actions:3000/" 109 110 tests := []struct { 111 name string 112 iniStr string 113 wantErr assert.ErrorAssertionFunc 114 wantURL string 115 }{ 116 { 117 name: "default", 118 iniStr: ` 119 [actions] 120 `, 121 wantErr: assert.NoError, 122 wantURL: "https://github.com", 123 }, 124 { 125 name: "github", 126 iniStr: ` 127 [actions] 128 DEFAULT_ACTIONS_URL = github 129 `, 130 wantErr: assert.NoError, 131 wantURL: "https://github.com", 132 }, 133 { 134 name: "self", 135 iniStr: ` 136 [actions] 137 DEFAULT_ACTIONS_URL = self 138 `, 139 wantErr: assert.NoError, 140 wantURL: "http://test_get_default_actions_url_for_actions:3000", 141 }, 142 { 143 name: "custom url", 144 iniStr: ` 145 [actions] 146 DEFAULT_ACTIONS_URL = https://gitea.com 147 `, 148 wantErr: assert.NoError, 149 wantURL: "https://github.com", 150 }, 151 { 152 name: "custom urls", 153 iniStr: ` 154 [actions] 155 DEFAULT_ACTIONS_URL = https://gitea.com,https://github.com 156 `, 157 wantErr: assert.NoError, 158 wantURL: "https://github.com", 159 }, 160 { 161 name: "invalid", 162 iniStr: ` 163 [actions] 164 DEFAULT_ACTIONS_URL = gitea 165 `, 166 wantErr: assert.Error, 167 wantURL: "https://github.com", 168 }, 169 } 170 171 for _, tt := range tests { 172 t.Run(tt.name, func(t *testing.T) { 173 cfg, err := NewConfigProviderFromData(tt.iniStr) 174 require.NoError(t, err) 175 if !tt.wantErr(t, loadActionsFrom(cfg)) { 176 return 177 } 178 assert.EqualValues(t, tt.wantURL, Actions.DefaultActionsURL.URL()) 179 }) 180 } 181 }