Sergiu Miclea 8 лет назад
Родитель
Сommit
271c650fd8

+ 3 - 0
src/components/atoms/StatusImage/StatusImage.jsx

@@ -133,6 +133,8 @@ class StatusImage extends React.Component<Props> {
 
   render() {
     let status = this.props.status || ''
+    status = status.toUpperCase()
+    status = status === 'SUCCESS' ? 'COMPLETED' : status
     if (this.props.loading) {
       status = 'RUNNING'
       if (this.props.loadingProgress !== undefined && this.props.loadingProgress > -1) {
@@ -144,6 +146,7 @@ class StatusImage extends React.Component<Props> {
       <Wrapper>
         {status !== 'PROGRESS' ? (
           <Image
+            data-test-id="statusImage-image"
             dangerouslySetInnerHTML={{ __html: Images[status || 'RUNNING'].image }}
             cssStyle={Images[status || 'RUNNING'].style}
           />

+ 3 - 1
src/components/atoms/StatusImage/test.jsx

@@ -23,7 +23,9 @@ const wrap = props => new TestWrapper(shallow(<StatusImage {...props} />), 'stat
 
 describe('StatusImage Component', () => {
   it('renders with status \'SUCCESS\' prop', () => {
-    expect(wrap({ status: 'success' }).prop('status')).toBe('success')
+    let wrapper = wrap({ status: 'success' })
+    /* eslint no-underscore-dangle: off */
+    expect(wrapper.find('image').prop('dangerouslySetInnerHTML').__html.indexOf('EP/Validate/Succes')).toBeGreaterThan(-1)
   })
 
   it('renders progress', () => {

+ 0 - 9
src/components/atoms/TextInput/test.jsx

@@ -32,15 +32,6 @@ describe('TextInput Component', () => {
     expect(onChange.args[0][0].value).toBe('A')
   })
 
-  it('shows required icon', () => {
-    let wrapper = wrap()
-    let required = wrapper.find('required')
-    expect(required.prop('show')).toBe(undefined)
-    wrapper = wrap({ required: true })
-    required = wrapper.find('required')
-    expect(required.prop('show')).toBe(true)
-  })
-
   it('shows close icon', () => {
     let wrapper = wrap()
     let close = wrapper.find('close')

+ 1 - 1
src/components/molecules/EndpointField/EndpointField.jsx

@@ -274,7 +274,7 @@ class Field extends React.Component<Props> {
       <Label>
         <LabelText data-test-id="endpointField-label">{LabelDictionary.get(this.props.name)}</LabelText>
         {infoIcon}
-        {this.props.required ? <Asterisk marginLeft={description ? '4px' : '-16px'} /> : null}
+        {this.props.required ? <Asterisk data-test-id="endpointField-required" marginLeft={description ? '4px' : '-16px'} /> : null}
       </Label>
     )
   }

+ 17 - 1
src/components/molecules/EndpointField/test.jsx

@@ -62,7 +62,23 @@ describe('EndpointField Component', () => {
     expect(textInput.prop('large')).toBe(true)
     expect(textInput.prop('disabled')).toBe(true)
     expect(textInput.prop('highlight')).toBe(true)
-    expect(textInput.prop('required')).toBe(true)
+  })
+
+  it('renders required', () => {
+    let wrapper = wrap({
+      type: 'boolean',
+      value: true,
+      name: 'the_name',
+      required: true,
+    })
+    expect(wrapper.find('required').length).toBe(1)
+    wrapper = wrap({
+      type: 'boolean',
+      value: true,
+      name: 'the_name',
+      required: false,
+    })
+    expect(wrapper.find('required').length).toBe(0)
   })
 
   it('renders integer dropdown field with correct items', () => {

+ 2 - 1
src/components/molecules/WizardOptionsField/WizardOptionsField.jsx

@@ -140,6 +140,7 @@ class WizardOptionsField extends React.Component<Props> {
     if (items.length < 10) {
       return (
         <Dropdown
+          data-test-id={`wOptionsField-enumDropdown-${this.props.name}`}
           width={this.props.width || StyleProps.inputSizes.wizard.width}
           noSelectionMessage="Choose a value"
           selectedItem={selectedItem}
@@ -221,7 +222,7 @@ class WizardOptionsField extends React.Component<Props> {
           {LabelDictionary.get(this.props.name)}
         </LabelText>
         {description ? <InfoIcon text={description} marginLeft={-20} /> : null}
-        {this.props.required ? <Asterisk marginLeft={description ? '4px' : '-16px'} /> : null}
+        {this.props.required ? <Asterisk data-test-id="wOptionsField-required" marginLeft={description ? '4px' : '-16px'} /> : null}
       </Label>
     )
   }

+ 6 - 4
src/components/molecules/WizardOptionsField/test.jsx

@@ -33,9 +33,11 @@ describe('WizardOptionsField Component', () => {
     expect(wrapper.find('textInput').prop('value')).toBe('the_value')
   })
 
-  it('renders required string input', () => {
+  it('renders required field', () => {
     let wrapper = wrap({ name: 'the_name', type: 'string', value: 'the_value', required: true })
-    expect(wrapper.find('textInput').prop('required')).toBe(true)
+    expect(wrapper.find('required').length).toBe(1)
+    wrapper = wrap({ name: 'the_name', type: 'string', value: 'the_value', required: false })
+    expect(wrapper.find('required').length).toBe(0)
   })
 
   it('renders strict boolean with correct value', () => {
@@ -57,8 +59,8 @@ describe('WizardOptionsField Component', () => {
       value: 'reuse_ports',
       enum: ['keep_mac', 'reuse_ports', 'replace_mac'],
     })
-    expect(wrapper.find('dropdown-the_name').prop('selectedItem').label).toBe('Reuse Existing Ports')
-    expect(wrapper.find('dropdown-the_name').prop('items')[3].value).toBe('replace_mac')
+    expect(wrapper.find('enumDropdown-the_name').prop('selectedItem').label).toBe('Reuse Existing Ports')
+    expect(wrapper.find('enumDropdown-the_name').prop('items')[3].value).toBe('replace_mac')
   })
 
   it('renders object table', () => {

+ 1 - 1
src/components/organisms/Navigation/test.jsx

@@ -25,7 +25,7 @@ const wrap = props => new TW(shallow(<Navigation {...props} />), 'navigation')
 describe('Navigation Component', () => {
   it('renders all items', () => {
     let wrapper = wrap()
-    navigationMenu.filter(item => !item.disabled).forEach(item => {
+    navigationMenu.filter(item => !item.disabled && !item.requiresAdmin).forEach(item => {
       expect(wrapper.findText(`item-${item.value}`)).toBe(item.label)
       expect(wrapper.find(`item-${item.value}`).prop('href')).toBe(`/#/${item.value}`)
     })