-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDataFilesBreadcrumbs.test.jsx
More file actions
134 lines (124 loc) · 3.8 KB
/
DataFilesBreadcrumbs.test.jsx
File metadata and controls
134 lines (124 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import React from 'react';
import { createMemoryHistory } from 'history';
import configureStore from 'redux-mock-store';
import renderComponent from 'utils/testing';
import DataFilesBreadcrumbs from './DataFilesBreadcrumbs';
import systemsFixture from '../fixtures/DataFiles.systems.fixture';
import filesFixture from '../fixtures/DataFiles.files.fixture';
import { projectsFixture } from '../../../redux/sagas/fixtures/projects.fixture';
import { fireEvent } from '@testing-library/react';
const mockStore = configureStore();
describe('DataFilesBreadcrumbs', () => {
it('render breadcrumbs', () => {
const store = mockStore({
systems: systemsFixture,
projects: projectsFixture,
});
const { getByText } = renderComponent(
<DataFilesBreadcrumbs
api="tapis"
scheme="private"
system="frontera.home.username"
path="/home/username/path/to/the/files"
section="FilesListing"
/>,
store,
createMemoryHistory()
);
// Check if the last part of the path is rendered as text
const filesText = getByText('files');
expect(filesText).toBeDefined();
expect(filesText.closest('a')).toBeNull();
});
it('renders correct breadcrumbs when in root of system', () => {
const store = mockStore({
systems: systemsFixture,
});
const { getByText } = renderComponent(
<DataFilesBreadcrumbs
api="tapis"
scheme="private"
system="frontera.home.username"
path="/"
section="FilesListing"
/>,
store,
createMemoryHistory()
);
// Check if the system name is rendered as text when in the root of the system
expect(getByText('frontera.home.username')).toBeDefined();
});
it('render breadcrumbs for projects', () => {
const store = mockStore({
systems: systemsFixture,
projects: projectsFixture,
files: filesFixture,
});
const { getByText } = renderComponent(
<DataFilesBreadcrumbs
api="tapis"
scheme="projects"
system="frontera.home.username"
path="/path/to/the/files"
section="FilesListing"
/>,
store,
createMemoryHistory()
);
// Check if the last part of the path is rendered as text for projects
const filesText = getByText('files');
expect(filesText).toBeDefined();
expect(filesText.closest('a')).toBeNull();
});
it('dispatches action to open full path modal on button click', () => {
const store = mockStore({
systems: systemsFixture,
projects: projectsFixture,
});
const { getByText } = renderComponent(
<DataFilesBreadcrumbs
api="tapis"
scheme="private"
system="frontera.home.username"
path="/home/username/path/to/the/files"
section="FilesListing"
/>,
store,
createMemoryHistory()
);
const viewFullPathButton = getByText('View Full Path');
fireEvent.click(viewFullPathButton);
const actions = store.getActions();
const expectedActions = {
type: 'DATA_FILES_TOGGLE_MODAL',
payload: {
operation: 'showpath',
props: {
file: {
system: 'frontera.home.username',
path: '/home/username/path/to/the/files',
},
},
},
};
expect(actions).toContainEqual(expectedActions);
});
it('renders pathComp, which is current directory', () => {
const store = mockStore({
systems: systemsFixture,
});
const { getByText } = renderComponent(
<DataFilesBreadcrumbs
api="tapis"
scheme="private"
system="frontera.home.username"
path="/home/username/path/to/the/files"
section="FilesListing"
/>,
store,
createMemoryHistory()
);
const pathComp = getByText('files');
expect(pathComp).toBeDefined();
});
});