github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/swarmkit/manager/controlapi/common_test.go (about)

     1  package controlapi
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/docker/swarmkit/api"
     7  	"github.com/docker/swarmkit/testutils"
     8  	"github.com/stretchr/testify/assert"
     9  	"google.golang.org/grpc/codes"
    10  )
    11  
    12  func TestValidateAnnotations(t *testing.T) {
    13  	err := validateAnnotations(api.Annotations{})
    14  	assert.Error(t, err)
    15  	assert.Equal(t, codes.InvalidArgument, testutils.ErrorCode(err))
    16  
    17  	for _, good := range []api.Annotations{
    18  		{Name: "name"},
    19  		{Name: "n-me"},
    20  		{Name: "n_me"},
    21  		{Name: "n-m-e"},
    22  		{Name: "n--d"},
    23  	} {
    24  		err := validateAnnotations(good)
    25  		assert.NoError(t, err, "string: "+good.Name)
    26  	}
    27  
    28  	for _, bad := range []api.Annotations{
    29  		{Name: "_nam"},
    30  		{Name: ".nam"},
    31  		{Name: "-nam"},
    32  		{Name: "nam-"},
    33  		{Name: "n/me"},
    34  		{Name: "n&me"},
    35  		{Name: "////"},
    36  	} {
    37  		err := validateAnnotations(bad)
    38  		assert.Error(t, err, "string: "+bad.Name)
    39  	}
    40  }