101 lines
2.3 KiB
JavaScript
101 lines
2.3 KiB
JavaScript
import { augmentFeatures } from '~/security_configuration/utils';
|
|
|
|
const mockSecurityFeatures = [
|
|
{
|
|
name: 'SAST',
|
|
type: 'SAST',
|
|
},
|
|
];
|
|
|
|
const mockComplianceFeatures = [
|
|
{
|
|
name: 'LICENSE_COMPLIANCE',
|
|
type: 'LICENSE_COMPLIANCE',
|
|
},
|
|
];
|
|
|
|
const mockFeaturesWithSecondary = [
|
|
{
|
|
name: 'DAST',
|
|
type: 'DAST',
|
|
secondary: {
|
|
type: 'DAST PROFILES',
|
|
name: 'DAST PROFILES',
|
|
},
|
|
},
|
|
];
|
|
|
|
const mockInvalidCustomFeature = [
|
|
{
|
|
foo: 'bar',
|
|
},
|
|
];
|
|
|
|
const mockValidCustomFeature = [
|
|
{
|
|
name: 'SAST',
|
|
type: 'SAST',
|
|
customField: 'customvalue',
|
|
},
|
|
];
|
|
|
|
const mockValidCustomFeatureSnakeCase = [
|
|
{
|
|
name: 'SAST',
|
|
type: 'SAST',
|
|
custom_field: 'customvalue',
|
|
},
|
|
];
|
|
|
|
const expectedOutputDefault = {
|
|
augmentedSecurityFeatures: mockSecurityFeatures,
|
|
augmentedComplianceFeatures: mockComplianceFeatures,
|
|
};
|
|
|
|
const expectedOutputSecondary = {
|
|
augmentedSecurityFeatures: mockSecurityFeatures,
|
|
augmentedComplianceFeatures: mockFeaturesWithSecondary,
|
|
};
|
|
|
|
const expectedOutputCustomFeature = {
|
|
augmentedSecurityFeatures: mockValidCustomFeature,
|
|
augmentedComplianceFeatures: mockComplianceFeatures,
|
|
};
|
|
|
|
describe('returns an object with augmentedSecurityFeatures and augmentedComplianceFeatures when', () => {
|
|
it('given an empty array', () => {
|
|
expect(augmentFeatures(mockSecurityFeatures, mockComplianceFeatures, [])).toEqual(
|
|
expectedOutputDefault,
|
|
);
|
|
});
|
|
|
|
it('given an invalid populated array', () => {
|
|
expect(
|
|
augmentFeatures(mockSecurityFeatures, mockComplianceFeatures, mockInvalidCustomFeature),
|
|
).toEqual(expectedOutputDefault);
|
|
});
|
|
|
|
it('features have secondary key', () => {
|
|
expect(augmentFeatures(mockSecurityFeatures, mockFeaturesWithSecondary, [])).toEqual(
|
|
expectedOutputSecondary,
|
|
);
|
|
});
|
|
|
|
it('given a valid populated array', () => {
|
|
expect(
|
|
augmentFeatures(mockSecurityFeatures, mockComplianceFeatures, mockValidCustomFeature),
|
|
).toEqual(expectedOutputCustomFeature);
|
|
});
|
|
});
|
|
|
|
describe('returns an object with camelcased keys', () => {
|
|
it('given a customfeature in snakecase', () => {
|
|
expect(
|
|
augmentFeatures(
|
|
mockSecurityFeatures,
|
|
mockComplianceFeatures,
|
|
mockValidCustomFeatureSnakeCase,
|
|
),
|
|
).toEqual(expectedOutputCustomFeature);
|
|
});
|
|
});
|