Skip to content

Commit

Permalink
Adds remaining version test cases, and suppressing error toast
Browse files Browse the repository at this point in the history
  • Loading branch information
spong committed Jun 9, 2022
1 parent 82f58bb commit 6217ca3
Show file tree
Hide file tree
Showing 2 changed files with 136 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
import { useQuery } from 'react-query';
import { InstalledIntegrationArray } from '../../../../../common/detection_engine/schemas/common';
import { fetchInstalledIntegrations } from '../../../containers/detection_engine/rules/api';
import { useAppToasts } from '../../../../common/hooks/use_app_toasts';
import * as i18n from './translations';
// import { useAppToasts } from '../../../../common/hooks/use_app_toasts';
// import * as i18n from './translations';

export interface UseInstalledIntegrationsArgs {
packages?: string[];
}

export const useInstalledIntegrations = ({ packages }: UseInstalledIntegrationsArgs) => {
const { addError } = useAppToasts();
// const { addError } = useAppToasts();

return useQuery<InstalledIntegrationArray>(
[
Expand All @@ -35,8 +35,8 @@ export const useInstalledIntegrations = ({ packages }: UseInstalledIntegrationsA
{
keepPreviousData: true,
onError: (e) => {
// TODO: Suppress if always failing in cases where fleet isn't setup, etc
addError(e, { title: i18n.INTEGRATIONS_FETCH_FAILURE });
// Suppressing for now to prevent excessive errors when fleet isn't configured
// addError(e, { title: i18n.INTEGRATIONS_FETCH_FAILURE });
},
}
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,28 +56,156 @@ describe('Related Integrations Utilities', () => {
});

describe('version is correctly computed', () => {
test('Unknown integration that does not exist', () => {
const integrationDetails = getInstalledRelatedIntegrations(
[
{
package: 'foo1',
version: '~1.2.3',
},
{
package: 'foo2',
version: '^1.2.3',
},
{
package: 'foo3',
version: '1.2.x',
},
],
[]
);

expect(integrationDetails[0].target_version).toEqual('1.2.3');
expect(integrationDetails[1].target_version).toEqual('1.2.3');
expect(integrationDetails[2].target_version).toEqual('1.2.0');
});

test('Integration that is not installed', () => {
const integrationDetails = getInstalledRelatedIntegrations(
[
{
package: 'aws',
integration: 'route53',
version: '~1.2.3',
},
{
package: 'system',
version: '^1.2.3',
},
],
[]
);

expect(integrationDetails[0].target_version).toEqual('1.2.3');
expect(integrationDetails[1].target_version).toEqual('1.2.3');
});

test('Integration that is installed, and its version matches required version', () => {
const integrationDetails = getInstalledRelatedIntegrations(
[
{
package: 'aws',
integration: 'route53',
version: '^1.2.3',
},
{
package: 'system',
version: '~1.2.3',
},
],
[
{
package_name: 'aws',
package_title: 'AWS',
package_version: '1.3.0',
integration_name: 'route53',
integration_title: 'AWS Route 53',
is_enabled: false,
},
{
package_name: 'system',
package_title: 'System',
package_version: '1.2.5',
is_enabled: true,
},
]
);

// Since version is satisfied, we check `package_version`
expect(integrationDetails[0].version_satisfied).toEqual(true);
expect(integrationDetails[0].package_version).toEqual('1.3.0');
expect(integrationDetails[1].version_satisfied).toEqual(true);
expect(integrationDetails[1].package_version).toEqual('1.2.5');
});

test('Integration that is installed, and its version is less than required version', () => {
const integrationDetails = getInstalledRelatedIntegrations(
[
{
package: 'aws',
integration: 'route53',
version: '~123.456.789',
version: '~1.2.3',
},
{
package: 'system',
version: '^1.2.3',
},
],
[
{
package_name: 'aws',
package_title: 'AWS',
package_version: '1.11.0',
package_version: '1.2.0',
integration_name: 'route53',
integration_title: 'AWS Route 53',
is_enabled: false,
},
{
package_name: 'system',
package_title: 'System',
package_version: '1.2.2',
is_enabled: true,
},
]
);

expect(integrationDetails[0].target_version).toEqual('1.2.3');
expect(integrationDetails[1].target_version).toEqual('1.2.3');
});

test('Integration that is installed, and its version is greater than required version', () => {
const integrationDetails = getInstalledRelatedIntegrations(
[
{
package: 'aws',
integration: 'route53',
version: '^1.2.3',
},
{
package: 'system',
version: '~1.2.3',
},
],
[
{
package_name: 'aws',
package_title: 'AWS',
package_version: '2.0.1',
integration_name: 'route53',
integration_title: 'AWS Route 53',
is_enabled: false,
},
{
package_name: 'system',
package_title: 'System',
package_version: '1.3.0',
is_enabled: true,
},
]
);

expect(integrationDetails[0].target_version).toEqual('123.456.789');
expect(integrationDetails[0].target_version).toEqual('1.2.3');
expect(integrationDetails[1].target_version).toEqual('1.2.3');
});
});
});
Expand Down

0 comments on commit 6217ca3

Please sign in to comment.