get.porter.sh/porter@v1.3.0/pkg/mixin/query/manifest_generator_test.go (about) 1 package query 2 3 import ( 4 "context" 5 "testing" 6 7 "get.porter.sh/porter/pkg/config" 8 "get.porter.sh/porter/pkg/manifest" 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestManifestGenerator_BuildInput(t *testing.T) { 14 c := config.NewTestConfig(t) 15 c.TestContext.AddTestFile("testdata/porter.yaml", config.Name) 16 17 m, err := manifest.LoadManifestFrom(context.Background(), c.Config, config.Name) 18 require.NoError(t, err, "could not load manifest") 19 20 g := ManifestGenerator{Manifest: m} 21 22 t.Run("no config", func(t *testing.T) { 23 input := g.buildInputForMixin("exec") 24 25 assert.Nil(t, input.Config, "exec mixin should have no config") 26 assert.Len(t, input.Actions, 4, "expected 4 actions") 27 28 require.Contains(t, input.Actions, "install") 29 assert.Len(t, input.Actions["install"], 2, "expected 2 exec install steps") 30 31 require.Contains(t, input.Actions, "upgrade") 32 assert.Len(t, input.Actions["upgrade"], 1, "expected 1 exec upgrade steps") 33 34 require.Contains(t, input.Actions, "uninstall") 35 assert.Len(t, input.Actions["uninstall"], 1, "expected 1 exec uninstall steps") 36 37 require.Contains(t, input.Actions, "status") 38 assert.Len(t, input.Actions["status"], 1, "expected 1 exec status steps") 39 }) 40 41 t.Run("with config", func(t *testing.T) { 42 input := g.buildInputForMixin("az") 43 assert.Equal(t, map[string]interface{}{"extensions": []interface{}{"iot"}}, input.Config, "az mixin should have config") 44 }) 45 }