Skip to content

Commit 1553493

Browse files
authored
Merge pull request #21 from oslabs-beta/dev
Final merge to master
2 parents 2bcac6e + ddc2cfd commit 1553493

File tree

133 files changed

+13582
-3580
lines changed

Some content is hidden

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

133 files changed

+13582
-3580
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,7 @@ src/.store.js.icloud
1212
src/components/display/.RunningContainers.js.icloud
1313
src/components/display/.StoppedContainers.js.icloud
1414
src/database/docketeerdb
15+
server/database/docketeerdb
1516
.env
1617
yarn.lock
18+
coverage

README.md

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

143143
### ➮ Process Logs
144-
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.
145-
![alt text](assets/processlogs.gif)
144+
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.
145+
<!-- replace this gif
146+
-->
147+
![alt text](assets/docketeer-process-logs.gif)
146148

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

@@ -172,6 +174,11 @@ npm run test
172174
Read our [contributing guide](https://github.com/open-source-labs/Docketeer/blob/master/CONTRIBUTING.md) for more information on how to purpose bugfixes and improvements to Docketeer.
173175

174176
### Authors
177+
- Abigail Gerig [@4estgirl] (https://github.com/4estgirl) | [Linkedin] (https://www.linkedin.com/in/abigail-gerig/)
178+
- Trine Medina [@TrineMedina] (https://github.com/TrineMedina) | [Linkedin] (https://www.linkedin.com/in/trinemedina/)
179+
- Christian Looff [@cmlooff] (https://github.com/cmlooff) | [LinkedIn] (https://www.linkedin.com/in/christian-looff/)
180+
- Reuel Warner-Rosen [@Ruliwr] (https://github.com/Ruliwr) | [Linkedin] (https://www.linkedin.com/in/Ruliwr/)
181+
- Matt Dias [@Schmang13] (https://github.com/Schmang13) | [Linkedin] (https://www.linkedin.com/in/matthew-j-dias/)
175182
- Christina Son [@cson17](https://github.com/cson17) | [Linkedin](https://www.linkedin.com/in/christinason17/)
176183
- Fernando Luna [@lunaf-github](https://github.com/lunaf-github) | [Linkedin](https://www.linkedin.com/in/fernando-luna)
177184
- 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/components/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)