This fixes the run package's leaky abstraction; other packages no longer need to know or care that run.Config even exists. Note that since the various Steps now depend on having a non-nil pointer to a run.Config, it's unsafe (or at least risky) to initialize them directly. They should be created with their NewSTEPNAME functions. All their fields are now private, to reflect this.
36 lines
650 B
Go
36 lines
650 B
Go
package run
|
|
|
|
import (
|
|
"github.com/pelotech/drone-helm3/internal/env"
|
|
"github.com/stretchr/testify/suite"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
type ConfigTestSuite struct {
|
|
suite.Suite
|
|
}
|
|
|
|
func TestConfigTestSuite(t *testing.T) {
|
|
suite.Run(t, new(ConfigTestSuite))
|
|
}
|
|
|
|
func (suite *ConfigTestSuite) TestNewConfig() {
|
|
stdout := &strings.Builder{}
|
|
stderr := &strings.Builder{}
|
|
envCfg := env.Config{
|
|
Namespace: "private",
|
|
Debug: true,
|
|
Stdout: stdout,
|
|
Stderr: stderr,
|
|
}
|
|
cfg := newConfig(envCfg)
|
|
suite.Require().NotNil(cfg)
|
|
suite.Equal(&config{
|
|
namespace: "private",
|
|
debug: true,
|
|
stdout: stdout,
|
|
stderr: stderr,
|
|
}, cfg)
|
|
}
|