diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2024-06-11 08:49:56 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-11 12:49:56 +0000 |
| commit | c92988958ff389ba0695539f6ce7fce6a6664c6d (patch) | |
| tree | 1e90c8852fe3a66e54e65c69b564f752f3e1fe71 /config_test.go | |
| parent | 7d193c9a79284d27092f3b650b7029bfc35f2421 (diff) | |
chore(api)!: Unexport some Config methods (#2106)
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'config_test.go')
| -rw-r--r-- | config_test.go | 228 |
1 files changed, 11 insertions, 217 deletions
diff --git a/config_test.go b/config_test.go index de196459..349d3d27 100644 --- a/config_test.go +++ b/config_test.go @@ -3,7 +3,6 @@ package gomplate import ( "net/http" "net/url" - "runtime" "strings" "testing" "time" @@ -194,7 +193,7 @@ func validateConfig(c string) error { if err != nil { return err } - err = cfg.Validate() + err = cfg.validate() return err } @@ -445,112 +444,10 @@ func TestMergeFrom(t *testing.T) { assert.EqualValues(t, expected, cfg.MergeFrom(other)) } -func TestParseDataSourceFlags(t *testing.T) { - t.Parallel() - cfg := &Config{} - err := cfg.ParseDataSourceFlags(nil, nil, nil, nil) - require.NoError(t, err) - assert.EqualValues(t, &Config{}, cfg) - - cfg = &Config{} - err = cfg.ParseDataSourceFlags([]string{"foo/bar/baz.json"}, nil, nil, nil) - require.Error(t, err) - - cfg = &Config{} - err = cfg.ParseDataSourceFlags([]string{"baz=foo/bar/baz.json"}, nil, nil, nil) - require.NoError(t, err) - expected := &Config{ - DataSources: map[string]DataSource{ - "baz": {URL: mustURL("foo/bar/baz.json")}, - }, - } - assert.EqualValues(t, expected, cfg, "expected: %+v\nactual: %+v\n", expected, cfg) - - cfg = &Config{} - err = cfg.ParseDataSourceFlags( - []string{"baz=foo/bar/baz.json"}, - nil, - nil, - []string{"baz=Accept: application/json"}) - require.NoError(t, err) - assert.EqualValues(t, &Config{ - DataSources: map[string]DataSource{ - "baz": { - URL: mustURL("foo/bar/baz.json"), - Header: http.Header{ - "Accept": {"application/json"}, - }, - }, - }, - }, cfg) - - cfg = &Config{} - err = cfg.ParseDataSourceFlags( - []string{"baz=foo/bar/baz.json"}, - []string{"foo=http://example.com"}, - nil, - []string{ - "foo=Accept: application/json", - "bar=Authorization: Basic xxxxx", - }, - ) - require.NoError(t, err) - assert.EqualValues(t, &Config{ - DataSources: map[string]DataSource{ - "baz": {URL: mustURL("foo/bar/baz.json")}, - }, - Context: map[string]DataSource{ - "foo": { - URL: mustURL("http://example.com"), - Header: http.Header{ - "Accept": {"application/json"}, - }, - }, - }, - ExtraHeaders: map[string]http.Header{ - "bar": {"Authorization": {"Basic xxxxx"}}, - }, - }, cfg) - - cfg = &Config{} - err = cfg.ParseDataSourceFlags( - nil, - nil, - []string{"foo=http://example.com", "file.tmpl", "tmpldir/"}, - []string{"foo=Accept: application/json", "bar=Authorization: Basic xxxxx"}, - ) - require.NoError(t, err) - assert.EqualValues(t, &Config{ - Templates: map[string]DataSource{ - "foo": { - URL: mustURL("http://example.com"), - Header: http.Header{"Accept": {"application/json"}}, - }, - "file.tmpl": {URL: mustURL("file.tmpl")}, - "tmpldir/": {URL: mustURL("tmpldir/")}, - }, - ExtraHeaders: map[string]http.Header{ - "bar": {"Authorization": {"Basic xxxxx"}}, - }, - }, cfg) -} - -func TestParsePluginFlags(t *testing.T) { - t.Parallel() - cfg := &Config{} - err := cfg.ParsePluginFlags(nil) - require.NoError(t, err) - - cfg = &Config{} - err = cfg.ParsePluginFlags([]string{"foo=bar"}) - require.NoError(t, err) - assert.EqualValues(t, &Config{Plugins: map[string]PluginConfig{"foo": {Cmd: "bar"}}}, cfg) -} - func TestConfig_String(t *testing.T) { t.Run("defaults", func(t *testing.T) { c := &Config{} - c.ApplyDefaults() + c.applyDefaults() expected := `--- inputFiles: ['-'] @@ -675,7 +572,7 @@ func TestApplyDefaults(t *testing.T) { t.Parallel() cfg := &Config{} - cfg.ApplyDefaults() + cfg.applyDefaults() assert.EqualValues(t, []string{"-"}, cfg.InputFiles) assert.EqualValues(t, []string{"-"}, cfg.OutputFiles) assert.Empty(t, cfg.OutputDir) @@ -686,7 +583,7 @@ func TestApplyDefaults(t *testing.T) { InputDir: "in", } - cfg.ApplyDefaults() + cfg.applyDefaults() assert.Empty(t, cfg.InputFiles) assert.Empty(t, cfg.OutputFiles) assert.Equal(t, ".", cfg.OutputDir) @@ -699,7 +596,7 @@ func TestApplyDefaults(t *testing.T) { RDelim: ">", } - cfg.ApplyDefaults() + cfg.applyDefaults() assert.Empty(t, cfg.InputFiles) assert.EqualValues(t, []string{"-"}, cfg.OutputFiles) assert.Empty(t, cfg.OutputDir) @@ -711,7 +608,7 @@ func TestApplyDefaults(t *testing.T) { ExecPipe: true, } - cfg.ApplyDefaults() + cfg.applyDefaults() assert.Empty(t, cfg.InputFiles) assert.EqualValues(t, []string{"-"}, cfg.OutputFiles) assert.Empty(t, cfg.OutputDir) @@ -722,7 +619,7 @@ func TestApplyDefaults(t *testing.T) { OutputMap: "bar", } - cfg.ApplyDefaults() + cfg.applyDefaults() assert.Empty(t, cfg.InputFiles) assert.Empty(t, cfg.Input) assert.Empty(t, cfg.OutputFiles) @@ -733,131 +630,28 @@ func TestApplyDefaults(t *testing.T) { func TestGetMode(t *testing.T) { c := &Config{} - m, o, err := c.GetMode() + m, o, err := c.getMode() require.NoError(t, err) assert.Equal(t, iohelpers.NormalizeFileMode(0), m) assert.False(t, o) c = &Config{OutMode: "755"} - m, o, err = c.GetMode() + m, o, err = c.getMode() require.NoError(t, err) assert.Equal(t, iohelpers.NormalizeFileMode(0o755), m) assert.True(t, o) c = &Config{OutMode: "0755"} - m, o, err = c.GetMode() + m, o, err = c.getMode() require.NoError(t, err) assert.Equal(t, iohelpers.NormalizeFileMode(0o755), m) assert.True(t, o) c = &Config{OutMode: "foo"} - _, _, err = c.GetMode() - require.Error(t, err) -} - -func TestParseHeaderArgs(t *testing.T) { - args := []string{ - "foo=Accept: application/json", - "bar=Authorization: Bearer supersecret", - } - expected := map[string]http.Header{ - "foo": { - "Accept": {"application/json"}, - }, - "bar": { - "Authorization": {"Bearer supersecret"}, - }, - } - parsed, err := parseHeaderArgs(args) - require.NoError(t, err) - assert.Equal(t, expected, parsed) - - _, err = parseHeaderArgs([]string{"foo"}) - require.Error(t, err) - - _, err = parseHeaderArgs([]string{"foo=bar"}) - require.Error(t, err) - - args = []string{ - "foo=Accept: application/json", - "foo=Foo: bar", - "foo=foo: baz", - "foo=fOO: qux", - "bar=Authorization: Bearer supersecret", - } - expected = map[string]http.Header{ - "foo": { - "Accept": {"application/json"}, - "Foo": {"bar", "baz", "qux"}, - }, - "bar": { - "Authorization": {"Bearer supersecret"}, - }, - } - parsed, err = parseHeaderArgs(args) - require.NoError(t, err) - assert.Equal(t, expected, parsed) -} - -func TestParseDatasourceArgNoAlias(t *testing.T) { - alias, ds, err := parseDatasourceArg("foo.json") - require.NoError(t, err) - assert.Equal(t, "foo", alias) - assert.Empty(t, ds.URL.Scheme) - - _, _, err = parseDatasourceArg("../foo.json") - require.Error(t, err) - - _, _, err = parseDatasourceArg("ftp://example.com/foo.yml") + _, _, err = c.getMode() require.Error(t, err) } -func TestParseDatasourceArgWithAlias(t *testing.T) { - alias, ds, err := parseDatasourceArg("data=foo.json") - require.NoError(t, err) - assert.Equal(t, "data", alias) - assert.EqualValues(t, &url.URL{Path: "foo.json"}, ds.URL) - - alias, ds, err = parseDatasourceArg("data=/otherdir/foo.json") - require.NoError(t, err) - assert.Equal(t, "data", alias) - assert.Equal(t, "file", ds.URL.Scheme) - assert.True(t, ds.URL.IsAbs()) - assert.Equal(t, "/otherdir/foo.json", ds.URL.Path) - - if runtime.GOOS == "windows" { - alias, ds, err = parseDatasourceArg("data=foo.json") - require.NoError(t, err) - assert.Equal(t, "data", alias) - assert.EqualValues(t, &url.URL{Path: "foo.json"}, ds.URL) - - alias, ds, err = parseDatasourceArg(`data=\otherdir\foo.json`) - require.NoError(t, err) - assert.Equal(t, "data", alias) - assert.EqualValues(t, &url.URL{Scheme: "file", Path: "/otherdir/foo.json"}, ds.URL) - - alias, ds, err = parseDatasourceArg("data=C:\\windowsdir\\foo.json") - require.NoError(t, err) - assert.Equal(t, "data", alias) - assert.EqualValues(t, &url.URL{Scheme: "file", Path: "C:/windowsdir/foo.json"}, ds.URL) - - alias, ds, err = parseDatasourceArg("data=\\\\somehost\\share\\foo.json") - require.NoError(t, err) - assert.Equal(t, "data", alias) - assert.EqualValues(t, &url.URL{Scheme: "file", Host: "somehost", Path: "/share/foo.json"}, ds.URL) - } - - alias, ds, err = parseDatasourceArg("data=sftp://example.com/blahblah/foo.json") - require.NoError(t, err) - assert.Equal(t, "data", alias) - assert.EqualValues(t, &url.URL{Scheme: "sftp", Host: "example.com", Path: "/blahblah/foo.json"}, ds.URL) - - alias, ds, err = parseDatasourceArg("merged=merge:./foo.yaml|http://example.com/bar.json%3Ffoo=bar") - require.NoError(t, err) - assert.Equal(t, "merged", alias) - assert.EqualValues(t, &url.URL{Scheme: "merge", Opaque: "./foo.yaml|http://example.com/bar.json%3Ffoo=bar"}, ds.URL) -} - func TestPluginConfig_UnmarshalYAML(t *testing.T) { in := `foo` out := PluginConfig{} |
