github.com/openfga/openfga@v1.5.4-rc1/pkg/server/test/read_assertions.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  	"github.com/openfga/openfga/pkg/testutils"
    13  )
    14  
    15  func TestReadAssertionQuery(t *testing.T, datastore storage.OpenFGADatastore) {
    16  	type readAssertionsQueryTest struct {
    17  		_name            string
    18  		request          *openfgav1.ReadAssertionsRequest
    19  		expectedResponse *openfgav1.ReadAssertionsResponse
    20  		expectedError    error
    21  	}
    22  
    23  	var tests = []readAssertionsQueryTest{
    24  		{
    25  			_name:   "ReturnsAssertionModelNotFound",
    26  			request: &openfgav1.ReadAssertionsRequest{StoreId: "store", AuthorizationModelId: "test"},
    27  			expectedResponse: &openfgav1.ReadAssertionsResponse{
    28  				AuthorizationModelId: "test",
    29  				Assertions:           []*openfgav1.Assertion{},
    30  			},
    31  		},
    32  	}
    33  
    34  	ctx := context.Background()
    35  
    36  	for _, test := range tests {
    37  		t.Run(test._name, func(t *testing.T) {
    38  			store := testutils.CreateRandomString(10)
    39  
    40  			query := commands.NewReadAssertionsQuery(datastore)
    41  			test.request.StoreId = store
    42  			actualResponse, actualError := query.Execute(ctx, test.request.GetStoreId(), test.request.GetAuthorizationModelId())
    43  
    44  			if test.expectedError != nil {
    45  				require.ErrorIs(t, actualError, test.expectedError)
    46  			} else {
    47  				require.NoError(t, actualError)
    48  				require.Equal(t, test.expectedResponse, actualResponse)
    49  			}
    50  		})
    51  	}
    52  }