16115: Fixes filter building for list equality comparison.
authorLucas Di Pentima <lucas.dipentima@curii.com>
Mon, 9 May 2022 22:50:44 +0000 (19:50 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Mon, 9 May 2022 22:50:44 +0000 (19:50 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima@curii.com>

src/services/api-client-authorization-service/api-client-authorization-service.test.ts
src/services/api-client-authorization-service/api-client-authorization-service.ts
src/services/api/filter-builder.ts

index 31fa046ea05ae5ef4ae8fb8aa24b1469c8139ed5..3a271f5396e8f9e516ee1257c6e9c91fda6a1d1c 100644 (file)
@@ -55,11 +55,11 @@ describe('ApiClientAuthorizationService', () => {
             await apiClientAuthorizationService.listCollectionSharingTokens(uuid);
             expect(serverApi.get).toHaveBeenCalledWith(
                 `/api_client_authorizations`, {params: {
             await apiClientAuthorizationService.listCollectionSharingTokens(uuid);
             expect(serverApi.get).toHaveBeenCalledWith(
                 `/api_client_authorizations`, {params: {
-                    filters: '[["scopes","=","' + JSON.stringify([
+                    filters: JSON.stringify([["scopes","=",[
                         `GET /arvados/v1/collections/${uuid}`,
                         `GET /arvados/v1/collections/${uuid}/`,
                         `GET /arvados/v1/collections/${uuid}`,
                         `GET /arvados/v1/collections/${uuid}/`,
-                        `GET /arvados/v1/keep_services/accessible`,
-                    ]) + '"]]',
+                        'GET /arvados/v1/keep_services/accessible',
+                    ]]]),
                     select: undefined,
                 }}
             );
                     select: undefined,
                 }}
             );
index 012fdb15c927364b3a03f4eca356a18bbb3a6bd2..7c985dbba80c00bde82c697c5728409e97e682ae 100644 (file)
@@ -33,11 +33,11 @@ export class ApiClientAuthorizationService extends CommonService<ApiClientAuthor
         }
         return this.list({
             filters: new FilterBuilder()
         }
         return this.list({
             filters: new FilterBuilder()
-                .addEqual("scopes", JSON.stringify([
+                .addEqual("scopes", [
                     `GET /arvados/v1/collections/${uuid}`,
                     `GET /arvados/v1/collections/${uuid}/`,
                     `GET /arvados/v1/collections/${uuid}`,
                     `GET /arvados/v1/collections/${uuid}/`,
-                    "GET /arvados/v1/keep_services/accessible",
-                ])).getFilters()
+                    "GET /arvados/v1/keep_services/accessible"
+                ]).getFilters()
         });
     }
 }
\ No newline at end of file
         });
     }
 }
\ No newline at end of file
index d1a4fd08b6aa5b32500c727cb1ea1acbf695fd61..4809e7a80c83071b0d5889ce8a81b7b661bc4f83 100644 (file)
@@ -9,7 +9,7 @@ export function joinFilters(...filters: string[]) {
 export class FilterBuilder {
     constructor(private filters = "") { }
 
 export class FilterBuilder {
     constructor(private filters = "") { }
 
-    public addEqual(field: string, value?: string | boolean | null, resourcePrefix?: string) {
+    public addEqual(field: string, value?: string | string[] | boolean | null, resourcePrefix?: string) {
         return this.addCondition(field, "=", value, "", "", resourcePrefix);
     }
 
         return this.addCondition(field, "=", value, "", "", resourcePrefix);
     }