Skip to content

Commit 0e4d57a

Browse files
authored
RD-235 Stage customization support minor fixes (#1136)
1 parent 7812801 commit 0e4d57a

File tree

8 files changed

+60
-24
lines changed

8 files changed

+60
-24
lines changed

app/actions/app.js

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import log from 'loglevel';
2-
3-
import i18n from 'i18next';
42
import * as types from './types';
53
import { setAppError, setAppLoading } from './appState';
64
import { loadTemplates } from './templates';
@@ -12,13 +10,6 @@ import { loadOrCreateUserAppData } from './userApp';
1210
import { getLdap, getUserData } from './managers';
1311
import { getClusterStatus } from './clusterStatus';
1412
import { NO_TENANTS_ERR } from '../utils/ErrorCodes';
15-
import LoaderUtils from '../utils/LoaderUtils';
16-
17-
function loadTranslationOverrides() {
18-
LoaderUtils.fetchResource('overrides.json', true).then(overrides =>
19-
i18n.addResourceBundle('en', 'translation', overrides, true, true)
20-
);
21-
}
2213

2314
export function intialPageLoad() {
2415
return (dispatch, getState) => {
@@ -41,8 +32,7 @@ export function intialPageLoad() {
4132
dispatch(loadWidgetDefinitions()),
4233
dispatch(getClientConfig()),
4334
dispatch(getClusterStatus()),
44-
dispatch(getLdap()),
45-
loadTranslationOverrides()
35+
dispatch(getLdap())
4636
]);
4737
})
4838
.then(() => {

app/app.jsx

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import Interceptor from './utils/Interceptor';
5050

5151
import Routes from './containers/Routes';
5252
import translation from './translations/en.json';
53+
import LoaderUtils from './utils/LoaderUtils';
5354

5455
window.$ = $;
5556

@@ -84,17 +85,23 @@ export default class app {
8485
};
8586

8687
widgetDefinitionLoader.init();
87-
return ConfigLoader.load().then(result => {
88-
const store = configureStore(browserHistory, result);
8988

90-
createToolbox(store);
89+
return Promise.all([
90+
ConfigLoader.load().then(result => {
91+
const store = configureStore(browserHistory, result);
9192

92-
StatusPoller.create(store);
93-
UserAppDataAutoSaver.create(store);
94-
Interceptor.create(store);
93+
createToolbox(store);
9594

96-
return store;
97-
});
95+
StatusPoller.create(store);
96+
UserAppDataAutoSaver.create(store);
97+
Interceptor.create(store);
98+
99+
return store;
100+
}),
101+
LoaderUtils.fetchResource('overrides.json', true).then(overrides =>
102+
i18n.addResourceBundle('en', 'translation', overrides, true, true)
103+
)
104+
]).then(results => results[0]);
98105
}
99106

100107
static start(store) {

backend/app.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ app.use(
8585

8686
const translationsOverrides = 'overrides.json';
8787
app.use(`${contextPath}/userData/${translationsOverrides}`, (req, res) =>
88-
res.sendfile(getResourcePath(translationsOverrides, true))
88+
res.sendFile(getResourcePath(translationsOverrides, true))
8989
);
9090

9191
app.use(

backend/handler/ArchiveHelper.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ module.exports = (() => {
7070

7171
function saveDataFromUrl(url, targetDir, req) {
7272
return new Promise((resolve, reject) => {
73-
const HEADERS = { 'User-Agent': 'Cloudify' };
73+
const HEADERS = { 'User-Agent': 'Node.js' };
7474
const archiveUrl = decodeURIComponent(url.trim());
7575

7676
logger.debug('Fetching file from url', archiveUrl);

backend/handler/TemplateHandler.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ module.exports = (() => {
4646
const id = pathlib.basename(templateFile, '.json');
4747

4848
const name = _.get(pageFileContent, 'name', id);
49-
const updatedBy = _.get(pageFileContent, 'updatedBy', isCustom ? '' : 'Cloudify');
49+
const updatedBy = _.get(pageFileContent, 'updatedBy', isCustom ? '' : 'Manager');
5050
const updatedAt = _.get(pageFileContent, 'updatedAt', '');
5151
const data = {
5252
roles: _.get(pageFileContent, 'roles', []),
@@ -87,7 +87,7 @@ module.exports = (() => {
8787
const id = pathlib.basename(pageFile, '.json');
8888

8989
const name = _.get(pageFileContent, 'name', id);
90-
const updatedBy = _.get(pageFileContent, 'updatedBy', isCustom ? '' : 'Cloudify');
90+
const updatedBy = _.get(pageFileContent, 'updatedBy', isCustom ? '' : 'Manager');
9191
const updatedAt = _.get(pageFileContent, 'updatedAt', '');
9292

9393
return { id, name, custom: isCustom, updatedBy, updatedAt };

backend/routes/Auth.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ router.post('/login', (req, res) =>
5252
if (err.error_code === 'unauthorized_error') {
5353
res.status(401).send({ message: err.message || 'Invalid credentials', error: err });
5454
} else if (err.error_code === 'maintenance_mode_active') {
55-
res.status(423).send({ message: 'Cloudify Manager is currently in maintenance mode', error: err });
55+
res.status(423).send({ message: 'Manager is currently in maintenance mode', error: err });
5656
} else {
5757
res.status(500).send({ message: `Failed to authenticate with manager: ${err.message}`, error: err });
5858
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
const { saveDataFromUrl } = require('handler/ArchiveHelper');
2+
const RequestHandler = require('handler/RequestHandler');
3+
4+
jest.mock('handler/RequestHandler', () => ({
5+
request: jest.fn((method, url, headers, data, onSuccess, onError) => onError())
6+
}));
7+
8+
describe('ArchiveHelper', () => {
9+
it('fetches extenral data with correct headers', () => {
10+
return saveDataFromUrl('').catch(() =>
11+
expect(RequestHandler.request).toHaveBeenCalledWith(
12+
'GET',
13+
expect.any(String),
14+
expect.objectContaining({ headers: { 'User-Agent': 'Node.js' } }),
15+
expect.anything(),
16+
expect.anything()
17+
)
18+
);
19+
});
20+
});

backend/test/routes/Auth.test.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const request = require('supertest');
2+
const app = require('app');
3+
4+
jest.mock('handler/AuthHandler', () => ({
5+
getToken: () => Promise.reject({ error_code: 'maintenance_mode_active' })
6+
}));
7+
8+
describe('/auth endpoint', () => {
9+
it('handles manager maintenance mode', () => {
10+
return new Promise(done => {
11+
request(app)
12+
.post('/console/auth/login')
13+
.then(response => {
14+
expect(response.body.message).toStrictEqual('Manager is currently in maintenance mode');
15+
done();
16+
});
17+
});
18+
});
19+
});

0 commit comments

Comments
 (0)