Skip to content

Commit

Permalink
Merge pull request #5094 from TheRealJon/hidden-descriptor
Browse files Browse the repository at this point in the history
Implement 'hidden' spec descriptor
  • Loading branch information
openshift-merge-robot committed Apr 18, 2020
2 parents d25495a + aab921d commit 771789a
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 14 deletions.
Expand Up @@ -68,20 +68,34 @@ describe('Using OLM descriptor components', () => {
});

testCSV.spec.customresourcedefinitions.owned[0].specDescriptors.forEach((descriptor) => {
it(`displays spec descriptor for ${descriptor.displayName}`, async () => {
const label = operatorView.descriptorLabel(descriptor);
expect(label.isDisplayed()).toBe(true);
});
if (descriptor.path === 'hidden') {
it(`does not display spec descriptor for ${descriptor.displayName}`, async () => {
const label = operatorView.descriptorLabel(descriptor);
expect(label.isPresent()).toBe(false);
});
} else {
it(`displays spec descriptor for ${descriptor.displayName}`, async () => {
const label = operatorView.descriptorLabel(descriptor);
expect(label.isDisplayed()).toBe(true);
});
}
});

testCSV.spec.customresourcedefinitions.owned[0].statusDescriptors
// exclude Conditions since they are included in their own section
.filter((descriptor) => descriptor.path !== 'conditions')
.forEach((descriptor) => {
it(`displays status descriptor for ${descriptor.displayName}`, async () => {
const label = operatorView.descriptorLabel(descriptor);
expect(label.isDisplayed()).toBe(true);
});
if (descriptor.path === 'hidden') {
it(`does not display status descriptor for ${descriptor.displayName}`, async () => {
const label = operatorView.descriptorLabel(descriptor);
expect(label.isPresent()).toBe(false);
});
} else {
it(`displays status descriptor for ${descriptor.displayName}`, async () => {
const label = operatorView.descriptorLabel(descriptor);
expect(label.isDisplayed()).toBe(true);
});
}
});

// Delete operand instance created in proir steps. Fixes a failure when trying to create a
Expand Down
Expand Up @@ -225,7 +225,8 @@ const capabilityComponents = ImmutableMap<
.set(SpecCapability.booleanSwitch, BooleanSwitch)
.set(SpecCapability.password, Secret)
.set(SpecCapability.updateStrategy, UpdateStrategy)
.set(SpecCapability.checkbox, CheckboxUIComponent);
.set(SpecCapability.checkbox, CheckboxUIComponent)
.set(SpecCapability.hidden, null);

const capabilityFor = (specCapability: SpecCapability) => {
if (_.isEmpty(specCapability)) {
Expand Down Expand Up @@ -255,7 +256,7 @@ export const SpecDescriptor = withFallback((props: DescriptorProps) => {
) as SpecCapability;
const Capability = capabilityFor(capability);

return (
return Capability ? (
<dl className="olm-descriptor">
<Tooltip content={descriptor.description}>
<dt className="olm-descriptor__title" data-test-descriptor-label={descriptor.displayName}>
Expand All @@ -273,7 +274,7 @@ export const SpecDescriptor = withFallback((props: DescriptorProps) => {
/>
</dd>
</dl>
);
) : null;
});

type SpecCapabilityProps = CapabilityProps<SpecCapability>;
Expand Up @@ -6,6 +6,7 @@ import {
ResourceRequirementsField,
UpdateStrategyField,
BooleanField,
HiddenField,
} from '@console/shared/src/components/dynamic-form/fields';
import {
CheckboxWidget,
Expand All @@ -23,6 +24,7 @@ export const capabilityFieldMap = Immutable.Map({
[SpecCapability.resourceRequirements]: ResourceRequirementsField,
[SpecCapability.updateStrategy]: UpdateStrategyField,
[SpecCapability.booleanSwitch]: BooleanField,
[SpecCapability.hidden]: HiddenField,
});

export const capabilityWidgetMap = Immutable.Map({
Expand Down
Expand Up @@ -89,7 +89,8 @@ const capabilityComponents = ImmutableMap<
.set(StatusCapability.w3Link, Link)
.set(StatusCapability.k8sPhase, K8sPhase)
.set(StatusCapability.k8sPhaseReason, K8sPhaseReason)
.set(StatusCapability.k8sResourcePrefix, K8sResourceLink);
.set(StatusCapability.k8sResourcePrefix, K8sResourceLink)
.set(StatusCapability.hidden, null);

const capabilityFor = (statusCapability: StatusCapability) => {
if (_.isEmpty(statusCapability)) {
Expand All @@ -111,7 +112,7 @@ export const StatusDescriptor = withFallback((props: DescriptorProps) => {
const capability = _.get(descriptor, ['x-descriptors', 0], null) as StatusCapability;
const Capability = capabilityFor(capability);

return (
return Capability ? (
<dl className="olm-descriptor">
<Tooltip content={descriptor.description}>
<dt className="olm-descriptor__title" data-test-descriptor-label={descriptor.displayName}>
Expand All @@ -135,7 +136,7 @@ export const StatusDescriptor = withFallback((props: DescriptorProps) => {
)}
</dd>
</dl>
);
) : null;
});

type StatusCapabilityProps = CapabilityProps<StatusCapability>;
Expand Down
Expand Up @@ -24,6 +24,7 @@ export enum SpecCapability {
select = 'urn:alm:descriptor:com.tectonic.ui:select:',
advanced = 'urn:alm:descriptor:com.tectonic.ui:advanced',
fieldDependency = 'urn:alm:descriptor:com.tectonic.ui:fieldDependency:',
hidden = 'urn:alm:descriptor:com.tectonic.ui:hidden',
}

export enum StatusCapability {
Expand All @@ -37,6 +38,7 @@ export enum StatusCapability {
k8sPhaseReason = 'urn:alm:descriptor:io.kubernetes.phase:reason',
// Prefix for all kubernetes resource status descriptors.
k8sResourcePrefix = 'urn:alm:descriptor:io.kubernetes:',
hidden = 'urn:alm:descriptor:com.tectonic.ui:hidden',
}

export type Descriptor<T = any> = {
Expand Down

0 comments on commit 771789a

Please sign in to comment.