--- /dev/null
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+import axios from "axios";
+import MockAdapter from "axios-mock-adapter";
+import { GroupsService } from "./groups-service";
+import { ApiActions } from "services/api/api-actions";
+
+describe("GroupsService", () => {
+
+ const axiosMock = new MockAdapter(axios);
+
+ const actions: ApiActions = {
+ progressFn: (id: string, working: boolean) => {},
+ errorFn: (id: string, message: string) => {}
+ };
+
+ beforeEach(() => {
+ axiosMock.reset();
+ });
+
+ it("#contents", async () => {
+ axiosMock
+ .onGet("/groups/1/contents")
+ .reply(200, {
+ kind: "kind",
+ offset: 2,
+ limit: 10,
+ items: [{
+ modified_at: "now"
+ }],
+ items_available: 20
+ });
+
+ const groupsService = new GroupsService(axios, actions);
+ const resource = await groupsService.contents("1", { limit: 10, offset: 1 });
+ expect(resource).toEqual({
+ kind: "kind",
+ offset: 2,
+ limit: 10,
+ items: [{
+ modifiedAt: "now"
+ }],
+ itemsAvailable: 20
+ });
+ });
+});