mirror of
https://github.com/portainer/portainer.git
synced 2026-06-23 07:30:13 +00:00
d9673e33ec
Co-authored-by: Claude <noreply@anthropic.com>
50 lines
1.4 KiB
Go
50 lines
1.4 KiB
Go
package sources
|
|
|
|
import (
|
|
"net/http"
|
|
"testing"
|
|
|
|
portainer "github.com/portainer/portainer/api"
|
|
"github.com/portainer/portainer/api/datastore"
|
|
gittypes "github.com/portainer/portainer/api/git/types"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestValidateSourceForStack_ValidGitSource_ReturnsNil(t *testing.T) {
|
|
t.Parallel()
|
|
_, store := datastore.MustNewTestStore(t, false, false)
|
|
|
|
src := &portainer.Source{
|
|
Type: portainer.SourceTypeGit,
|
|
Git: &gittypes.RepoConfig{URL: "https://github.com/org/repo"},
|
|
}
|
|
require.NoError(t, store.Source().Create(src))
|
|
|
|
_, httpErr := ValidateGitSourceAccess(store, src.ID)
|
|
assert.Nil(t, httpErr)
|
|
}
|
|
|
|
func TestValidateSourceForStack_SourceNotFound_Returns404(t *testing.T) {
|
|
t.Parallel()
|
|
_, store := datastore.MustNewTestStore(t, false, false)
|
|
|
|
_, httpErr := ValidateGitSourceAccess(store, portainer.SourceID(999))
|
|
require.NotNil(t, httpErr)
|
|
assert.Equal(t, http.StatusNotFound, httpErr.StatusCode)
|
|
}
|
|
|
|
func TestValidateSourceForStack_NonGitSource_Returns400(t *testing.T) {
|
|
t.Parallel()
|
|
_, store := datastore.MustNewTestStore(t, false, false)
|
|
|
|
src := &portainer.Source{
|
|
Type: portainer.SourceType(99), // not a git source
|
|
}
|
|
require.NoError(t, store.Source().Create(src))
|
|
|
|
_, httpErr := ValidateGitSourceAccess(store, src.ID)
|
|
require.NotNil(t, httpErr)
|
|
assert.Equal(t, http.StatusBadRequest, httpErr.StatusCode)
|
|
}
|