airshipctl/pkg/bootstrap/cloudinit/cloud-init_test.go
Kostiantyn Kalynovskyi ca0ecbd3ab Change document labeling
Now document labeling would allow to have same document to be deployed
to different clusters, ephemeral or target at the same type.

Change-Id: Ia1bb618c322c19c4db3c47b3d19c630b61125f5c
2020-02-19 20:51:21 +00:00

73 lines
1.7 KiB
Go

package cloudinit
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"opendev.org/airship/airshipctl/pkg/document"
"opendev.org/airship/airshipctl/testutil"
)
func TestGetCloudData(t *testing.T) {
fSys := testutil.SetupTestFs(t, "testdata")
bundle, err := document.NewBundle(fSys, "/", "/")
require.NoError(t, err, "Building Bundle Failed")
tests := []struct {
selector string
expectedUserData []byte
expectedNetData []byte
expectedErr error
}{
{
selector: "test=test",
expectedUserData: nil,
expectedNetData: nil,
expectedErr: document.ErrDocNotFound{
Selector: "test=test",
Kind: "Secret",
},
},
{
selector: "airshipit.org/ephemeral=false",
expectedUserData: nil,
expectedNetData: nil,
expectedErr: ErrDataNotSupplied{
DocName: "node1-bmc-secret1",
Key: "netconfig",
},
},
{
selector: "test=nodataforcfg",
expectedUserData: nil,
expectedNetData: nil,
expectedErr: ErrDataNotSupplied{
DocName: "node1-bmc-secret2",
Key: "netconfig",
},
},
{
selector: "airshipit.org/ephemeral=true",
expectedUserData: []byte("cloud-init"),
expectedNetData: []byte("netconfig\n"),
expectedErr: nil,
},
{
selector: "some-data in (true, True)",
expectedUserData: []byte("cloud-init"),
expectedNetData: []byte("netconfig\n"),
expectedErr: nil,
},
}
for _, tt := range tests {
actualUserData, actualNetData, actualErr := GetCloudData(bundle, tt.selector)
assert.Equal(t, tt.expectedUserData, actualUserData)
assert.Equal(t, tt.expectedNetData, actualNetData)
assert.Equal(t, tt.expectedErr, actualErr)
}
}