merge-conflicts
[arvados-workbench2.git] / src / views-components / project-tree / project-tree.test.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import * as React from 'react';
6 import { mount } from 'enzyme';
7 import * as Enzyme from 'enzyme';
8 import * as Adapter from 'enzyme-adapter-react-16';
9 import ListItemIcon from '@material-ui/core/ListItemIcon';
10 import { Collapse } from '@material-ui/core';
11 import CircularProgress from '@material-ui/core/CircularProgress';
12
13 import ProjectTree from './project-tree';
14 import { TreeItem } from '../../components/tree/tree';
15 import { Project } from '../../models/project';
16 Enzyme.configure({ adapter: new Adapter() });
17
18 describe("ProjectTree component", () => {
19
20     it("should render ListItemIcon", () => {
21         const project: TreeItem<Project> = {
22             data: {
23                 name: "sample name",
24                 createdAt: "2018-06-12",
25                 modifiedAt: "2018-06-13",
26                 uuid: "uuid",
27                 ownerUuid: "ownerUuid",
28                 href: "href",
29                 kind: 'example'
30             },
31             id: "3",
32             open: true,
33             active: true,
34             status: 1
35         };
36         const wrapper = mount(<ProjectTree projects={[project]} toggleOpen={jest.fn()} toggleActive={jest.fn()} />);
37
38         expect(wrapper.find(ListItemIcon)).toHaveLength(1);
39     });
40
41     it("should render 2 ListItemIcons", () => {
42         const project: Array<TreeItem<Project>> = [
43             {
44                 data: {
45                     name: "sample name",
46                     createdAt: "2018-06-12",
47                     modifiedAt: "2018-06-13",
48                     uuid: "uuid",
49                     ownerUuid: "ownerUuid",
50                     href: "href",
51                     kind: 'example'
52                 },
53                 id: "3",
54                 open: false,
55                 active: true,
56                 status: 1
57             },
58             {
59                 data: {
60                     name: "sample name",
61                     createdAt: "2018-06-12",
62                     modifiedAt: "2018-06-13",
63                     uuid: "uuid",
64                     ownerUuid: "ownerUuid",
65                     href: "href",
66                     kind: 'example'
67                 },
68                 id: "3",
69                 open: false,
70                 active: true,
71                 status: 1
72             }
73         ];
74         const wrapper = mount(<ProjectTree projects={project} toggleOpen={jest.fn()} toggleActive={jest.fn()} />);
75
76         expect(wrapper.find(ListItemIcon)).toHaveLength(2);
77     });
78
79     it("should render Collapse", () => {
80         const project: Array<TreeItem<Project>> = [
81             {
82                 data: {
83                     name: "sample name",
84                     createdAt: "2018-06-12",
85                     modifiedAt: "2018-06-13",
86                     uuid: "uuid",
87                     ownerUuid: "ownerUuid",
88                     href: "href",
89                     kind: 'example'
90                 },
91                 id: "3",
92                 open: true,
93                 active: true,
94                 status: 2,
95                 items: [
96                     {
97                         data: {
98                             name: "sample name",
99                             createdAt: "2018-06-12",
100                             modifiedAt: "2018-06-13",
101                             uuid: "uuid",
102                             ownerUuid: "ownerUuid",
103                             href: "href",
104                             kind: 'example'
105                         },
106                         id: "3",
107                         open: true,
108                         active: true,
109                         status: 1
110                     }
111                 ]
112             }
113         ];
114         const wrapper = mount(<ProjectTree projects={project} toggleOpen={jest.fn()} toggleActive={jest.fn()}/>);
115
116         expect(wrapper.find(Collapse)).toHaveLength(1);
117     });
118
119     it("should render CircularProgress", () => {
120         const project: TreeItem<Project> = {
121             data: {
122                 name: "sample name",
123                 createdAt: "2018-06-12",
124                 modifiedAt: "2018-06-13",
125                 uuid: "uuid",
126                 ownerUuid: "ownerUuid",
127                 href: "href",
128                 kind: 'example'
129             },
130             id: "3",
131             open: false,
132             active: true,
133             status: 1
134         };
135         const wrapper = mount(<ProjectTree projects={[project]} toggleOpen={jest.fn()} toggleActive={jest.fn()} />);
136
137         expect(wrapper.find(CircularProgress)).toHaveLength(1);
138     });
139 });