diff --git a/packages/arcgis-rest-portal/src/groups/get.ts b/packages/arcgis-rest-portal/src/groups/get.ts index 491d46d13d..bfac9603b2 100644 --- a/packages/arcgis-rest-portal/src/groups/get.ts +++ b/packages/arcgis-rest-portal/src/groups/get.ts @@ -136,15 +136,12 @@ export interface ISearchGroupUsersResult { */ export function searchGroupUsers( id: string, - searchOptions: ISearchGroupUsersOptions + searchOptions?: ISearchGroupUsersOptions ): Promise { const url = `${getPortalUrl(searchOptions)}/community/groups/${id}/userlist`; - const options = appendCustomParams( - searchOptions, - ["name", "num", "start", "sortField", "sortOrder", "joined", "memberType"], - { - httpMethod: "GET" - } - ); + const options: IRequestOptions = { + ...{ httpMethod: "GET" }, + ...searchOptions + }; return request(url, options); } diff --git a/packages/arcgis-rest-portal/test/groups/get.test.ts b/packages/arcgis-rest-portal/test/groups/get.test.ts index 4cc3a7f41f..beeeac5df0 100644 --- a/packages/arcgis-rest-portal/test/groups/get.test.ts +++ b/packages/arcgis-rest-portal/test/groups/get.test.ts @@ -104,33 +104,54 @@ describe("groups", () => { }); }); - it("should search group users", done => { - fetchMock.once("*", SearchGroupUsersResponse); + describe("search group users", function() { + it("should search group users", done => { + fetchMock.once("*", SearchGroupUsersResponse); - searchGroupUsers("5bc", { - params: { - name: "jupe", - sortField: "fullname", - sortOrder: "asc", - num: 2, - start: 2, - joined: [null, 123456], - memberType: "member" - }, - ...MOCK_REQOPTS - }) - .then(response => { - expect(fetchMock.called()).toEqual(true); - const [url, options]: [string, RequestInit] = fetchMock.lastCall("*"); - expect(url).toEqual( - "https://myorg.maps.arcgis.com/sharing/rest/community/groups/5bc/userlist?f=json&name=jupe&sortField=fullname&sortOrder=asc&num=2&start=2&joined=%2C123456&memberType=member&token=fake-token" - ); - expect(options.method).toBe("GET"); - done(); + searchGroupUsers("5bc", { + params: { + name: "jupe", + sortField: "fullname", + sortOrder: "asc", + num: 2, + start: 2, + joined: [null, 123456], + memberType: "member" + }, + ...MOCK_REQOPTS }) - .catch(e => { - fail(e); - }); + .then(response => { + expect(fetchMock.called()).toEqual(true); + const [url, options]: [string, RequestInit] = fetchMock.lastCall( + "*" + ); + expect(url).toEqual( + "https://myorg.maps.arcgis.com/sharing/rest/community/groups/5bc/userlist?f=json&name=jupe&sortField=fullname&sortOrder=asc&num=2&start=2&joined=%2C123456&memberType=member&token=fake-token" + ); + expect(options.method).toBe("GET"); + done(); + }) + .catch(e => { + fail(e); + }); + }); + + it("shouldn't require searchOptions", done => { + fetchMock.once("*", SearchGroupUsersResponse); + + searchGroupUsers("5bc") + .then(_ => { + expect(fetchMock.called()).toEqual(true); + const [__, options]: [string, RequestInit] = fetchMock.lastCall( + "*" + ); + expect(options.method).toBe("GET"); + done(); + }) + .catch(e => { + fail(e); + }); + }); }); }); });