Skip to content

Commit e772a2a

Browse files
authored
Merging master branch from oslabs/beta to oslabs development branch (#109)
These changes are from Docketeer 7.0 and are the final edits.
2 parents 0092570 + a0e78dd commit e772a2a

File tree

176 files changed

+15107
-3680
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

176 files changed

+15107
-3680
lines changed

.DS_Store

8 KB
Binary file not shown.

.gitignore

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
node_modules/
2-
build/
3-
coverage
4-
.DS_Store
2+
security/
3+
thumbs.db
4+
.idea/
5+
package-lock.json
6+
.webpack.config.js.icloud
7+
src/.index.js.icloud
8+
src/.store.js.icloud
9+
src/components/display/.RunningContainers.js.icloud
10+
src/components/display/.StoppedContainers.js.icloud
11+
src/database/docketeerdb
12+
server/database/docketeerdb
513
.env
614
.idea/
715
thumbs.db
@@ -10,3 +18,4 @@ security/
1018
src/database/docketeerdb
1119
package-lock.json
1220
yarn.lock
21+
coverage

.husky/commit-msg

Lines changed: 0 additions & 4 deletions
This file was deleted.

.husky/pre-commit

Lines changed: 0 additions & 4 deletions
This file was deleted.

.vscode/settings.json

Lines changed: 0 additions & 8 deletions
This file was deleted.

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,8 @@ Users have real-time access to the total amount of resources (CPU, memory usage)
156156
Within the Image and Docker Compose tab, you pull images from DockerHub by providing `repo:version` or uploading a `.yml` file.
157157

158158
### ➮ Process Logs
159-
160-
You are now able to view logs for both running and stopped containers. You can filter logs by specifying the number of logs that you wish to receive (tail) as well as time (since). Process logs will help you analyze and debug problems faster by offering insights into what went wrong.
161-
![alt text](src/assets/images/processlogs.gif)
159+
View process logs from any number of running or stopped containers. The table is both exportable and sortable by any parameter. You can filter logs by specifying the number of logs that you wish to receive (tail) as well as time (since). Process logs will help you analyze and debug problems faster by offering insights into what went wrong.
160+
![alt text](assets/docketeer-process-logs.gif)
162161

163162
<br> For a full demo of Docketeer's features, visit [docketeer.org](https://www.docketeer.org/demo).
164163

@@ -191,7 +190,11 @@ npm run test
191190
Read our [contributing guide](https://github.com/open-source-labs/Docketeer/blob/master/CONTRIBUTING.md) for more information on how to purpose bugfixes, improvements, and new features to Docketeer.
192191

193192
### Authors
194-
193+
- Abigail Gerig [@4estgirl] (https://github.com/4estgirl) | [Linkedin] (https://www.linkedin.com/in/abigail-gerig/)
194+
- Trine Medina [@TrineMedina] (https://github.com/TrineMedina) | [Linkedin] (https://www.linkedin.com/in/trinemedina/)
195+
- Christian Looff [@cmlooff] (https://github.com/cmlooff) | [LinkedIn] (https://www.linkedin.com/in/christian-looff/)
196+
- Reuel Warner-Rosen [@Ruliwr] (https://github.com/Ruliwr) | [Linkedin] (https://www.linkedin.com/in/Ruliwr/)
197+
- Matt Dias [@Schmang13] (https://github.com/Schmang13) | [Linkedin] (https://www.linkedin.com/in/matthew-j-dias/)
195198
- Christina Son [@cson17](https://github.com/cson17) | [Linkedin](https://www.linkedin.com/in/christinason17/)
196199
- Fernando Luna [@lunaf-github](https://github.com/lunaf-github) | [Linkedin](https://www.linkedin.com/in/fernando-luna)
197200
- Austin Andrews [@austinandrews](https://github.com/austinandrews) | [Linkedin](https://www.linkedin.com/in/austinandrews17/)

__tests__/ContainersTab.test.js

Lines changed: 149 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,157 @@
1-
import React from 'react';
2-
import { configure, shallow } from 'enzyme'; // enzyme
3-
import Adapter from 'enzyme-adapter-react-16'; // enzyme
4-
5-
import Containers from '../src/tabs/Containers';
6-
7-
configure({ adapter: new Adapter() }); // enzyme
8-
9-
function shallowSetup() {
10-
const props = {
11-
runningList: [
12-
{
13-
block: '0B/0B',
14-
ID: 'a802306eeac3',
15-
CPUPerc: '0.17%',
16-
MemPerc: '0.11%',
17-
MemUsage: '2.195MiB/1.944GiB',
18-
Name: 'blissful_matsumoto',
19-
NetIO: '796B/0B',
20-
PIDs: '5',
21-
},
22-
],
23-
stoppedList: [
24-
{
25-
Name: 'zealous',
26-
ID: 'c902ec744095',
27-
Img: '84c5f6e03bf0',
28-
Created: '2 days ago',
29-
name: 'zealous_pare',
30-
},
31-
],
32-
};
33-
const enzymeWrapper = shallow(<Containers {...props} />);
34-
35-
return {
36-
props,
37-
enzymeWrapper,
38-
};
39-
}
40-
41-
describe('Running containers are being rendered', () => {
42-
const { enzymeWrapper } = shallowSetup();
43-
it('Should render <div> tag that has class renderContainers in Running', () => {
44-
expect(enzymeWrapper.type()).toEqual('div');
45-
expect(enzymeWrapper.hasClass('renderContainers')).toEqual(true);
46-
});
1+
import React, { Component } from 'react';
2+
import Containers from '../src/components/tabs/Containers';
473

48-
it('Should render the correct number of containers', () => {
49-
expect(enzymeWrapper.find('.containers').children().length).toEqual(1);
50-
expect(enzymeWrapper.find('.stopped-containers').children().length).toEqual(
51-
1
52-
);
53-
});
54-
});
4+
// Started to migrate to React-Testing-Library...
5+
import { create } from 'react-test-renderer';
6+
import { fireEvent, render, screen } from '@testing-library/react';
7+
import * as actions from '@testing-library/jest-dom';
558

56-
describe('It should render the exited containers', () => {
57-
const { enzymeWrapper } = shallowSetup();
58-
it('Should render <div> tag in Stopped', () => {
59-
expect(enzymeWrapper.type()).toEqual('div');
60-
});
9+
const props = {
10+
runningList: [
11+
{
12+
block: '0B/0B',
13+
ID: 'a802306eeac3',
14+
CPUPerc: '0.17%',
15+
MemPerc: '0.11%',
16+
MemUsage: '2.195MiB/1.944GiB',
17+
Name: 'blissful_matsumoto',
18+
NetIO: '796B/0B',
19+
PIDs: '5'
20+
}
21+
],
22+
stoppedList: [
23+
{
24+
Names: 'zealous',
25+
ID: 'c902ec744095',
26+
Img: '84c5f6e03bf0',
27+
Created: '2 days ago',
28+
name: 'zealous_pare'
29+
}
30+
]
31+
};
32+
/** Docketeer 7.0
33+
* This was the previous groups code, we left commented just incase it became useful down the road.
34+
*/
6135

62-
it('Should have className run-btn in Stopped component', () => {
63-
expect(
64-
enzymeWrapper.find('.stopped-button').props().children[0].props.className
65-
).toEqual('run-btn');
66-
});
36+
// Debug test
37+
// describe('Containers', () => {
38+
// test('Renders the Container Component', () => {
39+
// render(<Containers {...props} />);
40+
// // Screening the component
41+
// screen.debug();
42+
// });
43+
// });
6744

68-
it('ClassName run-btn in Stopped component have onClick function', () => {
69-
expect(
70-
enzymeWrapper.find('.stopped-button').props().children[0].props.onClick
71-
).toBeDefined();
72-
});
45+
// function shallowSetup() {
46+
// const props = {
47+
// runningList: [
48+
// {
49+
// block: '0B/0B',
50+
// ID: 'a802306eeac3',
51+
// CPUPerc: '0.17%',
52+
// MemPerc: '0.11%',
53+
// MemUsage: '2.195MiB/1.944GiB',
54+
// Name: 'blissful_matsumoto',
55+
// NetIO: '796B/0B',
56+
// PIDs: '5'
57+
// }
58+
// ],
59+
// stoppedList: [
60+
// {
61+
// Name: 'zealous',
62+
// ID: 'c902ec744095',
63+
// Img: '84c5f6e03bf0',
64+
// Created: '2 days ago',
65+
// name: 'zealous_pare'
66+
// }
67+
// ]
68+
// };
69+
// const reactWrapper = create(<Containers {...props} />);
7370

74-
it('Should have className stop-btn in Stopped component', () => {
75-
expect(
76-
enzymeWrapper.find('.stopped-button').props().children[1].props.className
77-
).toEqual('stop-btn');
78-
});
71+
// return {
72+
// props,
73+
// reactWrapper
74+
// };
75+
// }
76+
77+
// describe('Running containers are being rendered', () => {
78+
// test('Should render <div> tag that has title renderContainers in Running', () => {
79+
// // Testing for if there is a container with the title of renderContainer
80+
// render(<Containers {...props} />);
81+
82+
// const renderContainer = screen.getByTitle('renderContainers');
83+
// expect(renderContainer).toHaveClass('renderContainers');
84+
// });
85+
86+
// test('Should render the correct number of containers', () => {
87+
// const { container } = render(<Containers {...props} />);
88+
// const containers = container.getElementsByClassName('containers');
89+
// expect(containers.length).toBe(1);
90+
// });
91+
// });
92+
93+
// describe('It should render the exited containers', () => {
94+
// test('Should have a className run-btn in Stopped component', () => {
95+
// render(<Containers {...props} />);
96+
97+
// const runBtnRender = screen.getByTestId('run-btn');
98+
99+
// expect(runBtnRender).toHaveClass('run-btn');
100+
// });
101+
102+
/** Docketeer 7.0
103+
* These are all preliminary tests that were not veted out. Could be useful as a starting point.
104+
*/
105+
106+
//! NEED TO FIGURE OUT HOW TO ADD ONCLICK TEST
107+
// test('ClassName run-btn in stopped component have onClick function', () => {
108+
// const handleOnClick = jest.fn();
109+
110+
// render(<Containers {...props} runStopped={handleOnClick} />);
111+
112+
// const runBtnRender = screen.queryByText('RUN');
113+
// // screen.queryByText('RUN');
114+
115+
// fireEvent.click(runBtnRender);
116+
117+
// expect(runBtnRender).toHaveBeenCalledTimes(1);
118+
// });
119+
// });
120+
121+
// describe('It should render the exited containers', () => {
122+
// const { reactWrapper } = shallowSetup();
123+
//! test('Should render <div> tag in Stopped', () => {
124+
//! expect(reactWrapper.type()).toEqual('div');
125+
//! });
126+
127+
//* test('Should have className run-btn in Stopped component', () => {
128+
//* expect(
129+
//* reactWrapper.find('.stopped-button').props().children[0].props.className
130+
//* ).toEqual('run-btn');
131+
//* });
132+
133+
// test('ClassName run-btn in Stopped component have onClick function', () => {
134+
// expect(
135+
// reactWrapper.find('.stopped-button').props().children[0].props.onClick
136+
// ).toBeDefined();
137+
// });
138+
139+
// test('Should have className stop-btn in Stopped component', () => {
140+
// expect(
141+
// reactWrapper.find('.stopped-button').props().children[1].props.className
142+
// ).toEqual('stop-btn');
143+
// });
144+
145+
// test('ClassName stop-btn in Stopped component have onClick function', () => {
146+
// expect(
147+
// reactWrapper.find('.stopped-button').props().children[1].props.onClick
148+
// ).toBeDefined();
149+
// });
150+
// });
79151

80-
it('ClassName stop-btn in Stopped component have onClick function', () => {
81-
expect(
82-
enzymeWrapper.find('.stopped-button').props().children[1].props.onClick
83-
).toBeDefined();
152+
//* Dummy Test
153+
describe('dummy test', () => {
154+
test('dummy test', () => {
155+
expect(2 + 2).toBe(4);
84156
});
85157
});

0 commit comments

Comments
 (0)