MCPcopy Index your code
hub / github.com/commitdev/zero / TestParseModuleConfig

Function TestParseModuleConfig

internal/module/module_test.go:32–148  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

30}
31
32func TestParseModuleConfig(t *testing.T) {
33 testModuleSource := "../../tests/test_data/modules/ci"
34 var mod moduleconfig.ModuleConfig
35
36 t.Run("Loading module from source", func(t *testing.T) {
37 mod, _ = module.ParseModuleConfig(testModuleSource)
38 moduleconfig.ValidateZeroVersion(mod)
39
40 assert.Equal(t, "CI templates", mod.Name)
41 })
42
43 t.Run("Parameters are loaded", func(t *testing.T) {
44 param, err := findParameter(mod.Parameters, "platform")
45 if err != nil {
46 panic(err)
47 }
48 assert.Equal(t, "platform", param.Field)
49 assert.Equal(t, "CI Platform", param.Label)
50
51 })
52
53 t.Run("OmitFromProjectFile default", func(t *testing.T) {
54 param, err := findParameter(mod.Parameters, "platform")
55 if err != nil {
56 panic(err)
57 }
58 assert.Equal(t, false, param.OmitFromProjectFile, "OmitFromProjectFile should default to false")
59 useCredsParam, useCredsErr := findParameter(mod.Parameters, "useExistingAwsProfile")
60 if useCredsErr != nil {
61 panic(useCredsErr)
62 }
63 assert.Equal(t, true, useCredsParam.OmitFromProjectFile, "OmitFromProjectFile should be read from file")
64 })
65
66 t.Run("Parsing Conditions and Typed prompts from config", func(t *testing.T) {
67 param, err := findParameter(mod.Parameters, "profilePicker")
68 if err != nil {
69 panic(err)
70 }
71 assert.Equal(t, "AWSProfilePicker", param.Type)
72 assert.Equal(t, "KeyMatchCondition", param.Conditions[0].Action)
73 assert.Equal(t, "useExistingAwsProfile", param.Conditions[0].MatchField)
74 assert.Equal(t, "yes", param.Conditions[0].WhenValue)
75 })
76
77 t.Run("parsing envVarName from module config", func(t *testing.T) {
78 param, err := findParameter(mod.Parameters, "accessKeyId")
79 if err != nil {
80 panic(err)
81 }
82 assert.Equal(t, "AWS_ACCESS_KEY_ID", param.EnvVarName)
83 })
84
85 t.Run("TemplateConfig is unmarshaled", func(t *testing.T) {
86 mod, _ = module.ParseModuleConfig(testModuleSource)
87 assert.Equal(t, ".circleci", mod.TemplateConfig.OutputDir)
88 assert.Equal(t, "templates", mod.TemplateConfig.InputDir)
89 assert.Equal(t, []string{"<%", "%>"}, mod.TemplateConfig.Delimiters)

Callers

nothing calls this directly

Calls 3

ParseModuleConfigFunction · 0.92
ValidateZeroVersionFunction · 0.92
findParameterFunction · 0.85

Tested by

no test coverage detected