* Update the mask manager to always allow fields containing a prefix which matchs a passedThroughPrefix. This will be useful when updating plugin based host catalog and sets since attributes and secrets cannot be contained in the mask manager mapping.
46 lines
2.5 KiB
Go
46 lines
2.5 KiB
Go
package handlers
|
|
|
|
import (
|
|
"testing"
|
|
|
|
pb "github.com/hashicorp/boundary/sdk/pbs/controller/protooptions"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestMaskManager(t *testing.T) {
|
|
mm, err := NewMaskManager(MaskDestination{&pb.TestProperlyNamedFields{}}, MaskSource{&pb.TestBase{}})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, []string(nil), mm.Translate([]string{"doesnt_exist"}))
|
|
assert.Equal(t, []string{"OtherFirstField"}, mm.Translate([]string{"first_field"}))
|
|
assert.Equal(t, []string{"OtherFirstField"}, mm.Translate([]string{"first_field", "doesnt_exist"}))
|
|
assert.Equal(t, []string(nil), mm.Translate([]string{"FiRsT_fIeLd"}))
|
|
assert.Equal(t, []string{"other_second_field"}, mm.Translate([]string{"strangly_formatted_field"}))
|
|
assert.Equal(t, []string{"other_second_field", "other_field_3"}, mm.Translate([]string{"strangly_formatted_field", "field3"}))
|
|
|
|
// the passedThroughPrefix allows fields to be passed through unmodified
|
|
assert.Equal(t, []string{"OtherFirstField", "attributes.doesnt_exist"}, mm.Translate([]string{"first_field", "attributes.doesnt_exist"}, "attributes."))
|
|
// the passedThroughPrefix is ignored if the field already matches a mapped value
|
|
assert.Equal(t, []string{"other_second_field", "other_field_3"}, mm.Translate([]string{"strangly_formatted_field", "field3"}, "strangely_"))
|
|
}
|
|
|
|
func TestMaskManager_Split(t *testing.T) {
|
|
mm, err := NewMaskManager(MaskDestination{&pb.TestProperlyNamedFields{}}, MaskSource{&pb.TestBaseSplit1{}, &pb.TestBaseSplit2{}})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, []string(nil), mm.Translate([]string{"doesnt_exist"}))
|
|
assert.Equal(t, []string{"OtherFirstField"}, mm.Translate([]string{"first_field"}))
|
|
assert.Equal(t, []string{"OtherFirstField"}, mm.Translate([]string{"first_field", "doesnt_exist"}))
|
|
assert.Equal(t, []string(nil), mm.Translate([]string{"FiRsT_fIeLd"}))
|
|
assert.Equal(t, []string{"other_second_field"}, mm.Translate([]string{"strangly_formatted_field"}))
|
|
assert.Equal(t, []string{"other_second_field", "other_field_3"}, mm.Translate([]string{"strangly_formatted_field", "field3"}))
|
|
}
|
|
|
|
func TestMaskManager_errors(t *testing.T) {
|
|
_, err := NewMaskManager(MaskDestination{&pb.TestBase{}}, MaskSource{&pb.TestManyToOneMappings{}})
|
|
assert.Error(t, err)
|
|
_, err = NewMaskManager(MaskDestination{&pb.TestBase{}}, MaskSource{&pb.TestNameDoesntMap{}})
|
|
assert.Error(t, err)
|
|
_, err = NewMaskManager(MaskDestination{&pb.TestBase{}}, MaskSource{&pb.TestNotEnoughFields{}})
|
|
assert.Error(t, err)
|
|
}
|