mukan-ignite/ignite/pkg/gomodule/gomodule_test.go
Mukan Erkin Törük 26b204bd04
Some checks are pending
Docs Deploy / build_and_deploy (push) Waiting to run
Generate Docs / cli (push) Waiting to run
Generate Config Doc / cli (push) Waiting to run
Go formatting / go-formatting (push) Waiting to run
Check links / markdown-link-check (push) Waiting to run
Integration / pre-test (push) Waiting to run
Integration / test on (push) Blocked by required conditions
Integration / status (push) Blocked by required conditions
Lint / Lint Go code (push) Waiting to run
Test / test (ubuntu-latest) (push) Waiting to run
feat: fork Ignite CLI v29 as Mukan Ignite — remove cosmos-sdk restrictions
2026-05-11 03:31:37 +03:00

103 lines
2 KiB
Go

package gomodule_test
import (
"context"
"strings"
"testing"
"github.com/stretchr/testify/require"
"github.com/ignite/cli/v29/ignite/pkg/gomodule"
)
func TestSplitPath(t *testing.T) {
cases := []struct {
name string
path string
wantPath string
wantVersion string
}{
{
name: "path with version",
path: "foo@v0.1.0",
wantPath: "foo",
wantVersion: "v0.1.0",
},
{
name: "path without version",
path: "foo",
wantPath: "foo",
},
{
name: "invalid path",
path: "@v0.1.0",
},
{
name: "empty path",
},
}
for _, tt := range cases {
t.Run(tt.name, func(t *testing.T) {
// Act
p, v := gomodule.SplitPath(tt.path)
// Assert
require.Equal(t, tt.wantPath, p)
require.Equal(t, tt.wantVersion, v)
})
}
}
func TestJoinPath(t *testing.T) {
require.Equal(t, "foo@v0.1.0", gomodule.JoinPath("foo", "v0.1.0"))
require.Equal(t, "", gomodule.JoinPath("", "v0.1.0"))
require.Equal(t, "foo", gomodule.JoinPath("foo", ""))
}
func TestFindModule(t *testing.T) {
cases := []struct {
name string
importPath string
version string
wantErr error
}{
{
name: "module exists",
importPath: "github.com/gorilla/mux",
version: "v1.8.0",
},
{
name: "module exists with local replace",
importPath: "../local-module-fork",
version: "",
},
{
name: "module missing",
importPath: "github.com/foo/bar",
version: "v0.1.0",
wantErr: gomodule.ErrModuleNotFound,
},
}
for _, tt := range cases {
t.Run(tt.name, func(t *testing.T) {
// Arrange
ctx := context.Background()
path := gomodule.JoinPath(tt.importPath, tt.version)
// Act
m, err := gomodule.FindModule(ctx, "testdata/module", path)
// Assert
if tt.wantErr != nil {
require.ErrorIs(t, err, tt.wantErr)
} else {
require.NoError(t, err)
require.Equal(t, tt.importPath, m.Path)
require.Equal(t, tt.version, m.Version)
require.True(t, strings.HasSuffix(m.Dir, path))
}
})
}
}