foreman_leapp 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/foreman_leapp/version.rb +1 -1
- data/package.json +44 -0
- data/webpack/__mocks__/foremanReact/common/I18n.js +1 -0
- data/webpack/__mocks__/foremanReact/components/common/MessageBox.js +2 -0
- data/webpack/components/PreupgradeReports/PreupgradeReports.js +32 -0
- data/webpack/components/PreupgradeReports/PreupgradeReportsActions.js +30 -0
- data/webpack/components/PreupgradeReports/PreupgradeReportsReducer.js +35 -0
- data/webpack/components/PreupgradeReports/PreupgradeReportsSelectors.js +7 -0
- data/webpack/components/PreupgradeReports/__tests__/PreupgradeReports.fixtures.js +16 -0
- data/webpack/components/PreupgradeReports/__tests__/PreupgradeReports.test.js +29 -0
- data/webpack/components/PreupgradeReports/__tests__/PreupgradeReportsReducer.test.js +44 -0
- data/webpack/components/PreupgradeReports/__tests__/PreupgradeReportsSelectors.test.js +28 -0
- data/webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReports.test.js.snap +66 -0
- data/webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsReducer.test.js.snap +63 -0
- data/webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsSelectors.test.js.snap +41 -0
- data/webpack/components/PreupgradeReports/index.js +41 -0
- data/webpack/components/PreupgradeReportsList/__tests__/PreupgradeReportsList.test.js +14 -0
- data/webpack/components/PreupgradeReportsList/__tests__/__snapshots__/PreupgradeReportsList.test.js.snap +44 -0
- data/webpack/components/PreupgradeReportsList/components/EmptyInfoItem.js +16 -0
- data/webpack/components/PreupgradeReportsList/components/InfoItem.js +34 -0
- data/webpack/components/PreupgradeReportsList/components/PreupgradeReportEntry.js +20 -0
- data/webpack/components/PreupgradeReportsList/components/StringInfoItem.js +49 -0
- data/webpack/components/PreupgradeReportsList/components/__tests__/EmptyInfoItem.test.js +13 -0
- data/webpack/components/PreupgradeReportsList/components/__tests__/PreupgradeReportEntry.test.js +12 -0
- data/webpack/components/PreupgradeReportsList/components/__tests__/StringInfoItem.test.js +13 -0
- data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/EmptyInfoItem.test.js.snap +8 -0
- data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/PreupgradeReportEntry.test.js.snap +53 -0
- data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/StringInfoItem.test.js.snap +12 -0
- data/webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/helpers.test.js.snap +34 -0
- data/webpack/components/PreupgradeReportsList/components/__tests__/helpers.test.js +17 -0
- data/webpack/components/PreupgradeReportsList/components/helpers.js +28 -0
- data/webpack/components/PreupgradeReportsList/index.js +26 -0
- data/webpack/consts.js +3 -0
- data/webpack/index.js +13 -0
- data/webpack/reducer.js +5 -0
- data/webpack/testSetup.js +0 -0
- metadata +36 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 35a96d620395ecc178b6424e6c4e40264d26412c4217ad92c442ea03ef2f070e
|
|
4
|
+
data.tar.gz: 6b5a4ff4992ced0d82dff4b5298eab442e611abe8db75645de6b269338cbeb97
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2b8cfdfe0e0097cdadebd60a0e68ad047d19181e5a8628dd783308b77043a5e09dd31f1cf0c8ee76071714c5d68aa4f52bbb75585f01035484b53a011c2d2a8c
|
|
7
|
+
data.tar.gz: 75fcee9f88f2b5413b3e5227f52c64e7be70be1765f08afbc6c1f7ce2288cebe44d2ff8d77a0b79d2e08d7f8cc46e866ce1b1ed063d542d1a20f9e43dde5caa8
|
data/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "foreman_leapp",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Plugin for RHEL upgrades using Foreman.",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"lint": "tfm-lint --plugin -d /webpack",
|
|
8
|
+
"link-leapp-js": "./script/link_leapp_js.sh",
|
|
9
|
+
"test": "tfm-test --plugin",
|
|
10
|
+
"test:watch": "tfm-test --plugin --watchAll",
|
|
11
|
+
"test:current": "tfm-test --plugin --watch",
|
|
12
|
+
"publish-coverage": "tfm-publish-coverage",
|
|
13
|
+
"stories": "tfm-stories --plugin",
|
|
14
|
+
"stories:build": "tfm-build-stories --plugin",
|
|
15
|
+
"stories:deploy": "surge --project .storybook-dist"
|
|
16
|
+
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/oamg/foreman_leapp.git"
|
|
20
|
+
},
|
|
21
|
+
"author": "LEAPP team + The Foreman team",
|
|
22
|
+
"license": "GPL-3.0",
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "http://projects.theforeman.org/projects/foreman_leapp/issues"
|
|
25
|
+
},
|
|
26
|
+
"homepage": "https://github.com/oamg/foreman_leapp",
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"@theforeman/vendor": ">= 4.2.1"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@babel/core": "^7.7.0",
|
|
32
|
+
"@theforeman/builder": "^4.2.1",
|
|
33
|
+
"@theforeman/eslint-plugin-foreman": "4.2.1",
|
|
34
|
+
"@theforeman/stories": "^4.2.1",
|
|
35
|
+
"@theforeman/vendor-dev": "^4.2.1",
|
|
36
|
+
"@theforeman/test": "^4.2.1",
|
|
37
|
+
"babel-eslint": "^10.0.0",
|
|
38
|
+
"eslint": "^6.8.0",
|
|
39
|
+
"prettier": "^1.19.1"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"react-ellipsis-with-tooltip": "^1.0.8"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const translate = () => jest.fn();
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import MessageBox from 'foremanReact/components/common/MessageBox';
|
|
3
|
+
import { LoadingState } from 'patternfly-react';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
|
|
6
|
+
import PreupgradeReportsList from '../PreupgradeReportsList';
|
|
7
|
+
|
|
8
|
+
const PreupgradeReports = ({ preupgradeReports, loading, error }) => {
|
|
9
|
+
if (Object.keys(error).length > 0) {
|
|
10
|
+
return (
|
|
11
|
+
<MessageBox
|
|
12
|
+
key="preupgrade-reports-error"
|
|
13
|
+
icontype="error-circle-o"
|
|
14
|
+
msg={`Could not retrieve data: ${error.statusText} - ${error.errorMsg}`}
|
|
15
|
+
/>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<LoadingState loading={loading}>
|
|
21
|
+
<PreupgradeReportsList preupgradeReports={preupgradeReports} />
|
|
22
|
+
</LoadingState>
|
|
23
|
+
);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
PreupgradeReports.propTypes = {
|
|
27
|
+
preupgradeReports: PropTypes.array.isRequired,
|
|
28
|
+
loading: PropTypes.bool.isRequired,
|
|
29
|
+
error: PropTypes.object.isRequired,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default PreupgradeReports;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import api from 'foremanReact/API';
|
|
2
|
+
import { deepPropsToCamelCase } from 'foremanReact/common/helpers';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
PREUPGRADE_REPORTS_REQUEST,
|
|
6
|
+
PREUPGRADE_REPORTS_SUCCESS,
|
|
7
|
+
PREUPGRADE_REPORTS_FAILURE,
|
|
8
|
+
} from '../../consts';
|
|
9
|
+
|
|
10
|
+
export const getPreupgradeReports = url => async dispatch => {
|
|
11
|
+
dispatch({ type: PREUPGRADE_REPORTS_REQUEST });
|
|
12
|
+
|
|
13
|
+
try {
|
|
14
|
+
const { data } = await api.get(url);
|
|
15
|
+
return dispatch({
|
|
16
|
+
type: PREUPGRADE_REPORTS_SUCCESS,
|
|
17
|
+
payload: deepPropsToCamelCase(data),
|
|
18
|
+
});
|
|
19
|
+
} catch (error) {
|
|
20
|
+
return dispatch(errorHandler(PREUPGRADE_REPORTS_FAILURE, error));
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const errorHandler = (msg, err) => {
|
|
25
|
+
const error = {
|
|
26
|
+
errorMsg: 'Failed to fetch preupgrade reports from server.',
|
|
27
|
+
statusText: err.response.statusText,
|
|
28
|
+
};
|
|
29
|
+
return { type: msg, payload: { error } };
|
|
30
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import Immutable from 'seamless-immutable';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
PREUPGRADE_REPORTS_REQUEST,
|
|
5
|
+
PREUPGRADE_REPORTS_SUCCESS,
|
|
6
|
+
PREUPGRADE_REPORTS_FAILURE,
|
|
7
|
+
} from '../../consts';
|
|
8
|
+
|
|
9
|
+
export const initialState = Immutable({
|
|
10
|
+
loadingPreupgradeReports: false,
|
|
11
|
+
preupgradeReports: [],
|
|
12
|
+
error: {},
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
const reducer = (state = initialState, action) => {
|
|
16
|
+
const { payload } = action;
|
|
17
|
+
switch (action.type) {
|
|
18
|
+
case PREUPGRADE_REPORTS_REQUEST:
|
|
19
|
+
return state.set('loadingPreupgradeReports', true);
|
|
20
|
+
case PREUPGRADE_REPORTS_SUCCESS:
|
|
21
|
+
return state.merge({
|
|
22
|
+
loadingPreupgradeReports: false,
|
|
23
|
+
preupgradeReports: payload.results,
|
|
24
|
+
});
|
|
25
|
+
case PREUPGRADE_REPORTS_FAILURE:
|
|
26
|
+
return state.merge({
|
|
27
|
+
error: payload.error,
|
|
28
|
+
loadingPreupgradeReports: false,
|
|
29
|
+
});
|
|
30
|
+
default:
|
|
31
|
+
return state;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export default reducer;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const selectPreupgrade = state => state.foremanLeapp.preupgrade;
|
|
2
|
+
|
|
3
|
+
export const selectPreupgradeReports = state =>
|
|
4
|
+
selectPreupgrade(state).preupgradeReports;
|
|
5
|
+
export const selectLoadingPreupgradeReports = state =>
|
|
6
|
+
selectPreupgrade(state).loadingPreupgradeReports;
|
|
7
|
+
export const selectError = state => selectPreupgrade(state).error;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const preupgradeReports = [
|
|
2
|
+
{
|
|
3
|
+
hostId: 5,
|
|
4
|
+
entries: [
|
|
5
|
+
{ title: 'Fix me!', severity: 'Too severe to talk about' },
|
|
6
|
+
{ title: 'I am broken too', severity: 'medium' },
|
|
7
|
+
],
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
hostId: 6,
|
|
11
|
+
entries: [
|
|
12
|
+
{ title: 'Octocat is not happy', severity: 'high' },
|
|
13
|
+
{ title: 'Not enough credits', severity: 'low' },
|
|
14
|
+
],
|
|
15
|
+
},
|
|
16
|
+
];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
|
|
2
|
+
|
|
3
|
+
import PreupgradeReports from '../PreupgradeReports';
|
|
4
|
+
|
|
5
|
+
import { preupgradeReports } from './PreupgradeReports.fixtures';
|
|
6
|
+
|
|
7
|
+
const fixtures = {
|
|
8
|
+
'should render when loaded': {
|
|
9
|
+
loading: false,
|
|
10
|
+
error: {},
|
|
11
|
+
preupgradeReports,
|
|
12
|
+
},
|
|
13
|
+
'should render when loading': {
|
|
14
|
+
loading: true,
|
|
15
|
+
error: {},
|
|
16
|
+
preupgradeReports: [],
|
|
17
|
+
},
|
|
18
|
+
'should render error': {
|
|
19
|
+
loading: false,
|
|
20
|
+
error: {
|
|
21
|
+
statusText: 'Internal server error',
|
|
22
|
+
errorMsg: 'Well, this is embarassing',
|
|
23
|
+
},
|
|
24
|
+
preupgradeReports: [],
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
describe('PreupgradeReports', () =>
|
|
29
|
+
testComponentSnapshotsWithFixtures(PreupgradeReports, fixtures));
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { testReducerSnapshotWithFixtures } from '@theforeman/test';
|
|
2
|
+
|
|
3
|
+
import reducer, { initialState } from '../PreupgradeReportsReducer';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
PREUPGRADE_REPORTS_REQUEST,
|
|
7
|
+
PREUPGRADE_REPORTS_SUCCESS,
|
|
8
|
+
PREUPGRADE_REPORTS_FAILURE,
|
|
9
|
+
} from '../../../consts';
|
|
10
|
+
|
|
11
|
+
import { preupgradeReports } from './PreupgradeReports.fixtures';
|
|
12
|
+
|
|
13
|
+
const fixtures = {
|
|
14
|
+
'should return initial state': {
|
|
15
|
+
state: initialState,
|
|
16
|
+
action: {
|
|
17
|
+
type: undefined,
|
|
18
|
+
payload: [],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
'should start loading reports on request': {
|
|
22
|
+
state: initialState,
|
|
23
|
+
action: {
|
|
24
|
+
type: PREUPGRADE_REPORTS_REQUEST,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
'should stop loading on reports success': {
|
|
28
|
+
state: initialState.set('loadingPreupgradeReports', true),
|
|
29
|
+
action: {
|
|
30
|
+
type: PREUPGRADE_REPORTS_SUCCESS,
|
|
31
|
+
payload: { results: preupgradeReports },
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
'should show error on request failure': {
|
|
35
|
+
state: initialState.set('loadingPreupgradeReports', true),
|
|
36
|
+
action: {
|
|
37
|
+
type: PREUPGRADE_REPORTS_FAILURE,
|
|
38
|
+
payload: { error: { errorMsg: 'This is error', statusText: 'Not good' } },
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
describe('PreupgradeReportsReducer', () =>
|
|
44
|
+
testReducerSnapshotWithFixtures(reducer, fixtures));
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { testSelectorsSnapshotWithFixtures } from '@theforeman/test';
|
|
2
|
+
|
|
3
|
+
import { preupgradeReports } from './PreupgradeReports.fixtures';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
selectPreupgradeReports,
|
|
7
|
+
selectLoadingPreupgradeReports,
|
|
8
|
+
selectError,
|
|
9
|
+
} from '../PreupgradeReportsSelectors';
|
|
10
|
+
|
|
11
|
+
const state = {
|
|
12
|
+
foremanLeapp: {
|
|
13
|
+
preupgrade: {
|
|
14
|
+
preupgradeReports,
|
|
15
|
+
loadingPreupgradeReports: false,
|
|
16
|
+
error: { errorMsg: 'Error', statusText: 'Status text' },
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const fixtures = {
|
|
22
|
+
'should return preupgrade reports': () => selectPreupgradeReports(state),
|
|
23
|
+
'should return loading state': () => selectLoadingPreupgradeReports(state),
|
|
24
|
+
'should return error': () => selectError(state),
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
describe('PreupgradeReportsSelectors', () =>
|
|
28
|
+
testSelectorsSnapshotWithFixtures(fixtures));
|
data/webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReports.test.js.snap
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`PreupgradeReports should render error 1`] = `
|
|
4
|
+
<MessageBox
|
|
5
|
+
icontype="error-circle-o"
|
|
6
|
+
key="preupgrade-reports-error"
|
|
7
|
+
msg="Could not retrieve data: Internal server error - Well, this is embarassing"
|
|
8
|
+
/>
|
|
9
|
+
`;
|
|
10
|
+
|
|
11
|
+
exports[`PreupgradeReports should render when loaded 1`] = `
|
|
12
|
+
<LoadingState
|
|
13
|
+
additionalClasses=""
|
|
14
|
+
loading={false}
|
|
15
|
+
loadingText="Loading"
|
|
16
|
+
size="lg"
|
|
17
|
+
timeout={300}
|
|
18
|
+
>
|
|
19
|
+
<PreupgradeReportsList
|
|
20
|
+
preupgradeReports={
|
|
21
|
+
Array [
|
|
22
|
+
Object {
|
|
23
|
+
"entries": Array [
|
|
24
|
+
Object {
|
|
25
|
+
"severity": "Too severe to talk about",
|
|
26
|
+
"title": "Fix me!",
|
|
27
|
+
},
|
|
28
|
+
Object {
|
|
29
|
+
"severity": "medium",
|
|
30
|
+
"title": "I am broken too",
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
"hostId": 5,
|
|
34
|
+
},
|
|
35
|
+
Object {
|
|
36
|
+
"entries": Array [
|
|
37
|
+
Object {
|
|
38
|
+
"severity": "high",
|
|
39
|
+
"title": "Octocat is not happy",
|
|
40
|
+
},
|
|
41
|
+
Object {
|
|
42
|
+
"severity": "low",
|
|
43
|
+
"title": "Not enough credits",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
"hostId": 6,
|
|
47
|
+
},
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
/>
|
|
51
|
+
</LoadingState>
|
|
52
|
+
`;
|
|
53
|
+
|
|
54
|
+
exports[`PreupgradeReports should render when loading 1`] = `
|
|
55
|
+
<LoadingState
|
|
56
|
+
additionalClasses=""
|
|
57
|
+
loading={true}
|
|
58
|
+
loadingText="Loading"
|
|
59
|
+
size="lg"
|
|
60
|
+
timeout={300}
|
|
61
|
+
>
|
|
62
|
+
<PreupgradeReportsList
|
|
63
|
+
preupgradeReports={Array []}
|
|
64
|
+
/>
|
|
65
|
+
</LoadingState>
|
|
66
|
+
`;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`PreupgradeReportsReducer should return initial state 1`] = `
|
|
4
|
+
Object {
|
|
5
|
+
"error": Object {},
|
|
6
|
+
"loadingPreupgradeReports": false,
|
|
7
|
+
"preupgradeReports": Array [],
|
|
8
|
+
}
|
|
9
|
+
`;
|
|
10
|
+
|
|
11
|
+
exports[`PreupgradeReportsReducer should show error on request failure 1`] = `
|
|
12
|
+
Object {
|
|
13
|
+
"error": Object {
|
|
14
|
+
"errorMsg": "This is error",
|
|
15
|
+
"statusText": "Not good",
|
|
16
|
+
},
|
|
17
|
+
"loadingPreupgradeReports": false,
|
|
18
|
+
"preupgradeReports": Array [],
|
|
19
|
+
}
|
|
20
|
+
`;
|
|
21
|
+
|
|
22
|
+
exports[`PreupgradeReportsReducer should start loading reports on request 1`] = `
|
|
23
|
+
Object {
|
|
24
|
+
"error": Object {},
|
|
25
|
+
"loadingPreupgradeReports": true,
|
|
26
|
+
"preupgradeReports": Array [],
|
|
27
|
+
}
|
|
28
|
+
`;
|
|
29
|
+
|
|
30
|
+
exports[`PreupgradeReportsReducer should stop loading on reports success 1`] = `
|
|
31
|
+
Object {
|
|
32
|
+
"error": Object {},
|
|
33
|
+
"loadingPreupgradeReports": false,
|
|
34
|
+
"preupgradeReports": Array [
|
|
35
|
+
Object {
|
|
36
|
+
"entries": Array [
|
|
37
|
+
Object {
|
|
38
|
+
"severity": "Too severe to talk about",
|
|
39
|
+
"title": "Fix me!",
|
|
40
|
+
},
|
|
41
|
+
Object {
|
|
42
|
+
"severity": "medium",
|
|
43
|
+
"title": "I am broken too",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
"hostId": 5,
|
|
47
|
+
},
|
|
48
|
+
Object {
|
|
49
|
+
"entries": Array [
|
|
50
|
+
Object {
|
|
51
|
+
"severity": "high",
|
|
52
|
+
"title": "Octocat is not happy",
|
|
53
|
+
},
|
|
54
|
+
Object {
|
|
55
|
+
"severity": "low",
|
|
56
|
+
"title": "Not enough credits",
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
"hostId": 6,
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
}
|
|
63
|
+
`;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`PreupgradeReportsSelectors should return error 1`] = `
|
|
4
|
+
Object {
|
|
5
|
+
"errorMsg": "Error",
|
|
6
|
+
"statusText": "Status text",
|
|
7
|
+
}
|
|
8
|
+
`;
|
|
9
|
+
|
|
10
|
+
exports[`PreupgradeReportsSelectors should return loading state 1`] = `false`;
|
|
11
|
+
|
|
12
|
+
exports[`PreupgradeReportsSelectors should return preupgrade reports 1`] = `
|
|
13
|
+
Array [
|
|
14
|
+
Object {
|
|
15
|
+
"entries": Array [
|
|
16
|
+
Object {
|
|
17
|
+
"severity": "Too severe to talk about",
|
|
18
|
+
"title": "Fix me!",
|
|
19
|
+
},
|
|
20
|
+
Object {
|
|
21
|
+
"severity": "medium",
|
|
22
|
+
"title": "I am broken too",
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
"hostId": 5,
|
|
26
|
+
},
|
|
27
|
+
Object {
|
|
28
|
+
"entries": Array [
|
|
29
|
+
Object {
|
|
30
|
+
"severity": "high",
|
|
31
|
+
"title": "Octocat is not happy",
|
|
32
|
+
},
|
|
33
|
+
Object {
|
|
34
|
+
"severity": "low",
|
|
35
|
+
"title": "Not enough credits",
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
"hostId": 6,
|
|
39
|
+
},
|
|
40
|
+
]
|
|
41
|
+
`;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import { useDispatch, useSelector } from 'react-redux';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
|
|
5
|
+
import PreupgradeReports from './PreupgradeReports';
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
selectPreupgradeReports,
|
|
9
|
+
selectLoadingPreupgradeReports,
|
|
10
|
+
selectError,
|
|
11
|
+
} from './PreupgradeReportsSelectors';
|
|
12
|
+
|
|
13
|
+
import { getPreupgradeReports } from './PreupgradeReportsActions';
|
|
14
|
+
|
|
15
|
+
const WrappedPreupgradeReports = ({ url }) => {
|
|
16
|
+
const loading = useSelector(state => selectLoadingPreupgradeReports(state));
|
|
17
|
+
const preupgradeReports = useSelector(state =>
|
|
18
|
+
selectPreupgradeReports(state)
|
|
19
|
+
);
|
|
20
|
+
const error = useSelector(state => selectError(state));
|
|
21
|
+
|
|
22
|
+
const dispatch = useDispatch();
|
|
23
|
+
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
dispatch(getPreupgradeReports(url));
|
|
26
|
+
}, [url]);
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<PreupgradeReports
|
|
30
|
+
preupgradeReports={preupgradeReports}
|
|
31
|
+
error={error}
|
|
32
|
+
loading={loading}
|
|
33
|
+
/>
|
|
34
|
+
);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
WrappedPreupgradeReports.propTypes = {
|
|
38
|
+
url: PropTypes.string.isRequired,
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default WrappedPreupgradeReports;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
|
|
2
|
+
|
|
3
|
+
import PreupgradeReportsList from '../index';
|
|
4
|
+
|
|
5
|
+
import { preupgradeReports } from '../../PreupgradeReports/__tests__/PreupgradeReports.fixtures';
|
|
6
|
+
|
|
7
|
+
const fixtures = {
|
|
8
|
+
'should render': {
|
|
9
|
+
preupgradeReports,
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
describe('PreupgradeReportsList', () =>
|
|
14
|
+
testComponentSnapshotsWithFixtures(PreupgradeReportsList, fixtures));
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`PreupgradeReportsList should render 1`] = `
|
|
4
|
+
<ListView
|
|
5
|
+
className=""
|
|
6
|
+
>
|
|
7
|
+
<PreupgradeReportEntry
|
|
8
|
+
entry={
|
|
9
|
+
Object {
|
|
10
|
+
"severity": "Too severe to talk about",
|
|
11
|
+
"title": "Fix me!",
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
key="0"
|
|
15
|
+
/>
|
|
16
|
+
<PreupgradeReportEntry
|
|
17
|
+
entry={
|
|
18
|
+
Object {
|
|
19
|
+
"severity": "medium",
|
|
20
|
+
"title": "I am broken too",
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
key="1"
|
|
24
|
+
/>
|
|
25
|
+
<PreupgradeReportEntry
|
|
26
|
+
entry={
|
|
27
|
+
Object {
|
|
28
|
+
"severity": "high",
|
|
29
|
+
"title": "Octocat is not happy",
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
key="2"
|
|
33
|
+
/>
|
|
34
|
+
<PreupgradeReportEntry
|
|
35
|
+
entry={
|
|
36
|
+
Object {
|
|
37
|
+
"severity": "low",
|
|
38
|
+
"title": "Not enough credits",
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
key="3"
|
|
42
|
+
/>
|
|
43
|
+
</ListView>
|
|
44
|
+
`;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
|
|
4
|
+
import InfoItem from './InfoItem';
|
|
5
|
+
import { itemIteratorId } from './helpers';
|
|
6
|
+
|
|
7
|
+
const EmptyInfoItem = ({ entry, attr }) => (
|
|
8
|
+
<InfoItem itemId={itemIteratorId(entry, attr)} />
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
EmptyInfoItem.propTypes = {
|
|
12
|
+
entry: PropTypes.object.isRequired,
|
|
13
|
+
attr: PropTypes.string.isRequired,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export default EmptyInfoItem;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ListView, OverlayTrigger, Tooltip } from 'patternfly-react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
|
|
5
|
+
const InfoItem = ({ itemId, children, tooltipText }) => {
|
|
6
|
+
const overlay = (
|
|
7
|
+
<OverlayTrigger
|
|
8
|
+
overlay={tooltipText ? <Tooltip id={itemId}>{tooltipText}</Tooltip> : ''}
|
|
9
|
+
placement="top"
|
|
10
|
+
trigger={['hover', 'focus']}
|
|
11
|
+
rootClose={false}
|
|
12
|
+
>
|
|
13
|
+
{children}
|
|
14
|
+
</OverlayTrigger>
|
|
15
|
+
);
|
|
16
|
+
return (
|
|
17
|
+
<ListView.InfoItem key={itemId} className="additional-info-wide">
|
|
18
|
+
{tooltipText ? overlay : children}
|
|
19
|
+
</ListView.InfoItem>
|
|
20
|
+
);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
InfoItem.propTypes = {
|
|
24
|
+
itemId: PropTypes.string.isRequired,
|
|
25
|
+
children: PropTypes.node,
|
|
26
|
+
tooltipText: PropTypes.string,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
InfoItem.defaultProps = {
|
|
30
|
+
tooltipText: '',
|
|
31
|
+
children: undefined,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export default InfoItem;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ListView } from 'patternfly-react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
|
|
5
|
+
import { additionalInfo } from './helpers';
|
|
6
|
+
|
|
7
|
+
const PreupgradeReportEntry = ({ entry }) => (
|
|
8
|
+
<ListView.Item
|
|
9
|
+
key={entry.id}
|
|
10
|
+
className="listViewItem--listItemVariants"
|
|
11
|
+
stacked
|
|
12
|
+
additionalInfo={additionalInfo(entry)}
|
|
13
|
+
/>
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
PreupgradeReportEntry.propTypes = {
|
|
17
|
+
entry: PropTypes.object.isRequired,
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export default PreupgradeReportEntry;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import EllipsisWithTooltip from 'react-ellipsis-with-tooltip';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import { translate as __ } from 'foremanReact/common/I18n';
|
|
5
|
+
|
|
6
|
+
import InfoItem from './InfoItem';
|
|
7
|
+
import { itemIteratorId } from './helpers';
|
|
8
|
+
|
|
9
|
+
const StringInfoItem = ({
|
|
10
|
+
entry,
|
|
11
|
+
attr,
|
|
12
|
+
tooltipText,
|
|
13
|
+
translate,
|
|
14
|
+
mapAttr,
|
|
15
|
+
elipsed,
|
|
16
|
+
}) => {
|
|
17
|
+
const inner = (
|
|
18
|
+
<span>{translate ? __(mapAttr(entry, attr)) : mapAttr(entry, attr)}</span>
|
|
19
|
+
);
|
|
20
|
+
const innerContent = elipsed ? (
|
|
21
|
+
<EllipsisWithTooltip placement="top">{inner}</EllipsisWithTooltip>
|
|
22
|
+
) : (
|
|
23
|
+
inner
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<InfoItem itemId={itemIteratorId(entry, attr)} tooltipText={tooltipText}>
|
|
28
|
+
{innerContent}
|
|
29
|
+
</InfoItem>
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
StringInfoItem.propTypes = {
|
|
34
|
+
entry: PropTypes.object.isRequired,
|
|
35
|
+
attr: PropTypes.string.isRequired,
|
|
36
|
+
tooltipText: PropTypes.string,
|
|
37
|
+
translate: PropTypes.bool,
|
|
38
|
+
mapAttr: PropTypes.func,
|
|
39
|
+
elipsed: PropTypes.bool,
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
StringInfoItem.defaultProps = {
|
|
43
|
+
translate: false,
|
|
44
|
+
mapAttr: (entry, attr) => entry[attr],
|
|
45
|
+
elipsed: false,
|
|
46
|
+
tooltipText: undefined,
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default StringInfoItem;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
|
|
2
|
+
|
|
3
|
+
import EmptyInfoItem from '../EmptyInfoItem';
|
|
4
|
+
|
|
5
|
+
const fixtures = {
|
|
6
|
+
'should render': {
|
|
7
|
+
entry: { title: 'no title', severity: 'low', id: 5, preupgradeReportId: 7 },
|
|
8
|
+
attr: 'title',
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
describe('EmptyInfoItem', () =>
|
|
13
|
+
testComponentSnapshotsWithFixtures(EmptyInfoItem, fixtures));
|
data/webpack/components/PreupgradeReportsList/components/__tests__/PreupgradeReportEntry.test.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
|
|
2
|
+
|
|
3
|
+
import PreupgradeReportEntry from '../PreupgradeReportEntry';
|
|
4
|
+
|
|
5
|
+
const fixtures = {
|
|
6
|
+
'should render': {
|
|
7
|
+
entry: { title: 'no title', severity: 'low', id: 5, preupgradeReportId: 7 },
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
describe('PreupgradeReportEntry', () =>
|
|
12
|
+
testComponentSnapshotsWithFixtures(PreupgradeReportEntry, fixtures));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { testComponentSnapshotsWithFixtures } from '@theforeman/test';
|
|
2
|
+
|
|
3
|
+
import StringInfoItem from '../StringInfoItem';
|
|
4
|
+
|
|
5
|
+
const fixtures = {
|
|
6
|
+
'should render': {
|
|
7
|
+
entry: { title: 'no title', severity: 'low', id: 5, preupgradeReportId: 7 },
|
|
8
|
+
attr: 'title',
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
describe('StringInfoItem', () =>
|
|
13
|
+
testComponentSnapshotsWithFixtures(StringInfoItem, fixtures));
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`PreupgradeReportEntry should render 1`] = `
|
|
4
|
+
<ListViewItem
|
|
5
|
+
actions={null}
|
|
6
|
+
additionalInfo={
|
|
7
|
+
Array [
|
|
8
|
+
<StringInfoItem
|
|
9
|
+
attr="title"
|
|
10
|
+
elipsed={false}
|
|
11
|
+
entry={
|
|
12
|
+
Object {
|
|
13
|
+
"id": 5,
|
|
14
|
+
"preupgradeReportId": 7,
|
|
15
|
+
"severity": "low",
|
|
16
|
+
"title": "no title",
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
mapAttr={[Function]}
|
|
20
|
+
translate={false}
|
|
21
|
+
/>,
|
|
22
|
+
<StringInfoItem
|
|
23
|
+
attr="severity"
|
|
24
|
+
elipsed={false}
|
|
25
|
+
entry={
|
|
26
|
+
Object {
|
|
27
|
+
"id": 5,
|
|
28
|
+
"preupgradeReportId": 7,
|
|
29
|
+
"severity": "low",
|
|
30
|
+
"title": "no title",
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
mapAttr={[Function]}
|
|
34
|
+
translate={false}
|
|
35
|
+
/>,
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
checkboxInput={null}
|
|
39
|
+
className="listViewItem--listItemVariants"
|
|
40
|
+
compoundExpand={false}
|
|
41
|
+
compoundExpanded={false}
|
|
42
|
+
description={null}
|
|
43
|
+
heading={null}
|
|
44
|
+
hideCloseIcon={false}
|
|
45
|
+
initExpanded={false}
|
|
46
|
+
key="5"
|
|
47
|
+
leftContent={null}
|
|
48
|
+
onCloseCompoundExpand={[Function]}
|
|
49
|
+
onExpand={[Function]}
|
|
50
|
+
onExpandClose={[Function]}
|
|
51
|
+
stacked={true}
|
|
52
|
+
/>
|
|
53
|
+
`;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`PreupgradeReportList/helpers should return additional info 1`] = `
|
|
4
|
+
Array [
|
|
5
|
+
<StringInfoItem
|
|
6
|
+
attr="title"
|
|
7
|
+
elipsed={false}
|
|
8
|
+
entry={
|
|
9
|
+
Object {
|
|
10
|
+
"id": 5,
|
|
11
|
+
"preupgradeReportId": 6,
|
|
12
|
+
"severity": "low",
|
|
13
|
+
"title": "This is title",
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
mapAttr={[Function]}
|
|
17
|
+
translate={false}
|
|
18
|
+
/>,
|
|
19
|
+
<StringInfoItem
|
|
20
|
+
attr="severity"
|
|
21
|
+
elipsed={false}
|
|
22
|
+
entry={
|
|
23
|
+
Object {
|
|
24
|
+
"id": 5,
|
|
25
|
+
"preupgradeReportId": 6,
|
|
26
|
+
"severity": "low",
|
|
27
|
+
"title": "This is title",
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
mapAttr={[Function]}
|
|
31
|
+
translate={false}
|
|
32
|
+
/>,
|
|
33
|
+
]
|
|
34
|
+
`;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { testSelectorsSnapshotWithFixtures } from '@theforeman/test';
|
|
2
|
+
|
|
3
|
+
import { additionalInfo } from '../helpers';
|
|
4
|
+
|
|
5
|
+
const reportEntry = {
|
|
6
|
+
title: 'This is title',
|
|
7
|
+
severity: 'low',
|
|
8
|
+
id: 5,
|
|
9
|
+
preupgradeReportId: 6,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const fixtures = {
|
|
13
|
+
'should return additional info': () => additionalInfo(reportEntry),
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
describe('PreupgradeReportList/helpers', () =>
|
|
17
|
+
testSelectorsSnapshotWithFixtures(fixtures));
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import EmptyInfoItem from './EmptyInfoItem';
|
|
4
|
+
import StringInfoItem from './StringInfoItem';
|
|
5
|
+
|
|
6
|
+
export const itemIteratorId = (entry, ...rest) =>
|
|
7
|
+
`${entry.id}-${entry.preupgradeReportId}-${rest.join('-')}`;
|
|
8
|
+
|
|
9
|
+
export const additionalInfo = entry => {
|
|
10
|
+
const infoAttrs = ['title', 'severity'];
|
|
11
|
+
|
|
12
|
+
return infoAttrs.map(attr => {
|
|
13
|
+
const key = itemIteratorId(entry, attr);
|
|
14
|
+
|
|
15
|
+
if (!entry[attr]) {
|
|
16
|
+
return <EmptyInfoItem entry={entry} attr={attr} key={key} />;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
switch (attr) {
|
|
20
|
+
case 'title':
|
|
21
|
+
return <StringInfoItem entry={entry} attr={attr} key={key} />;
|
|
22
|
+
case 'severity':
|
|
23
|
+
return <StringInfoItem entry={entry} attr={attr} key={key} />;
|
|
24
|
+
default:
|
|
25
|
+
return '';
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ListView } from 'patternfly-react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
|
|
5
|
+
import PreupgradeReportEntry from './components/PreupgradeReportEntry';
|
|
6
|
+
|
|
7
|
+
const PreupgradeReportsList = ({ preupgradeReports }) => {
|
|
8
|
+
const flatEntries = preupgradeReports.reduce(
|
|
9
|
+
(memo, report) => [...memo, ...report.entries],
|
|
10
|
+
[]
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<ListView>
|
|
15
|
+
{flatEntries.map((entry, idx) => (
|
|
16
|
+
<PreupgradeReportEntry entry={entry} key={idx} />
|
|
17
|
+
))}
|
|
18
|
+
</ListView>
|
|
19
|
+
);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
PreupgradeReportsList.propTypes = {
|
|
23
|
+
preupgradeReports: PropTypes.array.isRequired,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export default PreupgradeReportsList;
|
data/webpack/consts.js
ADDED
data/webpack/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import componentRegistry from 'foremanReact/components/componentRegistry';
|
|
2
|
+
|
|
3
|
+
import injectReducer from 'foremanReact/redux/reducers/registerReducer';
|
|
4
|
+
|
|
5
|
+
import PreupgradeReports from './components/PreupgradeReports';
|
|
6
|
+
import reducer from './reducer';
|
|
7
|
+
|
|
8
|
+
componentRegistry.register({
|
|
9
|
+
name: 'PreupgradeReports',
|
|
10
|
+
type: PreupgradeReports,
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
injectReducer('foremanLeapp', reducer);
|
data/webpack/reducer.js
ADDED
|
File without changes
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: foreman_leapp
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Foreman Leapp team
|
|
@@ -97,6 +97,7 @@ files:
|
|
|
97
97
|
- locale/en/foreman_leapp.po
|
|
98
98
|
- locale/foreman_leapp.pot
|
|
99
99
|
- locale/gemspec.rb
|
|
100
|
+
- package.json
|
|
100
101
|
- test/factories/foreman_leapp_factories.rb
|
|
101
102
|
- test/functional/api/v2/preupgrade_reports_controller_test.rb
|
|
102
103
|
- test/functional/preupgrade_reports_controller_test.rb
|
|
@@ -106,6 +107,40 @@ files:
|
|
|
106
107
|
- test/test_plugin_helper.rb
|
|
107
108
|
- test/unit/actions/preupgrade_job_test.rb
|
|
108
109
|
- test/unit/helpers/job_helper_test.rb
|
|
110
|
+
- webpack/__mocks__/foremanReact/common/I18n.js
|
|
111
|
+
- webpack/__mocks__/foremanReact/components/common/MessageBox.js
|
|
112
|
+
- webpack/components/PreupgradeReports/PreupgradeReports.js
|
|
113
|
+
- webpack/components/PreupgradeReports/PreupgradeReportsActions.js
|
|
114
|
+
- webpack/components/PreupgradeReports/PreupgradeReportsReducer.js
|
|
115
|
+
- webpack/components/PreupgradeReports/PreupgradeReportsSelectors.js
|
|
116
|
+
- webpack/components/PreupgradeReports/__tests__/PreupgradeReports.fixtures.js
|
|
117
|
+
- webpack/components/PreupgradeReports/__tests__/PreupgradeReports.test.js
|
|
118
|
+
- webpack/components/PreupgradeReports/__tests__/PreupgradeReportsReducer.test.js
|
|
119
|
+
- webpack/components/PreupgradeReports/__tests__/PreupgradeReportsSelectors.test.js
|
|
120
|
+
- webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReports.test.js.snap
|
|
121
|
+
- webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsReducer.test.js.snap
|
|
122
|
+
- webpack/components/PreupgradeReports/__tests__/__snapshots__/PreupgradeReportsSelectors.test.js.snap
|
|
123
|
+
- webpack/components/PreupgradeReports/index.js
|
|
124
|
+
- webpack/components/PreupgradeReportsList/__tests__/PreupgradeReportsList.test.js
|
|
125
|
+
- webpack/components/PreupgradeReportsList/__tests__/__snapshots__/PreupgradeReportsList.test.js.snap
|
|
126
|
+
- webpack/components/PreupgradeReportsList/components/EmptyInfoItem.js
|
|
127
|
+
- webpack/components/PreupgradeReportsList/components/InfoItem.js
|
|
128
|
+
- webpack/components/PreupgradeReportsList/components/PreupgradeReportEntry.js
|
|
129
|
+
- webpack/components/PreupgradeReportsList/components/StringInfoItem.js
|
|
130
|
+
- webpack/components/PreupgradeReportsList/components/__tests__/EmptyInfoItem.test.js
|
|
131
|
+
- webpack/components/PreupgradeReportsList/components/__tests__/PreupgradeReportEntry.test.js
|
|
132
|
+
- webpack/components/PreupgradeReportsList/components/__tests__/StringInfoItem.test.js
|
|
133
|
+
- webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/EmptyInfoItem.test.js.snap
|
|
134
|
+
- webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/PreupgradeReportEntry.test.js.snap
|
|
135
|
+
- webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/StringInfoItem.test.js.snap
|
|
136
|
+
- webpack/components/PreupgradeReportsList/components/__tests__/__snapshots__/helpers.test.js.snap
|
|
137
|
+
- webpack/components/PreupgradeReportsList/components/__tests__/helpers.test.js
|
|
138
|
+
- webpack/components/PreupgradeReportsList/components/helpers.js
|
|
139
|
+
- webpack/components/PreupgradeReportsList/index.js
|
|
140
|
+
- webpack/consts.js
|
|
141
|
+
- webpack/index.js
|
|
142
|
+
- webpack/reducer.js
|
|
143
|
+
- webpack/testSetup.js
|
|
109
144
|
homepage: https://github.com/oamg/foreman_leapp
|
|
110
145
|
licenses:
|
|
111
146
|
- GPL-3.0
|