Skip to content

Commit 015bcb1

Browse files
authored
test: use temp config dirs for tests (#4865)
* fix: use temp config dirs for tests * use global const for config env var name
1 parent a18d401 commit 015bcb1

File tree

4 files changed

+28
-19
lines changed

4 files changed

+28
-19
lines changed

ignite/pkg/cosmosgen/generate_openapi_test.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/ignite/cli/v29/ignite/pkg/cosmosanalysis/module"
1212
"github.com/ignite/cli/v29/ignite/pkg/cosmosbuf"
1313
"github.com/ignite/cli/v29/ignite/pkg/dirchange"
14+
"github.com/ignite/cli/v29/ignite/pkg/env"
1415
"github.com/ignite/cli/v29/ignite/pkg/errors"
1516
)
1617

@@ -65,21 +66,22 @@ func Test_extractRootModulePath(t *testing.T) {
6566
}
6667

6768
func TestGenerateOpenAPI(t *testing.T) {
68-
require := require.New(t)
69+
r := require.New(t)
70+
t.Setenv(env.ConfigDirEnvVar, t.TempDir())
6971
testdataDir := "testdata"
7072
appDir := filepath.Join(testdataDir, "testchain")
7173
openAPIFile := filepath.Join(appDir, "docs", "static", "openapi.json")
7274

7375
cacheStorage, err := cache.NewStorage(filepath.Join(t.TempDir(), "cache.db"))
74-
require.NoError(err)
76+
r.NoError(err)
7577

7678
buf, err := cosmosbuf.New(cacheStorage, t.Name())
77-
require.NoError(err)
79+
r.NoError(err)
7880

7981
// Use module discovery to collect test module proto.
8082
m, err := module.Discover(t.Context(), appDir, appDir, module.WithProtoDir("proto"))
81-
require.NoError(err, "failed to discover module")
82-
require.Len(m, 1, "expected exactly one module to be discovered")
83+
r.NoError(err, "failed to discover module")
84+
r.Len(m, 1, "expected exactly one module to be discovered")
8385

8486
g := &generator{
8587
appPath: appDir,
@@ -95,15 +97,15 @@ func TestGenerateOpenAPI(t *testing.T) {
9597

9698
err = g.generateOpenAPISpec(t.Context())
9799
if err != nil && !errors.Is(err, dirchange.ErrNoFile) {
98-
require.NoError(err, "failed to generate OpenAPI spec")
100+
r.NoError(err, "failed to generate OpenAPI spec")
99101
}
100102

101103
// compare generated OpenAPI spec with golden files
102104
goldenFile := filepath.Join(testdataDir, "expected_files", "openapi", "openapi.json")
103105
gold, err := os.ReadFile(goldenFile)
104-
require.NoError(err, "failed to read golden file: %s", goldenFile)
106+
r.NoError(err, "failed to read golden file: %s", goldenFile)
105107

106108
gotBytes, err := os.ReadFile(openAPIFile)
107-
require.NoError(err, "failed to read generated file: %s", openAPIFile)
108-
require.Equal(string(gold), string(gotBytes), "generated OpenAPI spec does not match golden file")
109+
r.NoError(err, "failed to read generated file: %s", openAPIFile)
110+
r.Equal(string(gold), string(gotBytes), "generated OpenAPI spec does not match golden file")
109111
}

ignite/pkg/cosmosgen/generate_typescript_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package cosmosgen
33
import (
44
"fmt"
55
"os"
6+
"os/exec"
67
"path/filepath"
78
"strings"
89
"testing"
@@ -13,10 +14,15 @@ import (
1314
"github.com/ignite/cli/v29/ignite/pkg/cache"
1415
"github.com/ignite/cli/v29/ignite/pkg/cosmosanalysis/module"
1516
"github.com/ignite/cli/v29/ignite/pkg/cosmosbuf"
17+
"github.com/ignite/cli/v29/ignite/pkg/env"
1618
)
1719

1820
func TestGenerateTypeScript(t *testing.T) {
1921
require := require.New(t)
22+
t.Setenv(env.ConfigDirEnvVar, t.TempDir())
23+
if _, err := exec.LookPath(protocGenTSProtoBin); err != nil {
24+
t.Skipf("%s not found in PATH", protocGenTSProtoBin)
25+
}
2026
testdataDir := "testdata"
2127
appDir := filepath.Join(testdataDir, "testchain")
2228
tsClientDir := filepath.Join(appDir, "ts-client")

ignite/pkg/env/env.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,27 @@ import (
99
)
1010

1111
const (
12-
debug = "IGNT_DEBUG"
13-
configDir = "IGNT_CONFIG_DIR"
12+
DebugEnvVar = "IGNT_DEBUG"
13+
ConfigDirEnvVar = "IGNT_CONFIG_DIR"
1414
)
1515

1616
// SetDebug sets the debug environment variable to "1".
1717
// This is used to enable debug mode in the application.
1818
func SetDebug() {
19-
_ = os.Setenv(debug, "1")
19+
_ = os.Setenv(DebugEnvVar, "1")
2020
}
2121

2222
// IsDebug checks if the debug environment variable is set to "1".
2323
// This is used to determine if the application is running in debug mode.
2424
func IsDebug() bool {
25-
return os.Getenv(debug) == "1"
25+
return os.Getenv(DebugEnvVar) == "1"
2626
}
2727

2828
func ConfigDir() xfilepath.PathRetriever {
2929
return func() (string, error) {
30-
if dir := os.Getenv(configDir); dir != "" {
30+
if dir := os.Getenv(ConfigDirEnvVar); dir != "" {
3131
if !path.IsAbs(dir) {
32-
panic(fmt.Sprintf("%s must be an absolute path", configDir))
32+
panic(fmt.Sprintf("%s must be an absolute path", ConfigDirEnvVar))
3333
}
3434
return dir, nil
3535
}
@@ -38,7 +38,7 @@ func ConfigDir() xfilepath.PathRetriever {
3838
}
3939

4040
func SetConfigDir(dir string) {
41-
err := os.Setenv(configDir, dir)
41+
err := os.Setenv(ConfigDirEnvVar, dir)
4242
if err != nil {
4343
panic(fmt.Sprintf("set config dir env: %v", err))
4444
}

integration/doctor/doctor_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/rogpeppe/go-internal/testscript"
99

1010
"github.com/ignite/cli/v29/ignite/config"
11+
"github.com/ignite/cli/v29/ignite/pkg/env"
1112
"github.com/ignite/cli/v29/ignite/pkg/xfilepath"
1213
envtest "github.com/ignite/cli/v29/integration"
1314
)
@@ -19,15 +20,15 @@ func TestDoctor(t *testing.T) {
1920
envtest.New(t)
2021
// Prepare params
2122
params := testscript.Params{
22-
Setup: func(env *testscript.Env) error {
23-
env.Vars = append(env.Vars,
23+
Setup: func(testEnv *testscript.Env) error {
24+
testEnv.Vars = append(testEnv.Vars,
2425
envDoNotTrack+"=true",
2526
// Pass ignite binary path
2627
"IGNITE="+envtest.IgniteApp,
2728
// Pass ignite config dir
2829
// (testscript resets envs so even if envtest.New has properly set
2930
// IGNT_CONFIG_DIR, we need to set it again)
30-
"IGNT_CONFIG_DIR="+xfilepath.MustInvoke(config.DirPath),
31+
env.ConfigDirEnvVar+"="+xfilepath.MustInvoke(config.DirPath),
3132
)
3233
return nil
3334
},

0 commit comments

Comments
 (0)