Skip to content

Commit 5ac1d5f

Browse files
#RI-5829 - resolve comments
1 parent 0c278ed commit 5ac1d5f

File tree

5 files changed

+22
-32
lines changed

5 files changed

+22
-32
lines changed

redisinsight/ui/src/pages/rdi/instance/InstancePage.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import React, { useEffect, useRef, useState } from 'react'
22
import { useDispatch, useSelector } from 'react-redux'
33
import { useHistory, useLocation, useParams } from 'react-router-dom'
44
import { Formik, FormikProps } from 'formik'
5-
import { upperFirst } from 'lodash'
65

76
import {
87
appContextSelector,
@@ -23,7 +22,7 @@ import {
2322
setPipelineInitialState,
2423
} from 'uiSrc/slices/rdi/pipeline'
2524
import { IPipeline } from 'uiSrc/slices/interfaces'
26-
import { createAxiosError, Nullable, pipelineToJson } from 'uiSrc/utils'
25+
import { createAxiosError, Nullable, pipelineToJson, rdiErrorMessages } from 'uiSrc/utils'
2726
import { addErrorNotification } from 'uiSrc/slices/app/notifications'
2827

2928
import InstancePageRouter from './InstancePageRouter'
@@ -91,13 +90,7 @@ const RdiInstancePage = ({ routes = [] }: Props) => {
9190
const onSubmit = (values: IPipeline) => {
9291
const JSONValues = pipelineToJson(values, (errors) => {
9392
dispatch(addErrorNotification(createAxiosError({
94-
message: (
95-
<>
96-
{`${upperFirst(errors[0].filename)} has an invalid structure.`}
97-
<br />
98-
{errors[0].msg}
99-
</>
100-
)
93+
message: rdiErrorMessages.invalidStructure(errors[0].filename, errors[0].msg)
10194
})))
10295
})
10396
if (!JSONValues) {

redisinsight/ui/src/pages/rdi/pipeline-management/pages/config/Config.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import TestConnectionsPanel from 'uiSrc/pages/rdi/pipeline-management/components
1616
import TemplatePopover from 'uiSrc/pages/rdi/pipeline-management/components/template-popover'
1717
import { testConnectionsAction, rdiTestConnectionsSelector, testConnectionsController } from 'uiSrc/slices/rdi/testConnections'
1818
import { appContextPipelineManagement } from 'uiSrc/slices/app/context'
19-
import { createAxiosError, isEqualPipelineFile, yamlToJson } from 'uiSrc/utils'
19+
import { createAxiosError, isEqualPipelineFile, rdiErrorMessages, yamlToJson } from 'uiSrc/utils'
2020

2121
import { addErrorNotification } from 'uiSrc/slices/app/notifications'
2222
import styles from './styles.module.scss'
@@ -59,13 +59,7 @@ const Config = () => {
5959
const testConnections = () => {
6060
const JSONValue = yamlToJson(config, (msg) => {
6161
dispatch(addErrorNotification(createAxiosError({
62-
message: (
63-
<>
64-
Config has an invalid structure.
65-
<br />
66-
{msg}
67-
</>
68-
)
62+
message: rdiErrorMessages.invalidStructure('config', msg)
6963
})))
7064
})
7165
if (!JSONValue) {

redisinsight/ui/src/pages/rdi/pipeline-management/pages/job/Job.tsx

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { useState, useEffect, useRef, useCallback } from 'react'
22
import { useDispatch, useSelector } from 'react-redux'
33
import { EuiText, EuiLink, EuiButton, EuiLoadingSpinner, EuiToolTip } from '@elastic/eui'
44
import { useFormikContext } from 'formik'
5-
import { upperFirst, get, throttle } from 'lodash'
5+
import { get, throttle } from 'lodash'
66
import cx from 'classnames'
77
import { monaco as monacoEditor } from 'react-monaco-editor'
88

@@ -14,7 +14,7 @@ import MonacoYaml from 'uiSrc/components/monaco-editor/components/monaco-yaml'
1414
import DryRunJobPanel from 'uiSrc/pages/rdi/pipeline-management/components/jobs-panel'
1515
import { DSL, KEYBOARD_SHORTCUTS } from 'uiSrc/constants'
1616
import TemplatePopover from 'uiSrc/pages/rdi/pipeline-management/components/template-popover'
17-
import { createAxiosError, isEqualPipelineFile, Maybe, yamlToJson } from 'uiSrc/utils'
17+
import { createAxiosError, isEqualPipelineFile, Maybe, rdiErrorMessages, yamlToJson } from 'uiSrc/utils'
1818
import { getUtmExternalLink } from 'uiSrc/utils/links'
1919
import { KeyboardShortcut } from 'uiSrc/components'
2020

@@ -69,13 +69,7 @@ const Job = (props: Props) => {
6969
const handleDryRunJob = () => {
7070
const JSONValue = yamlToJson(value, (msg) => {
7171
dispatch(addErrorNotification(createAxiosError({
72-
message: (
73-
<>
74-
{`${upperFirst(name)} has an invalid structure.`}
75-
<br />
76-
{msg}
77-
</>
78-
)
72+
message: rdiErrorMessages.invalidStructure(name, msg)
7973
})))
8074
})
8175
if (!JSONValue) {

redisinsight/ui/src/pages/rdi/pipeline-management/pages/job/JobsWrapper.spec.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@ import React from 'react'
22
import reactRouterDom from 'react-router-dom'
33
import { useFormikContext } from 'formik'
44
import { cloneDeep } from 'lodash'
5+
import { AxiosError } from 'axios'
6+
57
import { deleteChangedFile, getPipelineStrategies, rdiPipelineSelector, setChangedFile } from 'uiSrc/slices/rdi/pipeline'
68
import { cleanup, fireEvent, mockedStore, render, screen } from 'uiSrc/utils/test-utils'
7-
89
import { sendPageViewTelemetry, TelemetryPageView, sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry'
910
import { MOCK_RDI_PIPELINE_CONFIG, MOCK_RDI_PIPELINE_DATA, MOCK_RDI_PIPELINE_JOB2 } from 'uiSrc/mocks/data/rdi'
1011
import { FileChangeType } from 'uiSrc/slices/interfaces'
12+
import { addErrorNotification } from 'uiSrc/slices/app/notifications'
1113
import JobWrapper from './JobWrapper'
12-
import {addErrorNotification} from "uiSrc/slices/app/notifications";
13-
import {EuiText} from "@elastic/eui";
14-
import {AxiosError} from "axios";
1514

1615
jest.mock('uiSrc/telemetry', () => ({
1716
...jest.requireActual('uiSrc/telemetry'),

redisinsight/ui/src/utils/errors.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { AxiosError } from 'axios'
2-
import { capitalize, isEmpty, isString, isArray, set, isNumber } from 'lodash'
2+
import { capitalize, isEmpty, isString, isArray, set, isNumber, upperFirst } from 'lodash'
33
import React from 'react'
44
import { EuiSpacer } from '@elastic/eui'
55
import { CustomErrorCodes } from 'uiSrc/constants'
@@ -14,7 +14,7 @@ export const getRdiValidationMessage = (message: string = '', loc?: Array<string
1414
}
1515

1616
const [, ...rest] = loc
17-
const formattedLoc = rest.reduce<string[]>((acc, curr, idx) => {
17+
const formattedLoc = rest.reduce<string[]>((acc, curr) => {
1818
if (isNumber(curr)) {
1919
acc[acc.length - 1] += `[${curr}]`
2020
} else {
@@ -202,3 +202,13 @@ export const parseCustomError = (err: CustomError | string = DEFAULT_ERROR_MESSA
202202

203203
return set(error, 'response.data', parsedError) as AxiosError
204204
}
205+
206+
export const rdiErrorMessages = {
207+
invalidStructure: (name = 'Value', msg = 'Failed to convert YAML to JSON structure') => (
208+
<>
209+
{`${upperFirst(name)} has an invalid structure.`}
210+
<br />
211+
{msg}
212+
</>
213+
),
214+
}

0 commit comments

Comments
 (0)