diff --git a/config/clients/dotnet/template/OpenFgaClientTests.mustache b/config/clients/dotnet/template/OpenFgaClientTests.mustache index 1f81f3c7..acb16976 100644 --- a/config/clients/dotnet/template/OpenFgaClientTests.mustache +++ b/config/clients/dotnet/template/OpenFgaClientTests.mustache @@ -786,6 +786,7 @@ public class {{appShortName}}ClientTests { Object = "document:roadmap", } }, + Deletes = new List(), // should not get passed }; var response = await fgaClient.Write(body, new ClientWriteOptions { AuthorizationModelId = "01GXSA8YR785C4FYS3C0RTG7B1", diff --git a/config/clients/go/template/client/client_test.mustache b/config/clients/go/template/client/client_test.mustache index 83fb9238..72637ef9 100644 --- a/config/clients/go/template/client/client_test.mustache +++ b/config/clients/go/template/client/client_test.mustache @@ -961,6 +961,7 @@ func Test{{appShortName}}Client(t *testing.T) { Relation: "viewer", Object: "document:roadmap", } }, + Deletes: []ClientTupleKeyWithoutCondition{}, } options := ClientWriteOptions{ AuthorizationModelId: {{packageName}}.PtrString("01GAHCE4YVKPQEKZQHT2R89MQV"), diff --git a/config/clients/js/template/tests/client.test.ts.mustache b/config/clients/js/template/tests/client.test.ts.mustache index 1b0828e5..edd6c2a7 100644 --- a/config/clients/js/template/tests/client.test.ts.mustache +++ b/config/clients/js/template/tests/client.test.ts.mustache @@ -353,6 +353,27 @@ describe("{{appTitleCaseName}} Client", () => { expect(scope1.isDone()).toBe(true); } }); + + it("should properly call the {{appShortName}} Write API when providing one empty array", async () => { + const tuple = { + user: "user:81684243-9356-4421-8fbf-a4f8d36aa31b", + relation: "admin", + object: "workspace:1", + }; + const scope = nocks.write(baseConfig.storeId!); + + expect(scope.isDone()).toBe(false); + const data = await fgaClient.write({ + writes: [tuple], + deletes: [] + }, { + authorizationModelId: "01GXSA8YR785C4FYS3C0RTG7B1", + }); + + expect(scope.isDone()).toBe(true); + expect(data.writes.length).toBe(1); + expect(data.deletes.length).toBe(0); + }); }); describe("WriteTuples", () => { diff --git a/config/clients/python/template/client/test_client.mustache b/config/clients/python/template/client/test_client.mustache index 587853a8..53614b0d 100644 --- a/config/clients/python/template/client/test_client.mustache +++ b/config/clients/python/template/client/test_client.mustache @@ -1316,6 +1316,7 @@ class TestOpenFgaClient(IsolatedAsyncioTestCase): user="user:81684243-9356-4421-8fbf-a4f8d36aa31b", ) ], + writes=[], ) transaction = WriteTransactionOpts(disabled=True, max_per_chunk=1, max_parallel_requests=10) {{#asyncio}}await {{/asyncio}}api_client.write( diff --git a/config/clients/python/template/client/test_client_sync.mustache b/config/clients/python/template/client/test_client_sync.mustache index d31204f7..76961dc6 100644 --- a/config/clients/python/template/client/test_client_sync.mustache +++ b/config/clients/python/template/client/test_client_sync.mustache @@ -1316,6 +1316,7 @@ class TestOpenFgaClient(IsolatedAsyncioTestCase): user="user:81684243-9356-4421-8fbf-a4f8d36aa31b", ) ], + writes=[], ) transaction = WriteTransactionOpts(disabled=True, max_per_chunk=1, max_parallel_requests=10) api_client.write(