import { CompassBuildEventState, CompassCatalogBootstrapStatus, CompassChangeMetadata, CompassComponentType, CompassComponentTypeObject, CompassCreateEventInput, CompassCreatePullRequestStatus, CompassCustomBooleanField, CompassCustomEventIcon, CompassCustomMultiSelectField, CompassCustomNumberField, CompassCustomSelectFieldOption, CompassCustomSingleSelectField, CompassCustomTextField, CompassCustomUserField, CompassDeploymentEventEnvironmentCategory, CompassDeploymentEventState, CompassEventType, CompassExternalAlias, CompassExternalAliasInput, CompassField, CompassIncidentEventSeverityLevel, CompassIncidentEventState, CompassLifecycleEventStage, CompassLinkType, CompassMetricDefinition, CompassMetricDefinitionFormatInput, CompassMetricDefinitionFormatSuffixInput, CompassMetricDefinitionType, CompassMetricSource, CompassRelationshipType, CompassVulnerabilityEventSeverityLevel, CompassVulnerabilityEventState, Component, ConfigFileActions, ConfigFileMetadata, CreateEventSourceInput, CustomFieldFromYAML, CustomFieldInput, CustomFieldType, DataProviderAlertEvent, DataProviderBuildEvent, DataProviderCustomEvent, DataProviderDeploymentEvent, DataProviderFlagEvent, DataProviderIncidentEvent, DataProviderLifecycleEvent, DataProviderPullRequestEvent, DataProviderPushEvent, DataProviderVulnerabilityEvent, EventSource, MetricValue, OnCallScheduleInfo, PageInfo, QueryError, } from '@atlassian/forge-graphql-types'; import { EXTERNAL_ALIAS_SOURCE_COMPONENT_NAME, EXTERNAL_ALIAS_SOURCE_COMPONENT_PATH_TO_FILE, } from '../../requests/config-as-code-requests/helpers/createOrUpdateComponent/constants'; import { GRAPHQL_GATEWAY_SOURCE, QUERY_ERROR } from '../../helpers'; import { generateExternalIdWithPrefix } from '../../requests/config-as-code-requests/helpers/createOrUpdateComponent/helpers'; import { CompassYaml, YamlLink, YamlRelationships } from '../../types'; import { validTypeIdValues } from '../../requests/config-as-code-requests/helpers/validate-config-file/models/compass-yaml-types'; // Generic mocks const MOCK_COMPONENT_ID = 'ari:cloud:compass:a0000000-b000-c000-d000-e00000000000:component/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000001'; const MOCK_COMPONENT_TYPE_ID = CompassComponentType.Service; const MOCK_CUSTOM_COMPONENT_TYPE_ID = 'ari:cloud:compass:a0000000-b000-c000-d000-e00000000000:component-type/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000001'; const MOCK_COMPONENT_ID_2 = 'ari:cloud:compass:a0000000-b000-c000-d000-e00000000000:component/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000002'; const MOCK_COMPONENT_ID_3 = 'ari:cloud:compass:a0000000-b000-c000-d000-e00000000000:component/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000003'; const MOCK_CLOUD_ID = 'a0000000-b000-c000-d000-e00000000000'; const MOCK_ANOTHER_CLOUD_ID = 'a0000000-b000-c000-d000-e00000000001'; const MOCK_COMPONENT_NAME = 'mock-component-name'; const MOCK_CAPITALIZED_COMPONENT_NAME = 'Mock-Component-Name'; const MOCK_COMPONENT_PATH = 'repo/compass.yml'; const MOCK_COMPONENT_OLD_PATH = 'repo/src/compass.yml'; const MOCK_COMPONENT_CAPITALIZED_OLD_PATH = 'repo/Src/compass.yml'; const MOCK_COMPONENT_DESC = 'mock component description'; const MOCK_COMPONENT_DESC_2 = 'mock component description 2'; const MOCK_COMPONENT_SLUG_1 = 'mock-component-slug-1'; const MOCK_COMPONENT_SLUG_2 = 'mock-component-slug-2'; const MOCK_TIME = '2022-05-05T17:49:12.664Z'; // Errors const MOCK_ERROR_TYPE = 'MockErrorType'; const MOCK_ERROR_MESSAGE = 'Mock error message'; const MOCK_GQL_ERROR = { message: MOCK_ERROR_MESSAGE, extensions: { errorSource: GRAPHQL_GATEWAY_SOURCE, classification: MOCK_ERROR_TYPE, }, }; const MOCK_QUERY_ERROR: QueryError = { __typename: QUERY_ERROR, message: MOCK_ERROR_MESSAGE, extensions: [ { errorType: MOCK_ERROR_TYPE, statusCode: 500, }, ], }; const MOCK_MUTATION_ERROR_MESSAGE = 'Mock mutation error message'; const MOCK_MUTATION_ERROR = { message: MOCK_MUTATION_ERROR_MESSAGE, extensions: [ { errorType: MOCK_ERROR_TYPE, statusCode: 501, }, ], }; const MOCK_MUTATION_ERROR_SINGLE = { message: MOCK_MUTATION_ERROR_MESSAGE, extensions: { errorType: MOCK_ERROR_TYPE, statusCode: 501, }, }; const MOCK_URL = 'url'; const MOCK_URL_2 = 'url2'; const MOCK_COMPONENT_LABELS = ['label']; const MOCK_DEDUPLICATION_ID = 'BB-REPO-ID-OR-PROJECT-ID-GIT'; const MOCK_NEW_PATH = 'updated/path/in/repo'; const MOCK_CAPITALIZED_NEW_PATH = 'Updated/Path/In/repo'; // External Alias const MOCK_EXTERNAL_ID = 'mock-external-id'; const MOCK_EXTERNAL_SOURCE = 'mock-external-source'; const MOCK_ADDITIONAL_EXTERNAL_ALIASES = [ { externalId: MOCK_EXTERNAL_ID, externalSource: MOCK_EXTERNAL_SOURCE, }, ]; const MOCK_EVENT_URL = 'event-url'; const MOCK_EXTERNAL_ALIAS = { externalId: MOCK_EXTERNAL_ID, externalSource: MOCK_EXTERNAL_SOURCE, }; const MOCK_EXTERNAL_ALIAS_ID = { externalAliasId: MOCK_EXTERNAL_ID, externalSource: MOCK_EXTERNAL_SOURCE, }; const MOCK_EXTERNAL_ALIAS_2 = { externalId: 'mock-external-id-2', externalSource: 'mock-external-source-2', }; // Event sources const MOCK_EVENT_SOURCE_ID = 'mock-event-source-id'; const MOCK_EVENT_SOURCE_ID_2 = 'mock-event-source-id-2'; const MOCK_EXTERNAL_EVENT_SOURCE_ID = 'mock-external-event-source-id'; const MOCK_EXTERNAL_EVENT_SOURCE_ID_2 = 'mock-external-event-source-id-2'; const MOCK_EVENT_SOURCE_INPUT = ( externalEventSourceId: string = MOCK_EXTERNAL_EVENT_SOURCE_ID, ): CreateEventSourceInput => ({ cloudId: MOCK_CLOUD_ID, eventType: CompassEventType.Deployment, externalEventSourceId, }); const MOCK_GET_EVENT_SOURCE = ( externalEventSourceId: string = MOCK_EXTERNAL_EVENT_SOURCE_ID, id: string = MOCK_EVENT_SOURCE_ID, ): EventSource => ({ id, eventType: CompassEventType.Deployment, externalEventSourceId, }); // Component Types const MOCK_COMPONENT_TYPE_NAME = 'Service'; const MOCK_CUSTOM_COMPONENT_TYPE_NAME = 'mock-component-type-name'; const MOCK_COMPONENT_TYPE_DESCRIPTION = 'mock-component-type-description'; const MOCK_COMPONENT_TYPE_ICON_URL = 'mock-component-type-icon-url'; const MOCK_COMPONENT_TYPE_DEF: CompassComponentTypeObject = { id: MOCK_COMPONENT_TYPE_ID, name: MOCK_COMPONENT_TYPE_NAME, description: MOCK_COMPONENT_TYPE_DESCRIPTION, iconUrl: MOCK_COMPONENT_TYPE_ICON_URL, }; const MOCK_CUSTOM_COMPONENT_TYPE_DEF: CompassComponentTypeObject = { id: MOCK_CUSTOM_COMPONENT_TYPE_ID, name: MOCK_CUSTOM_COMPONENT_TYPE_NAME, description: MOCK_COMPONENT_TYPE_DESCRIPTION, iconUrl: MOCK_COMPONENT_TYPE_ICON_URL, }; // Metrics const MOCK_METRIC_DEF_ID = 'mock-metric-definition-id'; const MOCK_METRIC_DEF_NAME = 'mock-metric-definition-name'; const MOCK_METRIC_FORMAT_SUFFIX_INPUT: CompassMetricDefinitionFormatSuffixInput = { suffix: '%' }; const MOCK_METRIC_FORMAT_SUFFIX: CompassMetricDefinitionFormatInput = { suffix: MOCK_METRIC_FORMAT_SUFFIX_INPUT, }; const MOCK_METRIC_DEF: CompassMetricDefinition = { __typename: 'CompassMetricDefinition', id: MOCK_METRIC_DEF_ID, name: MOCK_METRIC_DEF_NAME, description: 'test description', format: MOCK_METRIC_FORMAT_SUFFIX_INPUT, type: CompassMetricDefinitionType.BuiltIn, derivedEventTypes: [CompassEventType.Deployment], }; const MOCK_EXTERNAL_METRIC_SOURCE_ID = 'mock-external-metric-source-id'; const MOCK_METRIC_SOURCE_URL = 'https://mock-metric-source-url.com'; const MOCK_METRIC_SOURCE_ID = 'mock-metric-source-id'; const MOCK_METRIC_SOURCE: CompassMetricSource = { __typename: 'CompassMetricSource', id: MOCK_METRIC_SOURCE_ID, externalMetricSourceId: MOCK_EXTERNAL_METRIC_SOURCE_ID, url: MOCK_METRIC_SOURCE_URL, metricDefinition: { id: MOCK_METRIC_DEF_ID, name: MOCK_METRIC_DEF_NAME, type: CompassMetricDefinitionType.Custom, }, }; const MOCK_DERIVED_METRIC_SOURCE: CompassMetricSource = { __typename: 'CompassMetricSource', id: MOCK_METRIC_SOURCE_ID, externalMetricSourceId: MOCK_EXTERNAL_METRIC_SOURCE_ID, url: MOCK_METRIC_SOURCE_URL, derivedFrom: [MOCK_GET_EVENT_SOURCE()], metricDefinition: { id: MOCK_METRIC_DEF_ID, name: MOCK_METRIC_DEF_NAME, type: CompassMetricDefinitionType.BuiltIn, }, }; const MOCK_METRIC_SOURCE_PAGEINFO: PageInfo = { hasPreviousPage: false, startCursor: '', hasNextPage: true, endCursor: '_sa_WyLhmKzhiIHih4biloTkiaHkpLnhsIrguY7ioJXgto7koobmgJHjoIjlsIBcdTAwMDEiXQ==', }; const MOCK_METRIC_DEF_WITH_SOURCES: CompassMetricDefinition = { ...MOCK_METRIC_DEF, metricSources: { __typename: 'CompassMetricSourcesConnection', pageInfo: MOCK_METRIC_SOURCE_PAGEINFO, nodes: [MOCK_METRIC_SOURCE], }, }; const MOCK_METRIC_DEF_WITH_DERIVED_SOURCES: CompassMetricDefinition = { ...MOCK_METRIC_DEF, metricSources: { __typename: 'CompassMetricSourcesConnection', pageInfo: MOCK_METRIC_SOURCE_PAGEINFO, nodes: [MOCK_DERIVED_METRIC_SOURCE], }, }; const MOCK_METRIC_DEF_WITH_PAGINATED_SOURCES = { ...MOCK_METRIC_DEF, metricSources: { __typename: 'CompassMetricSourcesConnection', pageInfo: MOCK_METRIC_SOURCE_PAGEINFO, nodes: [MOCK_METRIC_SOURCE], }, }; // Catalog Bootstrap Status const MOCK_CATALOG_BOOTSTRAP_STATUS = { __typename: 'CompassCatalogBootstrap', status: CompassCatalogBootstrapStatus.Complete, }; // Data manager const MOCK_DATA_MANAGER_EXTERNAL_SOURCE_URL = 'https://mock-data-manager-external-source.com'; const MOCK_DATA_MANAGER = { externalSourceURL: MOCK_DATA_MANAGER_EXTERNAL_SOURCE_URL, }; const MOCK_ECOSYSTEM_APP_ID = 'mock-app-id'; // Labels const MOCK_LABEL = 'mock-label'; const MOCK_LABEL_2 = 'mock-label-2'; // Links const MOCK_LINK = { name: 'mock-link-name', type: CompassLinkType.Project, url: 'https://mock-link-url.com', }; const MOCK_LINK_2 = { name: 'mock-link-name-2', type: CompassLinkType.Dashboard, url: 'https://mock-link-url-2.com', }; const MOCK_GET_LINK = { id: 'mock-link-id', name: 'mock-link-name', type: CompassLinkType.Project, url: 'https://mock-link-url.com', }; const MOCK_GET_LINK_2 = { id: 'mock-link-id-2', name: 'mock-link-name-2', type: CompassLinkType.Dashboard, url: 'https://mock-link-url-2.com', }; // PageInfo const MOCK_SEARCH_PAGEINFO = { hasNextPage: true, endCursor: '_sa_WyLhmKzhiIHih4biloTkiaHkpLnhsIrguY7ioJXgto7koobmgJHjoIjlsIBcdTAwMDEiXQ==', }; const MOCK_METRIC_DEF_PAGEINFO = { hasPrevPage: false, startCursor: '', hasNextPage: true, endCursor: '_sa_WyLhmKzhiIHih4biloTkiaHkpLnhsIrguY7ioJXgto7koobmgJHjoIjlsIBcdTAwMDEiXQ==', }; const MOCK_APPLICATION_MANAGED_COMPONENTS_PAGEINFO = { hasPrevPage: false, startCursor: '', hasNextPage: true, endCursor: '_sa_WyLhmKzhiIHih4biloTkiaHkpLnhsIrguY7ioJXgto7koobmgJHjoIjlsIBcdTAwMDEiXQ==', }; // Relationships const MOCK_RELATIONSHIP = { nodeId: MOCK_COMPONENT_ID_2, type: CompassRelationshipType.DependsOn, }; const MOCK_RELATIONSHIP_2 = { nodeId: MOCK_COMPONENT_ID_3, type: CompassRelationshipType.DependsOn, }; // Components const MOCK_BASE_COMPONENT = { name: MOCK_COMPONENT_NAME, description: MOCK_COMPONENT_DESC, slug: MOCK_COMPONENT_SLUG_1, type: CompassComponentType.Service, typeId: MOCK_COMPONENT_TYPE_ID, changeMetadata: {} as CompassChangeMetadata, fields: { tier: ['1'], }, }; const MOCK_BASE_COMPONENT_WITHOUT_FIELDS = { name: MOCK_COMPONENT_NAME, description: MOCK_COMPONENT_DESC, slug: MOCK_COMPONENT_SLUG_1, type: CompassComponentType.Application, typeId: 'APPLICATION', changeMetadata: {} as CompassChangeMetadata, }; const MOCK_BASE_COMPONENT_WITH_ID = { id: MOCK_COMPONENT_ID, ...MOCK_BASE_COMPONENT, }; const MOCK_CHANGED_COMPONENT = { ...MOCK_BASE_COMPONENT_WITH_ID, description: MOCK_COMPONENT_DESC_2, slug: MOCK_COMPONENT_SLUG_2, links: [MOCK_LINK, MOCK_LINK_2], relationships: [MOCK_RELATIONSHIP, MOCK_RELATIONSHIP_2], labels: [MOCK_LABEL, MOCK_LABEL_2], }; const MOCK_CHANGED_COMPONENT_WITH_LIFECYCLE_FIELD = { ...MOCK_BASE_COMPONENT_WITH_ID, description: MOCK_COMPONENT_DESC_2, links: [MOCK_LINK, MOCK_LINK_2], relationships: [MOCK_RELATIONSHIP, MOCK_RELATIONSHIP_2], labels: [MOCK_LABEL, MOCK_LABEL_2], fields: { tier: ['1'], lifecycle: ['Pre-release'], }, }; const MOCK_GET_CHANGED_COMPONENT = { ...MOCK_BASE_COMPONENT_WITH_ID, description: MOCK_COMPONENT_DESC_2, slug: MOCK_COMPONENT_SLUG_2, links: [MOCK_GET_LINK, MOCK_GET_LINK_2], relationships: [MOCK_RELATIONSHIP, MOCK_RELATIONSHIP_2], labels: [MOCK_LABEL, MOCK_LABEL_2], }; const MOCK_GET_CHANGED_COMPONENT_WITH_LIFECYCLE_FIELD = { ...MOCK_GET_CHANGED_COMPONENT, fields: { tier: ['1'], lifecycle: ['Pre-release'], }, }; const MOCK_GET_COMPONENT_WITH_CHANGED_TYPEID_FIELD = { ...MOCK_GET_CHANGED_COMPONENT, typeId: validTypeIdValues.CAPABILITY, }; const MOCK_OPTION_UUIDS = [ '9463ecdd-20f3-46e1-9642-ff4ca93e0161', '9a7cd356-6f16-4bb9-9f45-c7f24789b5c3', 'ee08a734-7ccc-4a22-a05a-ad6fedfd40c8', ]; const MOCK_OPTION_UUIDS_2 = [ '123e4567-e89b-12d3-a456-426614174000', '123e4567-e89b-12d3-a456-426614174001', '123e4567-e89b-12d3-a456-426614174002', ]; const MOCK_COMPASS_SELECT_FIELD_OPTIONS: CompassCustomSelectFieldOption[] = MOCK_OPTION_UUIDS.map((optionId) => ({ id: optionId, value: optionId, })); const MOCK_COMPASS_SELECT_FIELD_OPTIONS_2: CompassCustomSelectFieldOption[] = MOCK_OPTION_UUIDS_2.map((optionId) => ({ id: optionId, value: optionId, })); const MOCK_GET_CHANGED_COMPONENT_WITH_CUSTOM_FIELDS = { ...MOCK_BASE_COMPONENT_WITH_ID, customFields: [ { definition: { id: 'testBooleanFieldId', name: 'testBooleanField' }, booleanValue: true, }, { definition: { id: 'testNumberFieldId', name: 'testNumberField' }, numberValue: 42, }, { definition: { id: 'testTextFieldId', name: 'testTextField' }, textValue: 'test custom field value', }, { definition: { id: 'testUserFieldId', name: 'testUserField' }, userIdValue: 'ari:cloud:identity::user/5cee8d75e08e8b0f2a6369a0', }, { definition: { id: 'testSingleSelectFieldId', name: 'testSingleSelectField', }, option: MOCK_COMPASS_SELECT_FIELD_OPTIONS[0], }, { definition: { id: 'testMultiSelectFieldId', name: 'testMultiSelectField', }, options: MOCK_COMPASS_SELECT_FIELD_OPTIONS, }, ], }; const MOCK_CUSTOM_FIELD_INPUTS: CustomFieldInput[] = [ { definitionId: 'testBooleanFieldId', type: 'boolean', value: true }, { definitionId: 'testNumberFieldId', type: 'number', value: 42 }, { definitionId: 'testTextFieldId', type: 'text', value: 'test custom field value', }, { definitionId: 'testUserFieldId', type: 'user', value: 'ari:cloud:identity::user/5cee8d75e08e8b0f2a6369a0', }, { definitionId: 'testSingleSelectFieldId', type: 'single_select', value: MOCK_OPTION_UUIDS[0], }, { definitionId: 'testMultiSelectFieldId', type: 'multi_select', value: MOCK_OPTION_UUIDS, }, ]; const TEXT_CUSTOM_FIELD_IN_YAML = { name: 'testTextFieldName', type: CustomFieldType.TEXT, value: 'test custom field value', }; const NUMBER_CUSTOM_FIELD_IN_YAML = { name: 'testNumberFieldName', type: CustomFieldType.NUMBER, value: 42, }; const BOOLEAN_CUSTOM_FIELD_IN_YAML = { name: 'testBooleanFieldName', type: CustomFieldType.BOOLEAN, value: false, }; const USER_CUSTOM_FIELD_IN_YAML = { name: 'testUserFieldName', type: CustomFieldType.USER, value: 'ari:cloud:identity::user/5cee8d75e08e8b0f2a6369a0', }; const SINGLE_SELECT_CUSTOM_FIELD_IN_YAML = { name: 'testSingleSelectFieldName', type: CustomFieldType.SINGLE_SELECT, value: MOCK_OPTION_UUIDS[0], }; const MULTI_SELECT_CUSTOM_FIELD_IN_YAML = { name: 'testMultiSelectFieldName', type: CustomFieldType.MULTI_SELECT, value: MOCK_OPTION_UUIDS, }; // Uses MOCK_OPTION_UUIDS_2 for testing. const SINGLE_SELECT_CUSTOM_FIELD_IN_YAML_WITH_DISPLAY_VALUE = { name: 'testSingleSelectFieldName', type: CustomFieldType.SINGLE_SELECT, displayValue: MOCK_OPTION_UUIDS_2[1], }; // Uses MOCK_OPTION_UUIDS_2 for testing. const MULTI_SELECT_CUSTOM_FIELD_IN_YAML_WITH_DISPLAY_VALUE = { name: 'testMultiSelectFieldName', type: CustomFieldType.MULTI_SELECT, displayValue: MOCK_OPTION_UUIDS_2.slice(0, 1), }; const MOCK_CUSTOM_FIELDS_IN_YAML: CustomFieldFromYAML[] = [ TEXT_CUSTOM_FIELD_IN_YAML, BOOLEAN_CUSTOM_FIELD_IN_YAML, NUMBER_CUSTOM_FIELD_IN_YAML, USER_CUSTOM_FIELD_IN_YAML, SINGLE_SELECT_CUSTOM_FIELD_IN_YAML, MULTI_SELECT_CUSTOM_FIELD_IN_YAML, ]; const MOCK_CUSTOM_FIELDS_IN_YAML_2: CustomFieldFromYAML[] = [ TEXT_CUSTOM_FIELD_IN_YAML, BOOLEAN_CUSTOM_FIELD_IN_YAML, NUMBER_CUSTOM_FIELD_IN_YAML, USER_CUSTOM_FIELD_IN_YAML, SINGLE_SELECT_CUSTOM_FIELD_IN_YAML_WITH_DISPLAY_VALUE, MULTI_SELECT_CUSTOM_FIELD_IN_YAML_WITH_DISPLAY_VALUE, ]; const UPDATED_MOCK_CUSTOM_FIELD_INPUTS: CustomFieldInput[] = [ { definitionId: 'testBooleanFieldId', type: 'boolean', value: false }, ]; const UPDATED_MOCK_CUSTOM_FIELD_INPUTS_WITH_DISPLAY_VALUE: CustomFieldInput[] = [ { definitionId: 'testBooleanFieldId', type: 'boolean', value: false, }, { definitionId: 'testSingleSelectFieldId', type: CustomFieldType.SINGLE_SELECT, value: MOCK_OPTION_UUIDS_2[1], }, { definitionId: 'testMultiSelectFieldId', type: CustomFieldType.MULTI_SELECT, value: MOCK_OPTION_UUIDS_2.slice(0, 1), }, ]; const MOCK_BOOLEAN_CUSTOM_FIELD = { definition: { id: 'testBooleanFieldId', name: 'testBooleanFieldName' }, booleanValue: true, }; const MOCK_NUMBER_CUSTOM_FIELD = { definition: { id: 'testNumberFieldId', name: 'testNumberFieldName' }, numberValue: 42, }; const MOCK_TEXT_CUSTOM_FIELD = { definition: { id: 'testTextFieldId', name: 'testTextFieldName', }, textValue: 'test custom field value', }; const MOCK_USER_CUSTOM_FIELD = { definition: { id: 'testUserFieldId', name: 'testUserFieldName', }, userIdValue: 'ari:cloud:identity::user/5cee8d75e08e8b0f2a6369a0', }; const MOCK_SINGLE_SELECT_CUSTOM_FIELD: CompassCustomSingleSelectField = { definition: { id: 'testSingleSelectFieldId', name: 'testSingleSelectFieldName', options: MOCK_COMPASS_SELECT_FIELD_OPTIONS, }, option: MOCK_COMPASS_SELECT_FIELD_OPTIONS[0], }; const MOCK_SINGLE_SELECT_CUSTOM_FIELD_2: CompassCustomSingleSelectField = { definition: { id: 'testSingleSelectFieldId', name: 'testSingleSelectFieldName', options: MOCK_COMPASS_SELECT_FIELD_OPTIONS_2, }, option: MOCK_COMPASS_SELECT_FIELD_OPTIONS_2[0], }; const MOCK_MULTI_SELECT_CUSTOM_FIELD: CompassCustomMultiSelectField = { definition: { id: 'testMultiSelectFieldId', name: 'testMultiSelectFieldName', options: MOCK_COMPASS_SELECT_FIELD_OPTIONS, }, // Ordering of multi_select options on our mock component will be different than ordering of // multi_select options in the component yaml options: [ MOCK_COMPASS_SELECT_FIELD_OPTIONS[2], MOCK_COMPASS_SELECT_FIELD_OPTIONS[0], MOCK_COMPASS_SELECT_FIELD_OPTIONS[1], ], }; const MOCK_MULTI_SELECT_CUSTOM_FIELD_2: CompassCustomMultiSelectField = { definition: { id: 'testMultiSelectFieldId', name: 'testMultiSelectFieldName', options: MOCK_COMPASS_SELECT_FIELD_OPTIONS_2, }, options: [MOCK_COMPASS_SELECT_FIELD_OPTIONS_2[2]], }; const MOCK_CUSTOM_FIELDS: ( | CompassCustomBooleanField | CompassCustomNumberField | CompassCustomTextField | CompassCustomUserField | CompassCustomSingleSelectField | CompassCustomMultiSelectField )[] = [ MOCK_BOOLEAN_CUSTOM_FIELD, MOCK_NUMBER_CUSTOM_FIELD, MOCK_TEXT_CUSTOM_FIELD, MOCK_USER_CUSTOM_FIELD, MOCK_SINGLE_SELECT_CUSTOM_FIELD, MOCK_MULTI_SELECT_CUSTOM_FIELD, ]; const MOCK_CUSTOM_FIELDS_WITH_ANOTHER_CF_OPTION: ( | CompassCustomBooleanField | CompassCustomNumberField | CompassCustomTextField | CompassCustomUserField | CompassCustomSingleSelectField | CompassCustomMultiSelectField )[] = [ MOCK_BOOLEAN_CUSTOM_FIELD, MOCK_NUMBER_CUSTOM_FIELD, MOCK_TEXT_CUSTOM_FIELD, MOCK_USER_CUSTOM_FIELD, MOCK_SINGLE_SELECT_CUSTOM_FIELD_2, MOCK_MULTI_SELECT_CUSTOM_FIELD_2, ]; const MOCK_BASE_COMPONENT_WITH_CUSTOM_FIELDS = { ...MOCK_BASE_COMPONENT, customFields: MOCK_CUSTOM_FIELD_INPUTS, }; const MOCK_BASE_CREATE_COMPONENT_WITH_CUSTOM_FIELDS_WITH_ID = { id: MOCK_COMPONENT_ID, ...MOCK_BASE_COMPONENT, customFields: MOCK_CUSTOM_FIELD_INPUTS, }; const MOCK_BASE_GET_COMPONENT_WITH_CUSTOM_FIELDS_WITH_ID = { id: MOCK_COMPONENT_ID, ...MOCK_BASE_COMPONENT, customFields: MOCK_CUSTOM_FIELDS, }; const MOCK_BASE_GET_COMPONENT_WITH_CUSTOM_FIELDS_WITH_ID_2 = { id: MOCK_COMPONENT_ID, ...MOCK_BASE_COMPONENT, customFields: MOCK_CUSTOM_FIELDS_WITH_ANOTHER_CF_OPTION, }; const MOCK_CHANGED_COMPONENT_WITH_CUSTOM_FIELDS = { ...MOCK_BASE_COMPONENT_WITH_ID, customFields: MOCK_CUSTOM_FIELD_INPUTS, }; const MOCK_GET_BASE_COMPONENT_WITH_EXTERNAL_ALIAS = { ...MOCK_BASE_COMPONENT_WITH_ID, externalAlias: [MOCK_EXTERNAL_ALIAS_ID], }; const MOCK_COMPLEX_COMPONENT = { ...MOCK_BASE_COMPONENT, links: [MOCK_LINK, MOCK_LINK_2], relationships: [MOCK_RELATIONSHIP, MOCK_RELATIONSHIP_2], labels: [MOCK_LABEL, MOCK_LABEL_2], }; const MOCK_GET_COMPLEX_COMPONENT = { ...MOCK_BASE_COMPONENT_WITH_ID, links: [MOCK_GET_LINK, MOCK_GET_LINK_2], relationships: [MOCK_RELATIONSHIP, MOCK_RELATIONSHIP_2], labels: [MOCK_LABEL, MOCK_LABEL_2], }; const MOCK_COMPONENT_WITH_EVENT_SOURCE = { ...MOCK_BASE_COMPONENT, eventSources: [MOCK_EVENT_SOURCE_INPUT()], }; const MOCK_GET_COMPONENT_WITH_EVENT_SOURCE = { ...MOCK_BASE_COMPONENT_WITH_ID, eventSources: [ { ...MOCK_GET_EVENT_SOURCE(), id: MOCK_EVENT_SOURCE_ID, }, ], }; const MOCK_GET_COMPONENT_WITH_EVENT_SOURCES = { ...MOCK_BASE_COMPONENT_WITH_ID, eventSources: [ { ...MOCK_GET_EVENT_SOURCE(), id: MOCK_EVENT_SOURCE_ID, }, { ...MOCK_GET_EVENT_SOURCE(MOCK_EXTERNAL_EVENT_SOURCE_ID_2), id: MOCK_EVENT_SOURCE_ID_2, }, ], }; const MOCK_COMPONENT_WITH_DATA_MANAGER = { ...MOCK_COMPLEX_COMPONENT, dataManager: MOCK_DATA_MANAGER, }; const MOCK_GET_COMPONENT_WITH_DATA_MANAGER = { ...MOCK_GET_COMPLEX_COMPONENT, dataManager: MOCK_DATA_MANAGER, }; const MOCK_COMPONENT_WITH_EMPTY_DATA_MANAGER = { ...MOCK_COMPLEX_COMPONENT, dataManager: {} as any, }; const MOCK_COMPONENT_WITH_NULL_DATA_MANAGER = { ...MOCK_COMPLEX_COMPONENT, dataManager: null as any, }; const MOCK_GET_COMPONENT_WITH_NULL_DATA_MANAGER = { ...MOCK_GET_COMPLEX_COMPONENT, dataManager: null as any, }; const MOCK_COMPONENT_WITH_EXTERNAL_ALIAS = ( externalAlias?: CompassExternalAliasInput, ) => ({ ...MOCK_BASE_COMPONENT, externalAlias, }); const MOCK_GET_COMPONENT_WITH_EXTERNAL_ALIAS = ( externalAlias?: CompassExternalAlias, ) => ({ ...MOCK_BASE_COMPONENT_WITH_ID, externalAlias, }); const MOCK_COMPONENT_WITH_EXTERNAL_ALIASES = ( externalAliases?: Array, ) => ({ ...MOCK_BASE_COMPONENT, externalAliases, }); const MOCK_GET_COMPONENT_WITH_EXTERNAL_ALIASES = ( externalAliases?: Array, ) => ({ ...MOCK_BASE_COMPONENT_WITH_ID, externalAliases, }); const MOCK_COMPONENT = { ...MOCK_BASE_COMPONENT, fields: [], labels: [{ name: MOCK_LABEL }], links: [MOCK_LINK], relationships: [MOCK_RELATIONSHIP], dataManager: { ecosystemAppId: MOCK_ECOSYSTEM_APP_ID, externalSourceURL: MOCK_DATA_MANAGER_EXTERNAL_SOURCE_URL, lastSyncEvents: [], }, eventSources: [ { eventType: CompassEventType.Deployment, externalEventSourceId: MOCK_EXTERNAL_EVENT_SOURCE_ID, }, ], externalAliases: [MOCK_EXTERNAL_ALIAS], } as any; const MOCK_COMPONENT_AGG = { ...MOCK_COMPONENT, labels: [{ name: MOCK_LABEL }], } as any; const MOCK_COMPONENT_AGG_WITHOUT_LINKS = { ...MOCK_BASE_COMPONENT, fields: [], labels: [MOCK_LABEL], relationships: [MOCK_RELATIONSHIP], dataManager: { ecosystemAppId: MOCK_ECOSYSTEM_APP_ID, externalSourceURL: MOCK_DATA_MANAGER_EXTERNAL_SOURCE_URL, lastSyncEvents: [], }, eventSources: [ { eventType: CompassEventType.Deployment, externalEventSourceId: MOCK_EXTERNAL_EVENT_SOURCE_ID, }, ], externalAliases: [MOCK_EXTERNAL_ALIAS], } as any; const MOCK_DEPLOYENT_INPUT: CompassCreateEventInput = { cloudId: 'dsfkjsldf', event: { deployment: { deploymentProperties: { sequenceNumber: 2, environment: { category: CompassDeploymentEventEnvironmentCategory.Production, displayName: 'Prod', environmentId: '123', }, state: CompassDeploymentEventState.Successful, pipeline: { displayName: 'pipeline1', pipelineId: '123', url: 'url', }, }, description: 'deployment', displayName: '#2', externalEventSourceId: 'repoid', lastUpdated: 1640025104064, updateSequenceNumber: 2, url: 'url', }, }, }; const MOCK_BUILD_INPUT: CompassCreateEventInput = { cloudId: 'abcd', event: { build: { description: 'description', displayName: 'testing', externalEventSourceId: 'demo2', lastUpdated: '2022-02-11T18:13:51.42015Z', updateSequenceNumber: 3, url: 'https://google.com', buildProperties: { state: CompassBuildEventState.InProgress, startedAt: '2022-02-12T18:13:51.42015Z', pipeline: { url: 'https://pipeline.com', displayName: 'pipeline test', pipelineId: '123', }, }, }, }, }; const MOCK_GQL_COMPONENT = { ...MOCK_BASE_COMPONENT, changeMetadata: {} as CompassChangeMetadata, fields: [] as Array, id: MOCK_COMPONENT_ID, }; const MOCK_FORGE_APP_ARI = 'ari:cloud:ecosystem::app/0f58f3eb-0c22-4f29-a488-75746bc1836e'; const MOCK_DATA_PROVIDER_ALERT_EVENT: DataProviderAlertEvent = { id: '123', displayName: 'testAlert', lastUpdated: new Date('01/19/2022'), updateSequenceNumber: 1, url: 'https://google.com', }; const MOCK_DATA_PROVIDER_BUILD_EVENT: DataProviderBuildEvent = { displayName: 'testBuild', lastUpdated: new Date('01/19/2022'), completedAt: new Date('01/19/2022'), pipeline: { displayName: 'pipeline1', pipelineId: 'test123', url: 'https://google.com', }, startedAt: new Date('01/19/1992'), state: CompassBuildEventState.Successful, updateSequenceNumber: 1, url: 'https://google.com', }; const MOCK_DATA_PROVIDER_CUSTOM_EVENT: DataProviderCustomEvent = { id: '123', icon: CompassCustomEventIcon.Checkpoint, displayName: 'testCustom', lastUpdated: new Date('01/19/2022'), updateSequenceNumber: 1, url: 'https://google.com', }; const MOCK_DATA_PROVIDER_DEPLOYMENT_EVENT: DataProviderDeploymentEvent = { displayName: 'testDeploy', lastUpdated: new Date('01/19/2022'), pipeline: { displayName: 'pipeline1', pipelineId: 'test123', url: 'https://google.com', }, environment: { category: CompassDeploymentEventEnvironmentCategory.Production, displayName: 'prod', environmentId: 'prod', }, state: CompassDeploymentEventState.Cancelled, updateSequenceNumber: 1, sequenceNumber: 1, url: 'https://google.com', startedAt: new Date('01/18/2022'), completedAt: new Date('01/19/2022'), }; const MOCK_DATA_PROVIDER_FLAG_EVENT: DataProviderFlagEvent = { id: '1', status: 'on', displayName: 'testFlag', lastUpdated: new Date('01/19/2022'), updateSequenceNumber: 1, url: 'https://google.com', }; const MOCK_DATA_PROVIDER_INCIDENT_EVENT: DataProviderIncidentEvent = { id: '1', displayName: 'testIncident', lastUpdated: new Date('01/19/2022'), updateSequenceNumber: 1, state: CompassIncidentEventState.Resolved, url: 'https://google.com', startTime: new Date('01/18/2022'), endTime: new Date('01/19/2022'), severity: { label: 'SEV1', level: CompassIncidentEventSeverityLevel.One, }, }; const MOCK_DATA_PROVIDER_LIFECYCLE_EVENT: DataProviderLifecycleEvent = { id: '1', displayName: 'testLifecycle', lastUpdated: new Date('01/19/2022'), updateSequenceNumber: 1, stage: CompassLifecycleEventStage.Deprecation, url: 'https://google.com', }; const MOCK_DATA_PROVIDER_PUSH_EVENT: DataProviderPushEvent = { id: '1', displayName: 'testPush', lastUpdated: new Date('01/19/2022'), updateSequenceNumber: 1, url: 'https://google.com', branchName: 'master', author: { name: 'testAuthorName', email: 'testemail@testDomain.com', }, }; const MOCK_DATA_PROVIDER_PULL_REQUEST_EVENT: DataProviderPullRequestEvent = { id: '1', displayName: 'testPush', lastUpdated: new Date('01/19/2022'), updateSequenceNumber: 1, url: 'https://google.com', pullRequestUrl: 'https://mypr.com', repoUrl: 'https://myrepo.com', status: CompassCreatePullRequestStatus.Merged, }; const MOCK_DATA_PROVIDER_VULNERABILITY_EVENT: DataProviderVulnerabilityEvent = { id: '1', displayName: 'testVuln', lastUpdated: new Date('01/19/2022'), updateSequenceNumber: 1, url: 'https://google.com', severityLabel: 'Critical', severityLevel: CompassVulnerabilityEventSeverityLevel.Critical, state: CompassVulnerabilityEventState.Remediated, vulnerabilityStartTime: new Date('01/18/2022'), vulnerableTarget: 'testTarget', }; const MOCK_ON_CALL_PROVIDER_SCHEDULE_INFO: OnCallScheduleInfo = { scheduleName: 'scheduleName', scheduleLink: 'https://google.com', logo: 'https://google.com', cardHeaderText: 'cardHeaderText', levels: [ { levelName: 'levelName', priority: 1, currentOnCall: { name: 'name', timeRange: { scheduleStartTime: '2022-05-05T17:49:12.664Z', scheduleEndTime: '2022-06-05T17:49:12.664Z', }, url: 'https://google.com', }, nextOnCall: { name: 'name', timeRange: { scheduleStartTime: '2022-06-05T18:49:12.664Z', scheduleEndTime: '2022-07-05T17:49:12.664Z', }, url: 'https://google.com', }, }, ], }; const METRIC_VALUES: MetricValue[] = [ { value: 1234, timestamp: new Date().toISOString(), }, ]; const METRIC_VALUE_DATE_INVALID = { value: 4567, timestamp: 'invalid date', }; // Components By References Mocks const MOCK_COMPONENT_REFERENCE_SLUG_INPUT_1 = { slug: { slug: 'my-comp-1', cloudId: MOCK_CLOUD_ID }, }; const MOCK_COMPONENT_REFERENCE_ARI_INPUT_1 = { ari: MOCK_COMPONENT_ID, }; // Mocks for slug based relationships const MOCK_RELATIONSHIP_BY_SLUGS: YamlRelationships = { DEPENDS_ON: [MOCK_COMPONENT_SLUG_1, MOCK_COMPONENT_SLUG_2], }; // Mocks for resyncing repo files const MOCK_REPO_ID = '948'; const MOCK_REPO_URL = 'https://github.com/org/repo'; const MOCK_CHANGED_FILE = { currentFilePath: { fullFilePath: 'https://github.com/org/repo/main/src/folder/package_lock.json', localFilePath: 'src/folder/package_lock.json', }, action: 'DELETED', oldFilePath: { fullFilePath: 'https://github.com/org/repo/main/src/folder/package_lock.json', localFilePath: 'src/folder/package_lock.json', }, fileSize: 1500, }; // Utility functions to help make mock yaml files and mock components export const getMockedCompassYaml = ( overrideMockedCompassYaml: Partial = {}, ): CompassYaml => ({ id: MOCK_COMPONENT_ID, name: MOCK_COMPONENT_NAME, description: 'description', ownerId: 'ownerId', fields: { tier: 1 }, relationships: { DEPENDS_ON: [MOCK_COMPONENT_ID_2] }, ...overrideMockedCompassYaml, }); export const getMockedComponent = ( overrideMockedComponent: Partial = {}, ): Component => ({ id: MOCK_COMPONENT_ID, name: MOCK_COMPONENT_NAME, type: CompassComponentType.Service, typeId: 'service', labels: MOCK_COMPONENT_LABELS, changeMetadata: {}, ...overrideMockedComponent, }); export const createCompassYamlLink = ( type: CompassLinkType, url = 'https://url', ): YamlLink => ({ type, url, }); export const getMockedConfigFileMetadata = ( override: Partial = {}, ): ConfigFileMetadata => ({ configFileAction: ConfigFileActions.UPDATE, oldPath: MOCK_COMPONENT_PATH, newPath: MOCK_NEW_PATH, deduplicationId: MOCK_DEDUPLICATION_ID, ...override, }); export const getManagedComponentAliases = ({ name = MOCK_COMPONENT_NAME, path = MOCK_COMPONENT_PATH, }): Array => { const existingNameExternalAlias = { externalAliasId: generateExternalIdWithPrefix(MOCK_DEDUPLICATION_ID, name), externalSource: EXTERNAL_ALIAS_SOURCE_COMPONENT_NAME, }; const existingPathExternalAlias = { externalAliasId: generateExternalIdWithPrefix(MOCK_DEDUPLICATION_ID, path), externalSource: EXTERNAL_ALIAS_SOURCE_COMPONENT_PATH_TO_FILE, }; return [existingNameExternalAlias, existingPathExternalAlias]; }; export { MOCK_BASE_COMPONENT, MOCK_BASE_COMPONENT_WITH_CUSTOM_FIELDS, MOCK_BASE_COMPONENT_WITHOUT_FIELDS, MOCK_BUILD_INPUT, MOCK_COMPONENT_TYPE_ID, MOCK_COMPONENT_ID, MOCK_COMPONENT_ID_2, MOCK_COMPONENT_ID_3, MOCK_CLOUD_ID, MOCK_ANOTHER_CLOUD_ID, MOCK_EXTERNAL_ALIAS, MOCK_EXTERNAL_SOURCE, MOCK_DEDUPLICATION_ID, MOCK_ADDITIONAL_EXTERNAL_ALIASES, MOCK_EVENT_SOURCE_ID, MOCK_EXTERNAL_EVENT_SOURCE_ID, MOCK_EVENT_SOURCE_INPUT, MOCK_FORGE_APP_ARI, MOCK_GET_EVENT_SOURCE, MOCK_GET_BASE_COMPONENT_WITH_EXTERNAL_ALIAS, MOCK_GET_COMPONENT_WITH_EXTERNAL_ALIASES, MOCK_GQL_COMPONENT, MOCK_COMPLEX_COMPONENT, MOCK_COMPONENT_WITH_EVENT_SOURCE, MOCK_COMPONENT_WITH_DATA_MANAGER, MOCK_EXTERNAL_EVENT_SOURCE_ID_2, MOCK_EVENT_SOURCE_ID_2, MOCK_GET_COMPONENT_WITH_EVENT_SOURCE, MOCK_GET_COMPONENT_WITH_EVENT_SOURCES, MOCK_GET_COMPONENT_WITH_DATA_MANAGER, MOCK_BASE_COMPONENT_WITH_ID, MOCK_CHANGED_COMPONENT, MOCK_GET_CHANGED_COMPONENT, MOCK_COMPONENT, MOCK_COMPONENT_WITH_EMPTY_DATA_MANAGER, MOCK_COMPONENT_WITH_NULL_DATA_MANAGER, MOCK_COMPONENT_WITH_EXTERNAL_ALIAS, MOCK_GET_COMPONENT_WITH_EXTERNAL_ALIAS, MOCK_COMPONENT_WITH_EXTERNAL_ALIASES, MOCK_GET_COMPONENT_WITH_NULL_DATA_MANAGER, MOCK_GET_COMPLEX_COMPONENT, MOCK_EXTERNAL_ALIAS_2, MOCK_EXTERNAL_ALIAS_ID, MOCK_LINK, MOCK_LINK_2, MOCK_GET_LINK, MOCK_GET_LINK_2, MOCK_RELATIONSHIP, MOCK_RELATIONSHIP_2, MOCK_LABEL, MOCK_LABEL_2, MOCK_DATA_MANAGER_EXTERNAL_SOURCE_URL, MOCK_ERROR_TYPE, MOCK_ERROR_MESSAGE, MOCK_QUERY_ERROR, MOCK_METRIC_SOURCE, MOCK_EXTERNAL_METRIC_SOURCE_ID, MOCK_METRIC_SOURCE_URL, MOCK_METRIC_DEF_NAME, MOCK_METRIC_DEF_PAGEINFO, MOCK_APPLICATION_MANAGED_COMPONENTS_PAGEINFO, MOCK_CATALOG_BOOTSTRAP_STATUS, MOCK_METRIC_DEF_WITH_PAGINATED_SOURCES, MOCK_METRIC_DEF_WITH_DERIVED_SOURCES, MOCK_METRIC_FORMAT_SUFFIX, MOCK_METRIC_DEF, MOCK_METRIC_DEF_WITH_SOURCES, MOCK_METRIC_DEF_ID, MOCK_METRIC_SOURCE_ID, MOCK_MUTATION_ERROR, MOCK_MUTATION_ERROR_MESSAGE, MOCK_MUTATION_ERROR_SINGLE, MOCK_COMPONENT_AGG, MOCK_EXTERNAL_ID, MOCK_GQL_ERROR, MOCK_ECOSYSTEM_APP_ID, MOCK_SEARCH_PAGEINFO, MOCK_COMPONENT_AGG_WITHOUT_LINKS, MOCK_DEPLOYENT_INPUT, MOCK_DATA_PROVIDER_BUILD_EVENT, MOCK_DATA_PROVIDER_ALERT_EVENT, MOCK_DATA_PROVIDER_CUSTOM_EVENT, MOCK_DATA_PROVIDER_DEPLOYMENT_EVENT, MOCK_DATA_PROVIDER_FLAG_EVENT, MOCK_DATA_PROVIDER_INCIDENT_EVENT, MOCK_DATA_PROVIDER_LIFECYCLE_EVENT, MOCK_DATA_PROVIDER_PULL_REQUEST_EVENT, MOCK_DATA_PROVIDER_PUSH_EVENT, MOCK_DATA_PROVIDER_VULNERABILITY_EVENT, MOCK_TIME, MOCK_ON_CALL_PROVIDER_SCHEDULE_INFO, MOCK_GET_CHANGED_COMPONENT_WITH_CUSTOM_FIELDS, MOCK_CHANGED_COMPONENT_WITH_CUSTOM_FIELDS, MOCK_BASE_CREATE_COMPONENT_WITH_CUSTOM_FIELDS_WITH_ID, MOCK_BASE_GET_COMPONENT_WITH_CUSTOM_FIELDS_WITH_ID, MOCK_BASE_GET_COMPONENT_WITH_CUSTOM_FIELDS_WITH_ID_2, METRIC_VALUES, METRIC_VALUE_DATE_INVALID, MOCK_URL, MOCK_URL_2, MOCK_COMPONENT_LABELS, MOCK_COMPONENT_TYPE_DEF, MOCK_EVENT_URL, MOCK_CHANGED_COMPONENT_WITH_LIFECYCLE_FIELD, MOCK_GET_CHANGED_COMPONENT_WITH_LIFECYCLE_FIELD, MOCK_GET_COMPONENT_WITH_CHANGED_TYPEID_FIELD, MOCK_CUSTOM_FIELDS_IN_YAML, MOCK_CUSTOM_FIELDS_IN_YAML_2, UPDATED_MOCK_CUSTOM_FIELD_INPUTS, UPDATED_MOCK_CUSTOM_FIELD_INPUTS_WITH_DISPLAY_VALUE, MOCK_CUSTOM_FIELDS, MOCK_CUSTOM_FIELD_INPUTS, MOCK_BOOLEAN_CUSTOM_FIELD, MOCK_TEXT_CUSTOM_FIELD, MOCK_NUMBER_CUSTOM_FIELD, MOCK_USER_CUSTOM_FIELD, MOCK_SINGLE_SELECT_CUSTOM_FIELD, MOCK_MULTI_SELECT_CUSTOM_FIELD, MOCK_SINGLE_SELECT_CUSTOM_FIELD_2, MOCK_MULTI_SELECT_CUSTOM_FIELD_2, TEXT_CUSTOM_FIELD_IN_YAML, NUMBER_CUSTOM_FIELD_IN_YAML, BOOLEAN_CUSTOM_FIELD_IN_YAML, USER_CUSTOM_FIELD_IN_YAML, SINGLE_SELECT_CUSTOM_FIELD_IN_YAML, SINGLE_SELECT_CUSTOM_FIELD_IN_YAML_WITH_DISPLAY_VALUE, MULTI_SELECT_CUSTOM_FIELD_IN_YAML, MULTI_SELECT_CUSTOM_FIELD_IN_YAML_WITH_DISPLAY_VALUE, MOCK_NEW_PATH, MOCK_CUSTOM_COMPONENT_TYPE_DEF, MOCK_COMPONENT_NAME, MOCK_COMPONENT_PATH, MOCK_COMPONENT_OLD_PATH, MOCK_COMPONENT_CAPITALIZED_OLD_PATH, MOCK_CAPITALIZED_COMPONENT_NAME, MOCK_CAPITALIZED_NEW_PATH, MOCK_OPTION_UUIDS, MOCK_OPTION_UUIDS_2, MOCK_COMPONENT_REFERENCE_SLUG_INPUT_1, MOCK_COMPONENT_REFERENCE_ARI_INPUT_1, MOCK_RELATIONSHIP_BY_SLUGS, MOCK_COMPONENT_SLUG_1, MOCK_COMPONENT_SLUG_2, MOCK_REPO_ID, MOCK_REPO_URL, MOCK_CHANGED_FILE, };