X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/68ac0f45eef3ed971615fb0a0849c950b74d7e06..714e665e783490e3710a772bc54c2c062965e812:/src/services/favorite-service/favorite-service.test.ts diff --git a/src/services/favorite-service/favorite-service.test.ts b/src/services/favorite-service/favorite-service.test.ts index 7e74b52c..d4bf9ac7 100644 --- a/src/services/favorite-service/favorite-service.test.ts +++ b/src/services/favorite-service/favorite-service.test.ts @@ -3,11 +3,11 @@ // SPDX-License-Identifier: AGPL-3.0 import { LinkService } from "../link-service/link-service"; -import { GroupsService, GroupContentsResource } from "../groups-service/groups-service"; +import { GroupsService } from "../groups-service/groups-service"; import { FavoriteService } from "./favorite-service"; -import { LinkClass, LinkResource } from "../../models/link"; -import { mockResourceService } from "../../common/api/common-resource-service.test"; -import { FilterBuilder } from "../../common/api/filter-builder"; +import { LinkClass } from "~/models/link"; +import { mockResourceService } from "~/common/api/common-resource-service.test"; +import { FilterBuilder } from "~/common/api/filter-builder"; describe("FavoriteService", () => { @@ -23,14 +23,14 @@ describe("FavoriteService", () => { linkService.create = jest.fn().mockReturnValue(Promise.resolve({ uuid: "newUuid" })); const favoriteService = new FavoriteService(linkService, groupService); - const newFavorite = await favoriteService.create({ userUuid: "userUuid", resourceUuid: "resourceUuid" }); + const newFavorite = await favoriteService.create({ userUuid: "userUuid", resource: { uuid: "resourceUuid", name: "resource" } }); expect(linkService.create).toHaveBeenCalledWith({ ownerUuid: "userUuid", tailUuid: "userUuid", headUuid: "resourceUuid", linkClass: LinkClass.STAR, - name: "resourceUuid" + name: "resource" }); expect(newFavorite.uuid).toEqual("newUuid"); @@ -38,8 +38,7 @@ describe("FavoriteService", () => { it("unmarks resource as favorite", async () => { const list = jest.fn().mockReturnValue(Promise.resolve({ items: [{ uuid: "linkUuid" }] })); - const filters = FilterBuilder - .create() + const filters = new FilterBuilder() .addEqual('tailUuid', "userUuid") .addEqual('headUuid', "resourceUuid") .addEqual('linkClass', LinkClass.STAR); @@ -49,29 +48,43 @@ describe("FavoriteService", () => { const newFavorite = await favoriteService.delete({ userUuid: "userUuid", resourceUuid: "resourceUuid" }); - expect(list.mock.calls[0][0].filters.getFilters()).toEqual(filters.getFilters()); + expect(list.mock.calls[0][0].filters).toEqual(filters.getFilters()); expect(linkService.delete).toHaveBeenCalledWith("linkUuid"); expect(newFavorite[0].uuid).toEqual("linkUuid"); }); it("lists favorite resources", async () => { const list = jest.fn().mockReturnValue(Promise.resolve({ items: [{ headUuid: "headUuid" }] })); - const listFilters = FilterBuilder - .create() + const listFilters = new FilterBuilder() .addEqual('tailUuid', "userUuid") .addEqual('linkClass', LinkClass.STAR); const contents = jest.fn().mockReturnValue(Promise.resolve({ items: [{ uuid: "resourceUuid" }] })); - const contentFilters = FilterBuilder.create().addIn('uuid', ["headUuid"]); + const contentFilters = new FilterBuilder().addIn('uuid', ["headUuid"]); linkService.list = list; groupService.contents = contents; const favoriteService = new FavoriteService(linkService, groupService); const favorites = await favoriteService.list("userUuid"); - expect(list.mock.calls[0][0].filters.getFilters()).toEqual(listFilters.getFilters()); + expect(list.mock.calls[0][0].filters).toEqual(listFilters.getFilters()); expect(contents.mock.calls[0][0]).toEqual("userUuid"); - expect(contents.mock.calls[0][1].filters.getFilters()).toEqual(contentFilters.getFilters()); + expect(contents.mock.calls[0][1].filters).toEqual(contentFilters.getFilters()); expect(favorites).toEqual({ items: [{ uuid: "resourceUuid" }] }); }); + it("checks if resources are present in favorites", async () => { + const list = jest.fn().mockReturnValue(Promise.resolve({ items: [{ headUuid: "foo" }] })); + const listFilters = new FilterBuilder() + .addIn("headUuid", ["foo", "oof"]) + .addEqual("tailUuid", "userUuid") + .addEqual("linkClass", LinkClass.STAR); + linkService.list = list; + const favoriteService = new FavoriteService(linkService, groupService); + + const favorites = await favoriteService.checkPresenceInFavorites("userUuid", ["foo", "oof"]); + + expect(list.mock.calls[0][0].filters).toEqual(listFilters.getFilters()); + expect(favorites).toEqual({ foo: true, oof: false }); + }); + });