X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f8d794c588b0a252bb8956efe2051697bff0d617..21abfcbaba4e8e735f353a1e3b030dd5dae8465b:/src/store/resource-type-filters/resource-type-filters.test.ts diff --git a/src/store/resource-type-filters/resource-type-filters.test.ts b/src/store/resource-type-filters/resource-type-filters.test.ts index 02f017edf3..95d0349f11 100644 --- a/src/store/resource-type-filters/resource-type-filters.test.ts +++ b/src/store/resource-type-filters/resource-type-filters.test.ts @@ -2,7 +2,7 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { getInitialResourceTypeFilters, serializeResourceTypeFilters, ObjectTypeFilter, CollectionTypeFilter } from './resource-type-filters'; +import { getInitialResourceTypeFilters, serializeResourceTypeFilters, ObjectTypeFilter, CollectionTypeFilter, ProcessTypeFilter, GroupTypeFilter } from './resource-type-filters'; import { ResourceKind } from '~/models/resource'; import { deselectNode } from '~/models/tree'; import { pipe } from 'lodash/fp'; @@ -47,4 +47,69 @@ describe("serializeResourceTypeFilters", () => { expect(serializedFilters) .toEqual(`["uuid","is_a",["${ResourceKind.COLLECTION}"]],["collections.properties.type","not in",["output"]]`); }); + + it("should serialize only main processes", () => { + const filters = pipe( + () => getInitialResourceTypeFilters(), + deselectNode(ObjectTypeFilter.PROJECT), + deselectNode(ProcessTypeFilter.CHILD_PROCESS), + deselectNode(ObjectTypeFilter.COLLECTION) + )(); + + const serializedFilters = serializeResourceTypeFilters(filters); + expect(serializedFilters) + .toEqual(`["uuid","is_a",["${ResourceKind.PROCESS}"]],["container_requests.requesting_container_uuid","=",null]`); + }); + + it("should serialize only child processes", () => { + const filters = pipe( + () => getInitialResourceTypeFilters(), + deselectNode(ObjectTypeFilter.PROJECT), + deselectNode(ProcessTypeFilter.MAIN_PROCESS), + deselectNode(ObjectTypeFilter.COLLECTION) + )(); + + const serializedFilters = serializeResourceTypeFilters(filters); + expect(serializedFilters) + .toEqual(`["uuid","is_a",["${ResourceKind.PROCESS}"]],["container_requests.requesting_container_uuid","!=",null]`); + }); + + it("should serialize all project types", () => { + const filters = pipe( + () => getInitialResourceTypeFilters(), + deselectNode(ObjectTypeFilter.PROCESS), + deselectNode(ObjectTypeFilter.COLLECTION), + )(); + + const serializedFilters = serializeResourceTypeFilters(filters); + expect(serializedFilters) + .toEqual(`["uuid","is_a",["${ResourceKind.GROUP}"]]`); + }); + + it("should serialize filter groups", () => { + const filters = pipe( + () => getInitialResourceTypeFilters(), + deselectNode(GroupTypeFilter.PROJECT) + deselectNode(ObjectTypeFilter.PROCESS), + deselectNode(ObjectTypeFilter.COLLECTION), + )(); + + const serializedFilters = serializeResourceTypeFilters(filters); + expect(serializedFilters) + .toEqual(`["uuid","is_a",["${ResourceKind.GROUP}"]],["groups.group_class","=","filter"]`); + }); + + it("should serialize projects (normal)", () => { + const filters = pipe( + () => getInitialResourceTypeFilters(), + deselectNode(GroupTypeFilter.FILTER_GROUP) + deselectNode(ObjectTypeFilter.PROCESS), + deselectNode(ObjectTypeFilter.COLLECTION), + )(); + + const serializedFilters = serializeResourceTypeFilters(filters); + expect(serializedFilters) + .toEqual(`["uuid","is_a",["${ResourceKind.GROUP}"]],["groups.group_class","=","project"]`); + }); + });