Skip to content

Commit e6ae9c4

Browse files
committed
fix(data_source/authorization_model): Fixed null pointer error (#15)
1 parent 2c1cdd3 commit e6ae9c4

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

internal/provider/authorizationmodel/authorization_model_client.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package authorizationmodel
22

33
import (
44
"context"
5+
"fmt"
56

67
"github.com/hashicorp/terraform-plugin-framework/types"
78

@@ -78,6 +79,10 @@ func (wrapper *AuthorizationModelClient) ReadLatestAuthorizationModel(ctx contex
7879
return nil, err
7980
}
8081

82+
if response.AuthorizationModel == nil {
83+
return nil, fmt.Errorf("unable to find authorization model")
84+
}
85+
8186
authorizationModel := *response.AuthorizationModel
8287

8388
return NewAuthorizationModelModelFromAuthorizationModel(authorizationModel), nil

internal/provider/authorizationmodel/authorization_model_data_source_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package authorizationmodel_test
22

33
import (
44
"fmt"
5+
"regexp"
56
"testing"
67

78
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
@@ -17,6 +18,11 @@ func TestAccAuthorizationModelDataSource(t *testing.T) {
1718
PreCheck: func() { acceptance.TestAccPreCheck(t) },
1819
ProtoV6ProviderFactories: acceptance.TestAccProtoV6ProviderFactories,
1920
Steps: []resource.TestStep{
21+
// Test no model
22+
{
23+
Config: testAccAuthorizationModelDataSourceConfigNoModel(),
24+
ExpectError: regexp.MustCompile("Client Error"),
25+
},
2026
// Read testing
2127
{
2228
Config: testAccAuthorizationModelDataSourceConfig(),
@@ -45,6 +51,20 @@ func TestAccAuthorizationModelDataSource(t *testing.T) {
4551
const expectedFirstAuthorizationModelDataSourceModelJson = `{"conditions":{},"schema_version":"1.1","type_definitions":[{"relations":{},"type":"document"}]}`
4652
const expectedLatestAuthorizationModelDataSourceModelJson = `{"conditions":{},"schema_version":"1.1","type_definitions":[{"relations":{},"type":"file"}]}`
4753

54+
func testAccAuthorizationModelDataSourceConfigNoModel() string {
55+
return fmt.Sprintf(`
56+
%[1]s
57+
58+
resource "openfga_store" "test" {
59+
name = "test"
60+
}
61+
62+
data "openfga_authorization_model" "latest" {
63+
store_id = openfga_store.test.id
64+
}
65+
`, acceptance.ProviderConfig)
66+
}
67+
4868
func testAccAuthorizationModelDataSourceConfig() string {
4969
return fmt.Sprintf(`
5070
%[1]s

0 commit comments

Comments
 (0)