github.com/openfga/openfga@v1.5.4-rc1/pkg/server/test/delete_store.go (about)

     1  package test
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	openfgav1 "github.com/openfga/api/proto/openfga/v1"
     8  	"github.com/stretchr/testify/require"
     9  
    10  	"github.com/openfga/openfga/pkg/server/commands"
    11  	"github.com/openfga/openfga/pkg/storage"
    12  )
    13  
    14  func TestDeleteStore(t *testing.T, datastore storage.OpenFGADatastore) {
    15  	ctx := context.Background()
    16  
    17  	createStoreCmd := commands.NewCreateStoreCommand(datastore)
    18  	createStoreResponse, err := createStoreCmd.Execute(ctx, &openfgav1.CreateStoreRequest{
    19  		Name: "acme",
    20  	})
    21  	require.NoError(t, err)
    22  
    23  	type deleteStoreTest struct {
    24  		_name   string
    25  		request *openfgav1.DeleteStoreRequest
    26  		err     error
    27  	}
    28  	var tests = []deleteStoreTest{
    29  		{
    30  			_name: "Execute_Delete_Store_With_Non_Existent_Store_Succeeds",
    31  			request: &openfgav1.DeleteStoreRequest{
    32  				StoreId: "unknownstore",
    33  			},
    34  		},
    35  		{
    36  			_name: "Execute_Succeeds",
    37  			request: &openfgav1.DeleteStoreRequest{
    38  				StoreId: createStoreResponse.GetId(),
    39  			},
    40  		},
    41  	}
    42  
    43  	deleteCmd := commands.NewDeleteStoreCommand(datastore)
    44  
    45  	for _, test := range tests {
    46  		t.Run(test._name, func(t *testing.T) {
    47  			_, err := deleteCmd.Execute(ctx, test.request)
    48  
    49  			if test.err != nil {
    50  				require.ErrorIs(t, err, test.err)
    51  			} else {
    52  				require.NoError(t, err)
    53  			}
    54  		})
    55  	}
    56  }