diff --git a/.travis.yml b/.travis.yml index 9601dd749f..ee1714c787 100644 --- a/.travis.yml +++ b/.travis.yml @@ -61,21 +61,26 @@ jobs: - name: Helm Chart Unit Tests script: - "./deploy/ci/travis/helm-chart-unit-tests.sh" - - name: E2E Tests - Long Suite 1 + - name: E2E Tests - Long Suites before_script: - "./deploy/ci/travis/job-e2e-before_script.sh" script: - "./deploy/ci/travis/job-e2e-script.sh longSuite" - - name: E2E Tests - Long Suite 2 + - name: E2E Tests - Manage Users before_script: - "./deploy/ci/travis/job-e2e-before_script.sh true" script: - - "./deploy/ci/travis/job-e2e-script.sh longSuite2" + - "./deploy/ci/travis/job-e2e-script.sh manageUsers" + - name: E2E Tests - Core + before_script: + - "./deploy/ci/travis/job-e2e-before_script.sh true" + script: + - "./deploy/ci/travis/job-e2e-script.sh core" - name: E2E Tests - All Other Suite before_script: - "./deploy/ci/travis/job-e2e-before_script.sh" script: - - "./deploy/ci/travis/job-e2e-script.sh fullMinusLongSuite" + - "./deploy/ci/travis/job-e2e-script.sh fullMinusOtherSuites" notifications: slack: secure: s5SFnFKwzfxLrjGR5lJ2AJG1FSWCKtHdQi8K2Kmx5ZhrYL/7P+KLc/ks18WnzCPoy705LbHCBSULcnWbLjqCpnkKxNjsFAyFl2nZZPxBjl2/mHpulbr3gmultDOrMDbmYL4oWPKBlxKResElz9nQwknlLWZ/L94AIx8zuMfRIWdEt1bJBDAQts4fx2D4cIEx0yZUq7JGAKjSiXKR9eDyMWFb+SWw6mvr5WtFM8uq35rPvRVEfm56LIgSuMUpVeYtnYiY2JP7W8iKX0gD+54wAiSXRZiQVCLJq606/TlJo7j8Na9Dn1Q5XDkX3b3XzcgmEZThoO1GFtv3yNYOVxv+50p2tSnc8CT0VEVOYOGJuz17AESZAYK+AyjEmeZmDiroj1czmIq8/ZYKbmvDYSZgGuDcSkQurX/6BPac6ra69WmSQmwv0tS3A/IzDw7X+CuC+3QubQ7GfaiVe25PUU+tRSEDM4PMUJY8QRF5Q+oeN5NjjWmJBqf/ic2TO2xTU1j+qysdqK34qIV1qyVcPMUIiYW+5ltH71qiy05TSvvfGS+oatRBMzINRl3zl2gOV1CKNU801XehRKCx9XDCw5NL1HSx5HD5psOyBRpAMYYBOqa+rv9VAza9MsfpslCoibg5rdrq4rZqqUgRhayNp/LKzlhe/g62+qbGNT+iFuHtB+Y= diff --git a/protractor.conf.js b/protractor.conf.js index 6d8eb722f5..e73ece7efe 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -78,7 +78,7 @@ const longSuite = globby.sync([ './src/test-e2e/cloud-foundry/space-level/space-users-list-e2e.spec.ts' ]) -const longSuite2 = globby.sync([ +const manageUsersSuite = globby.sync([ './src/test-e2e/cloud-foundry/manage-users-stepper-e2e.spec.ts', './src/test-e2e/cloud-foundry/cf-level/cf-users-removal-e2e.spec.ts', './src/test-e2e/cloud-foundry/org-level/org-users-removal-e2e.spec.ts', @@ -88,10 +88,23 @@ const longSuite2 = globby.sync([ './src/test-e2e/cloud-foundry/space-level/space-invite-user-e2e.spec.ts' ]) -const fullMinusLongSuites = globby.sync([ +const coreSuite = globby.sync([ + './src/test-e2e/check/check-login-e2e.spec.ts', + './src/test-e2e/endpoints/endpoints-connect-e2e.spec.ts', + './src/test-e2e/endpoints/endpoints-e2e.spec.ts', + './src/test-e2e/endpoints/endpoints-register-e2e.spec.ts', + './src/test-e2e/endpoints/endpoints-unregister-e2e.spec.ts', + './src/test-e2e/home/home-e2e.spec.ts', + './src/test-e2e/login/login-e2e.spec.ts', + './src/test-e2e/login/login-sso-e2e.spec.ts', + './src/test-e2e/metrics/metrics-registration-e2e.spec.ts', +]) + +const fullMinusOtherSuites = globby.sync([ ...fullSuite, ...longSuite.map(file => '!' + file), - ...longSuite2.map(file => '!' + file), + ...manageUsersSuite.map(file => '!' + file), + ...coreSuite.map(file => '!' + file), ]) exports.config = { @@ -110,12 +123,16 @@ exports.config = { ...longSuite, ...excludeTests ]), - longSuite2: globby.sync([ - ...longSuite2, + manageUsers: globby.sync([ + ...manageUsersSuite, + ...excludeTests + ]), + core: globby.sync([ + ...coreSuite, ...excludeTests ]), - fullMinusLongSuite: globby.sync([ - ...fullMinusLongSuites, + fullMinusOtherSuites: globby.sync([ + ...fullMinusOtherSuites, ...excludeTests ]), sso: globby.sync([ diff --git a/src/frontend/packages/cloud-foundry/src/cf-entity-generator.ts b/src/frontend/packages/cloud-foundry/src/cf-entity-generator.ts index dc3fde60f8..3867df8c9c 100644 --- a/src/frontend/packages/cloud-foundry/src/cf-entity-generator.ts +++ b/src/frontend/packages/cloud-foundry/src/cf-entity-generator.ts @@ -32,6 +32,7 @@ import { IStratosEntityDefinition, StratosEndpointExtensionDefinition, } from '../../core/src/core/entity-catalogue/entity-catalogue.types'; +import { urlValidationExpression } from '../../core/src/core/utils.service'; import { BaseEndpointAuth } from '../../core/src/features/endpoints/endpoint-auth'; import { JetstreamResponse } from '../../store/src/entity-request-pipeline/entity-request-pipeline.types'; import { endpointDisconnectRemoveEntitiesReducer } from '../../store/src/reducers/endpoint-disconnect-application.reducer'; @@ -136,6 +137,7 @@ export function registerCFEntities() { export function generateCFEntities(): StratosBaseCatalogueEntity[] { const endpointDefinition: StratosEndpointExtensionDefinition = { + urlValidationRegexString: urlValidationExpression, type: CF_ENDPOINT_TYPE, label: 'Cloud Foundry', labelPlural: 'Cloud Foundry', diff --git a/src/frontend/packages/core/src/core/entity-catalogue/action-orchestrator/action-orchestrator.ts b/src/frontend/packages/core/src/core/entity-catalogue/action-orchestrator/action-orchestrator.ts index 973c46bdca..1726b65f10 100644 --- a/src/frontend/packages/core/src/core/entity-catalogue/action-orchestrator/action-orchestrator.ts +++ b/src/frontend/packages/core/src/core/entity-catalogue/action-orchestrator/action-orchestrator.ts @@ -188,9 +188,15 @@ export class ActionOrchestrator(actionType: Y): T[Y] { + const actionBuilderForType = this.actionBuilders[actionType]; + if (!actionBuilderForType) { + return null; + } const actionBuilder: T[Y] = (...args: Parameters) => { - const action = this.actionBuilders[actionType](...args) as ActionBuilderAction; - action.actionBuilderActionType = actionType as string; + const action = actionBuilderForType(...args) as ActionBuilderAction; + if (action) { + action.actionBuilderActionType = actionType as string; + } return action; }; return actionBuilder; diff --git a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/fail-entity-request.handler.ts b/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/fail-entity-request.handler.ts index 671668a660..79cfbf3a04 100644 --- a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/fail-entity-request.handler.ts +++ b/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/fail-entity-request.handler.ts @@ -1,7 +1,7 @@ import { RecursiveDeleteFailed } from '../../effects/recursive-entity-delete.effect'; import { WrapperRequestActionFailed, EntityRequestAction } from '../../types/request.types'; import { StratosBaseCatalogueEntity } from '../../../../core/src/core/entity-catalogue/entity-catalogue-entity'; -import { ActionDispatcher, PipelineResult } from '../entity-request-pipeline.types'; +import { ActionDispatcher } from '../entity-request-pipeline.types'; import { ApiRequestTypes } from '../../reducers/api-request-reducer/request-helpers'; export function failedEntityHandler( @@ -9,7 +9,7 @@ export function failedEntityHandler( catalogueEntity: StratosBaseCatalogueEntity, requestType: ApiRequestTypes, action: EntityRequestAction, - response: PipelineResult, + response: any, recursivelyDeleting: boolean = false ) { const entityAction = catalogueEntity.getRequestAction('failure', action, requestType); diff --git a/src/frontend/packages/store/src/reducers/api-request-data-reducer/request-data-reducer.factory.ts b/src/frontend/packages/store/src/reducers/api-request-data-reducer/request-data-reducer.factory.ts index 39bfa1f51f..dabbdc57c3 100644 --- a/src/frontend/packages/store/src/reducers/api-request-data-reducer/request-data-reducer.factory.ts +++ b/src/frontend/packages/store/src/reducers/api-request-data-reducer/request-data-reducer.factory.ts @@ -19,7 +19,7 @@ export function requestDataReducerFactory(actions: IRequestArray): ActionReducer case successAction: const success = action as ISuccessRequestAction; if (!success.apiAction.updatingKey && success.requestType === 'delete') { - const entityKey = entityCatalogue.getEntity(success.apiAction.endpointType, success.apiAction.entityType).entityKey; + const entityKey = entityCatalogue.getEntity(success.apiAction).entityKey; return deleteEntity(state, entityKey, success.apiAction.guid); } else if (success.response) { return deepMergeState(state, success.response.entities); diff --git a/src/test-e2e/marketplace/base-create-service-instance-stepper.po.ts b/src/test-e2e/marketplace/base-create-service-instance-stepper.po.ts index 975f28929a..79090ec286 100644 --- a/src/test-e2e/marketplace/base-create-service-instance-stepper.po.ts +++ b/src/test-e2e/marketplace/base-create-service-instance-stepper.po.ts @@ -1,8 +1,7 @@ -import { - SERVICE_INSTANCE_TYPES -} from '../../frontend/packages/core/src/shared/components/add-service-instance/add-service-instance-base-step/add-service-instance.types'; + import { TileSelector } from '../po/tile-selector.po'; import { CreateMarketplaceServiceInstance } from './create-marketplace-service-instance.po'; +import { SERVICE_INSTANCE_TYPES } from '../../frontend/packages/cloud-foundry/src/shared/components/add-service-instance/add-service-instance-base-step/add-service-instance.types'; export class BaseCreateServiceInstanceStepper { public tiles = new TileSelector();