istio

Форк
0
/
fs_renderer_test.go 
103 строки · 2.8 Кб
1
// Copyright Istio Authors
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15
package helm
16

17
import (
18
	"errors"
19
	"os"
20
	"testing"
21

22
	"helm.sh/helm/v3/pkg/chart"
23
)
24

25
func TestRenderManifest(t *testing.T) {
26
	tests := []struct {
27
		desc                  string
28
		inValues              string
29
		inChart               chart.Chart
30
		startRender           bool
31
		inPath                string
32
		objFileTemplateReader Renderer
33
		wantResult            string
34
		wantErr               error
35
	}{
36
		{
37
			desc:                  "not-started",
38
			inValues:              "",
39
			startRender:           false,
40
			inChart:               chart.Chart{},
41
			objFileTemplateReader: Renderer{},
42
			wantResult:            "",
43
			wantErr:               errors.New("fileTemplateRenderer for not started in renderChart"),
44
		},
45
		{
46
			desc: "started-random-template",
47
			inValues: `
48
description: test
49
`,
50
			inPath:      "testdata/render/Chart.yaml",
51
			startRender: true,
52
			objFileTemplateReader: Renderer{
53
				namespace:     "name-space",
54
				componentName: "foo-component",
55
				dir:           "testdata/render",
56
				files:         os.DirFS("."),
57
			},
58
			wantResult: `apiVersion: v1
59
description: test
60
name: addon
61
version: 1.1.0
62
appVersion: 1.1.0
63
tillerVersion: ">=2.7.2"
64
keywords:
65
  - istio-addon
66

67
---
68
`,
69
			wantErr: nil,
70
		},
71
		{
72
			desc:        "bad-file-path",
73
			inValues:    "",
74
			inPath:      "foo/bar/Chart.yaml",
75
			startRender: true,
76
			objFileTemplateReader: Renderer{
77
				namespace:     "name-space",
78
				componentName: "foo-component",
79
				dir:           "foo/bar",
80
				files:         os.DirFS("."),
81
			},
82
			wantResult: "",
83
			wantErr:    errors.New(`component "foo-component" does not exist`),
84
		},
85
	}
86
	for _, tt := range tests {
87
		t.Run(tt.desc, func(t *testing.T) {
88
			if tt.startRender {
89
				err := tt.objFileTemplateReader.Run()
90
				if err != nil && tt.wantErr != nil {
91
					if err.Error() != tt.wantErr.Error() {
92
						t.Errorf("%s: expected err: %q got %q", tt.desc, tt.wantErr.Error(), err.Error())
93
					}
94
				}
95
			}
96
			if res, err := tt.objFileTemplateReader.RenderManifest(tt.inValues); res != tt.wantResult ||
97
				((tt.wantErr != nil && err == nil) || (tt.wantErr == nil && err != nil)) {
98
				t.Errorf("%s: \nexpected vals: \n%v\n\nexpected err:%v\ngot vals:\n%v\n\n got err %v",
99
					tt.desc, tt.wantResult, tt.wantErr, res, err)
100
			}
101
		})
102
	}
103
}
104

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.