...

Source file src/edge-infra.dev/pkg/lib/gcp/secretmanager/integration_test.go

Documentation: edge-infra.dev/pkg/lib/gcp/secretmanager

     1  package secretmanager
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"os"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/suite"
    10  
    11  	"edge-infra.dev/test/framework"
    12  	"edge-infra.dev/test/framework/gcp"
    13  	"edge-infra.dev/test/framework/integration"
    14  )
    15  
    16  func TestMain(m *testing.M) {
    17  	framework.HandleFlags()
    18  	os.Exit(m.Run())
    19  }
    20  
    21  type Suite struct {
    22  	*framework.Framework
    23  	projectID string
    24  	client    *SecretManager
    25  	ctx       context.Context
    26  }
    27  
    28  func TestSecretManagerClientIntegration(t *testing.T) {
    29  	f := framework.New("gcp-secretmanager").
    30  		Setup(integration.SkipIfNot).
    31  		Setup(gcp.NeedsProjectID)
    32  
    33  	s := &Suite{
    34  		f,
    35  		gcp.GCloud.ProjectID,
    36  		nil,
    37  		context.Background(),
    38  	}
    39  	f.BeforeEachTest(s.beforeEach)
    40  
    41  	suite.Run(t, s)
    42  }
    43  
    44  func (s *Suite) TestClient() {
    45  	name := s.UniqueName
    46  	val := []byte(fmt.Sprintf("test-crud-value-%s", s.UniqueName))
    47  	err := s.client.AddSecret(s.ctx, name, val, nil, false, nil, "")
    48  	s.NoError(err)
    49  
    50  	actual, err := s.client.GetLatestSecretValue(s.ctx, name)
    51  	s.NoError(err)
    52  	s.Equal(val, actual, "read value was not the same as created value")
    53  
    54  	val2 := []byte(fmt.Sprintf("test-crud-value-2-%s", s.UniqueName))
    55  	err = s.client.AddSecret(s.ctx, name, val2, nil, false, nil, "")
    56  	s.NoError(err)
    57  
    58  	updated, err := s.client.GetLatestSecretValue(s.ctx, name)
    59  	s.NoError(err)
    60  	s.Equal(val2, updated, "read value was not the same as just updated value")
    61  
    62  	err = s.client.DeleteSecret(s.ctx, name)
    63  	s.NoError(err)
    64  
    65  	secrets, err := s.client.ListSecrets(s.ctx, "")
    66  	s.NoError(err)
    67  
    68  	found := false
    69  	for _, s := range secrets {
    70  		if s.Name == name {
    71  			found = true
    72  		}
    73  	}
    74  	s.False(found, "found secret that was supposed to have been deleted")
    75  }
    76  
    77  func (s *Suite) beforeEach(_ *framework.Framework) {
    78  	c, err := NewWithOptions(s.ctx, s.projectID)
    79  	if err != nil {
    80  		s.FailNow("failed to create secret manager client", err)
    81  	}
    82  	s.client = &c
    83  }
    84  

View as plain text