diff --git a/.gitignore b/.gitignore index 409ad5df8e..ce1c94fc35 100644 --- a/.gitignore +++ b/.gitignore @@ -77,6 +77,9 @@ deploy/stratos-ui-release/dev_releases/ output/fissile deploy/ci/travis/temp/ +# Helm Chart Image List +deploy/kubernetes/console/imagelist.txt + .dist/ deploy/uaa/tmp/ src/backend/*/vendor/ diff --git a/.travis.yml b/.travis.yml index 2d0c6436a6..7f87e2619e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: node_js node_js: - - "10.16.3" + - "12.13.0" sudo: required dist: bionic services: @@ -39,7 +39,7 @@ jobs: before_script: - curl -sL -o ~/bin/gimme https://raw.githubusercontent.com/travis-ci/gimme/master/gimme - chmod +x ~/bin/gimme - - eval "$(gimme 1.12.4)" + - eval "$(gimme 1.13.4)" - go get -u golang.org/x/lint/golint script: - golint src/jetstream/... @@ -61,7 +61,7 @@ jobs: before_script: - curl -sL -o ~/bin/gimme https://raw.githubusercontent.com/travis-ci/gimme/master/gimme - chmod +x ~/bin/gimme - - eval "$(gimme 1.12.4)" + - eval "$(gimme 1.13.4)" script: - npm run test-backend - name: Helm Chart Unit Tests @@ -82,6 +82,11 @@ jobs: - "./deploy/ci/travis/job-e2e-before_script.sh true" script: - "./deploy/ci/travis/job-e2e-script.sh core" + - name: E2E Tests - Autoscaler + before_script: + - "./deploy/ci/travis/job-e2e-before_script.sh" + script: + - "./deploy/ci/travis/job-e2e-script.sh autoscaler" - name: E2E Tests - All Other Suite before_script: - "./deploy/ci/travis/job-e2e-before_script.sh" diff --git a/CHANGELOG.md b/CHANGELOG.md index f664211f31..2ab677a1db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Change Log +## 2.6.1 + +[Full Changelog](https://github.com/cloudfoundry/stratos/compare/2.6.0...2.6.1) + +This release contains a few fixes: + +**Fixes:** + +- Helm Chart does not work with Kubernetes 1.16 [\#4022](https://github.com/cloudfoundry/stratos/issues/4022) +- Generated Ingress certificates during Kubernetes deployment are empty [\#4006](https://github.com/cloudfoundry/stratos/issues/4006) +- Kubernetes Ingress certificate is incorrectly set [\#4005](https://github.com/cloudfoundry/stratos/issues/4005) +- Update metric used for cells [\#4009](https://github.com/cloudfoundry/stratos/pull/4009) +- Fix incorrect SSO behaviour following 2.4.0 --> 2.6.0 upgrade [\#4015](https://github.com/cloudfoundry/stratos/pull/4015) + ## 2.6.0 [Full Changelog](https://github.com/SUSE/stratos/compare/2.5.3...2.6.0) diff --git a/README.md b/README.md index 102dd067e0..25c152a24f 100644 --- a/README.md +++ b/README.md @@ -35,12 +35,8 @@ Stratos can be deployed in the following environments: 3. Docker, single container deploying all components. See [guide](deploy/all-in-one) ## Troubleshooting -Please see our [Troubleshooting](docs/troubleshooting) page. -## Project Planning -We use [ZenHub](https://zenhub.com) for project planning. Feel free to head over to the [Boards](https://github.com/SUSE/stratos#boards) -tab and have a look through our pipelines and milestones. Please note in order to view the Github ZenHub Boards tab you will need the [ZenHub -browser extension](https://www.zenhub.com/extension). Alternatively, to view the planning board without the extension visit our [ZenHub Project Page](https://app.zenhub.com/workspace/o/cloudfoundry/stratos/boards) +Please see our [Troubleshooting](docs/troubleshooting) page. ## Further Reading @@ -75,3 +71,4 @@ Tested with Browserstack ## License The work done has been licensed under Apache License 2.0. The license file can be found [here](LICENSE). + diff --git a/action-builders-branch-tests b/action-builders-branch-tests deleted file mode 100644 index d231c8f5e8..0000000000 --- a/action-builders-branch-tests +++ /dev/null @@ -1,8341 +0,0 @@ - -> stratos@2.5.0 test /home/kater/dev/git/stratos -> run-s test-frontend:* --continue-on-error - - -> stratos@2.5.0 test-frontend:core /home/kater/dev/git/stratos -> ng test core --code-coverage --watch=false - -06 09 2019 10:56:41.793:INFO [karma-server]: Karma v4.0.0 server started at http://0.0.0.0:9876/ -06 09 2019 10:56:41.794:INFO [launcher]: Launching browsers Chrome with concurrency unlimited -06 09 2019 10:56:41.804:INFO [launcher]: Starting browser Chrome -06 09 2019 10:57:05.988:INFO [Chrome 76.0.3809 (Linux 0.0.0)]: Connected on socket zC-6oTngp75NMl9iAAAA with id 22572577 - - AppComponent - ✓ should create the app - - AuthGuardService - ✓ should be created - - ButtonBlurOnClickDirective - ✓ should create an instance - - CurrentUserPermissionsService - ✓ should be created - ✓ should allow create application - ✓ should allow create application for single endpoint with access - ✓ should allow create application for single endpoint with access and org/space - ✓ should allow if feature flag - ✓ should not allow if no feature flag - ✓ should allow if stratos admin - ✓ should allow if has stratos change password scope - ✓ should allow if has endpoint scope - ✓ should not allow if has endpoint scope - ✓ should not allow if read only admin - ✓ should not allow if read only user - - DotContentComponent - ✓ should create - - EndpointsService - ✓ should be created - - ActionDispatcher - ✓ should not dispatch unknown action - ✓ should dispatch custom action - ✓ should dispatch get action - ✓ should dispatch delete action - ✓ should dispatch update action - ✓ should dispatch create action - ✓ should dispatch getMultiple action - - ActionOrchestrator - ✓ should not have action builders - ✓ should have base action builders - ✓ should have custom actions builders - ✓ should have custom and base actions builders - ✓ should get entity action dispatcher - - EntityCatalogueService - ✓ should create correct id - ✓ should get default schema from single schema - ✓ should get default schema from multiple schemas - ✓ should get non-default schema from multiple schemas - ✓ should get endpoint - ✓ should get endpoint subtype - ✓ should get entity subtype - - EntityFavoriteStarComponent - ✓ should create - - EntityServiceFactoryService - ✓ should be created - - EntityServiceService - ✓ should be created - ✓ should poll - ✓ should get application - ✗ should fail new entity - Error: Timeout - Async callback was not invoked within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) - at - -Chrome 76.0.3809 (Linux 0.0.0) EntityServiceService should fail new entity FAILED - Error: Timeout - Async callback was not invoked within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) - at - ✗ should fail previously fetched entity - Error: Timeout - Async callback was not invoked within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) - at - -Chrome 76.0.3809 (Linux 0.0.0) EntityServiceService should fail previously fetched entity FAILED - Error: Timeout - Async callback was not invoked within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) - at - ✓ should set busy new entity - ✓ should set busy - ✓ should set deleted new entity - ✓ should set deleted - ✗ should set deleted failed - Error: Expected false to equal true. - at - at TapSubscriber._tapNext (src/core/entity-service.spec.ts:395:56) - at TapSubscriber._next (home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/tap.js:45:1) - at TapSubscriber.Subscriber.next (home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Subscriber.js:53:1) - -Chrome 76.0.3809 (Linux 0.0.0) EntityServiceService should set deleted failed FAILED - Error: Expected false to equal true. - at - at TapSubscriber._tapNext (src/core/entity-service.spec.ts:395:56) - at TapSubscriber._next (home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/tap.js:45:1) - at TapSubscriber.Subscriber.next (home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Subscriber.js:53:1) - - EventWatcherService - ✓ should be created - - LogOutDialogComponent - ✓ should be created - - LoggerService - ✓ should be created - - PageHeaderService - ✓ should be created - - PageNotFoundComponentComponent - ✓ should create - - StatefulIconComponent - ✓ should be created - - UserService - ✓ should be created - - UtilsService - ✓ should be created - - AboutPageComponent - ✓ should create -06 09 2019 10:57:48.579:WARN [web-server]: 404: /core/assets/logo.png - - DiagnosticsPageComponent - ✓ should create - - EulaPageComponent - ✓ should create -WARN LOG: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5)' - - AddQuotaComponent - ✗ should create - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition' - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - -Chrome 76.0.3809 (Linux 0.0.0) AddQuotaComponent should create FAILED - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition' - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) -WARN LOG: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5)' - - CreateQuotaStepComponent - ✗ should create - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition' - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - -Chrome 76.0.3809 (Linux 0.0.0) CreateQuotaStepComponent should create FAILED - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition' - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) -WARN LOG: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5)' - - AddSpaceQuotaComponent - ✗ should create - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition' - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - -Chrome 76.0.3809 (Linux 0.0.0) AddSpaceQuotaComponent should create FAILED - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition' - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) -WARN LOG: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at PaginationMonitorFactory.getEntity [as create] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.factory.ts:21:47) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5)' - - CreateSpaceQuotaStepComponent - ✗ should create - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition' - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - -Chrome 76.0.3809 (Linux 0.0.0) CreateSpaceQuotaStepComponent should create FAILED - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition' - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - - EditQuotaStepComponent - ✗ should create - TypeError: Cannot read property 'entityGuid' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735681, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 181248, directChildFlags: 181248, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-quota-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ou ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:44:59) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:40:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.spec.ts:28:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -Chrome 76.0.3809 (Linux 0.0.0) EditQuotaStepComponent should create FAILED - TypeError: Cannot read property 'entityGuid' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735681, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 181248, directChildFlags: 181248, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-quota-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ou ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:44:59) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:40:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.spec.ts:28:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - - EditQuotaComponent - ✗ should create - TypeError: Cannot read property 'entityGuid' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643024387, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643024387, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 12, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643024387, directChildFlags: ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:44:59) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:40:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23273:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-quota/edit-quota.component.spec.ts:29:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -Chrome 76.0.3809 (Linux 0.0.0) EditQuotaComponent should create FAILED - TypeError: Cannot read property 'entityGuid' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643024387, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643024387, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 12, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643024387, directChildFlags: ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:44:59) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:40:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23273:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-quota/edit-quota.component.spec.ts:29:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - - EditSpaceQuotaStepComponent - ✗ should create - TypeError: Cannot read property 'entityGuid' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-space-quota-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditSpaceQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:42:64) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:38:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.spec.ts:30:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -Chrome 76.0.3809 (Linux 0.0.0) EditSpaceQuotaStepComponent should create FAILED - TypeError: Cannot read property 'entityGuid' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-space-quota-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditSpaceQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:42:64) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:38:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.spec.ts:30:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - - EditSpaceQuotaComponent - ✗ should create - TypeError: Cannot read property 'entityGuid' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 11, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditSpaceQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:42:64) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:38:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23273:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space-quota/edit-space-quota.component.spec.ts:29:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -Chrome 76.0.3809 (Linux 0.0.0) EditSpaceQuotaComponent should create FAILED - TypeError: Cannot read property 'entityGuid' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 11, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditSpaceQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:42:64) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:38:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23273:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space-quota/edit-space-quota.component.spec.ts:29:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - - CloudFoundryOrganizationSpaceQuotasComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-space-quotas', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQu ... - at NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-space-quotas/cloud-foundry-organization-space-quotas.component.spec.ts:35:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryOrganizationSpaceQuotasComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-space-quotas', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQu ... - at NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-space-quotas/cloud-foundry-organization-space-quotas.component.spec.ts:35:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - - CloudFoundryQuotasComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-quotas', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-quotas/cloud-foundry-quotas.component.spec.ts:35:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryQuotasComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-quotas', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-quotas/cloud-foundry-quotas.component.spec.ts:35:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) -06 09 2019 10:58:14.032:WARN [web-server]: 404: /core/assets/nav-logo.png - - DashboardBaseComponent - ✓ should be created - - PageSideNavComponent - ✓ should create - - SideNavComponent - ✓ should be created - - CreateEndpointBaseStepComponent - ✓ should create -06 09 2019 10:58:16.836:WARN [web-server]: 404: /core/assets/endpoint-icons/metrics.svg - - CreateEndpointConnectComponent - ✓ should create - - EndpointsPageComponent - ✓ should be created - - EventsPageComponent - ✓ should create - - HomePageComponent - ✓ should be created - - LoginPageComponent - ✓ should be created -06 09 2019 10:58:26.676:WARN [web-server]: 404: /core/assets/logo.png -06 09 2019 10:58:28.603:WARN [web-server]: 404: /core/assets/login-bg.jpg - - NoEndpointsNonAdminComponent - ✓ should be created - - DomainMismatchComponent - ✓ should create -06 09 2019 10:58:28.952:WARN [web-server]: 404: /core/assets/logo.png - - ConsoleUaaWizardComponent - ✓ should be created -06 09 2019 10:58:31.054:WARN [web-server]: 404: /core/assets/logo.png - - UpgradePageComponent - ✓ should create -06 09 2019 10:58:31.749:WARN [web-server]: 404: /core/assets/logo.png - - EditProfileInfoComponent - ✓ should create - - ProfileInfoComponent - ✓ should create - - LoggedInService - ✓ should be created - - AppNameUniqueDirective - ✓ should create an instance - - AppActionMonitorIconComponent - ✓ should create - - AppActionMonitorComponent - ✓ should create - - ApplicationStateIconComponent - ✓ should be created - - ApplicationStateIconPipe - ✓ create an instance - - ApplicationStateComponent - ✓ should be created - - ApplicationStateService - ✓ should be created - check friendly names and indicators - ✓ Busted push - ✓ Updating app - ✓ Incomplete app - ✓ User stopped app - ✓ Incomplete - ✓ During push - ✓ After successful push - ✓ Starting - ✓ Running! - ✓ Borked, usually due to app code - ✓ Borked, usually due to starting timeouts - ✓ Borked, usually due to starting timeouts (1) - ✓ Borked, usually due to platform issues - ✓ Borked, usually due to platform issues (2) - ✓ Borked, one crashed, one running, one stating - ✓ Started, but no stats available - ✓ Started, but have instance counf set to 0 - - BooleanIndicatorComponent - ✓ should create - - BreadcrumbsComponent - ✓ should create - - CardBooleanMetricComponent - ✓ should create - - CardNumberMetricComponent - ✓ should create - - CardStatusComponent - ✓ should create - - CfAuthService - ✓ should be created - - AppChipsComponent - ✓ should create - - CodeBlockComponent - ✓ should be created - - ConfirmationDialogService - ✓ should be created - - DateTimeComponent - ✓ should create - - DetailsCardComponent - ✓ should be created - - DialogConfirmComponent - ✓ should create - - DialogErrorComponent - ✓ should be created - - DisplayValueComponent - ✓ should be created - - EditableDisplayValueComponent - ✓ should be created - - EndpointsMissingComponent - ✓ should be created - - EntitySummaryTitleComponent - ✓ should create - - EnumerateComponent - ✓ should create - - EnvVarViewComponent - ✓ should create - - ExtensionButtonsComponent - ✓ should create - - FavoritesEntityListComponent - ✓ should create - - FavoritesGlobalListComponent - ✓ should create - - FavoritesMetaCardComponent - ✓ should create - - FileInputComponent - ✓ should create - - FocusDirective - ✓ should create an instance - - GithubCommitAuthorComponent - ✓ should create - - IntroScreenComponent - ✓ should create - - LocalListController - ✓ should get correct start index 1 - ✓ should get correct start index 2 - ✓ should get correct start index 3 - ✓ should get correct start index 4 - ✓ should get split pages - ✓ should get split pages 1 - ✓ should get split pages 2 - ✓ should get split pages 3 - ✓ should get split pages 4 - ✓ should get split pages 5 -06 09 2019 10:59:07.301:WARN [web-server]: 404: /core/assets/login-bg.jpg - - CardComponent - ✓ should be created - - CardsComponent - ✓ should be created - - MetaCardComponent - ✓ should create - - MetaCardItemComponent - ✓ should create - - MetaCardKeyComponent - ✓ should create - - MetaCardTitleComponent - ✓ should create - - MetaCardValueComponent - ✓ should create - - TableCellActionsComponent - ✓ should be created - - TableCellBooleanIndicatorComponent - ✓ should create - - TableCellEditComponent - ✓ should be created - - TableCellFavoriteComponent - ✓ should create - - TableCellRadioComponent - ✓ should create - - TableCellRequestMonitorIconComponent - ✓ should create - - TableCellSelectComponent - ✓ should be created - - TableCellStatusDirective - ✓ should create an instance - - TableCellComponent - ✓ should be created - - TableHeaderSelectComponent - ✓ should be created - - TableRowStateManager - ✓ should init the state - ✓ should update the row state - ✓ should update the state - ✓ should set the state - ✓ should set the row state - - TableRowComponent - ✓ should create - ✓ should show error - - TableComponent - ✓ should be created - ✓ should get base column ids - ✓ should get base column ids + selection - ✓ should get base column ids + actions - ✓ should get base column ids + actions + selection -WARN LOG: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at new getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.ts:50:47) - at CfQuotasDataSourceService.ListDataSource [as constructor] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-quotas/cf-quotas-data-source.service.ts:30:24) - at new CfQuotasListConfigService (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-quotas/cf-quotas-list-config.service.ts:115:28) - at _createClass (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at new getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.ts:50:47) - at CfQuotasDataSourceService.ListDataSource [as constructor] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-quotas/cf-quotas-data-source.service.ts:30:24) - at new CfQuotasListConfigService (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-quotas/cf-quotas-list-config.service.ts:115:28) - at _createClass (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at new getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.ts:50:47) - at CfQuotasDataSourceService.ListDataSource [as constructor] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-quotas/cf-quotas-data-source.service.ts:30:24) - at new CfQuotasListConfigService (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-quotas/cf-quotas-list-config.service.ts:115:28) - at _createClass (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1)' - - CfQuotasListConfigService - ✗ should be created - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition' - at new PaginationMonitor (src/shared/monitors/pagination-monitor.ts:52:19) - at CfQuotasDataSourceService.ListDataSource [as constructor] (src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (src/shared/components/list/list-types/cf-quotas/cf-quotas-data-source.service.ts:30:24) - at new CfQuotasListConfigService (src/shared/components/list/list-types/cf-quotas/cf-quotas-list-config.service.ts:115:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - -Chrome 76.0.3809 (Linux 0.0.0) CfQuotasListConfigService should be created FAILED - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition' - at new PaginationMonitor (src/shared/monitors/pagination-monitor.ts:52:19) - at CfQuotasDataSourceService.ListDataSource [as constructor] (src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (src/shared/components/list/list-types/cf-quotas/cf-quotas-data-source.service.ts:30:24) - at new CfQuotasListConfigService (src/shared/components/list/list-types/cf-quotas/cf-quotas-list-config.service.ts:115:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - - TableCellQuotaComponent - ✓ should create -WARN LOG: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at new getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.ts:50:47) - at CfOrgSpaceQuotasDataSourceService.ListDataSource [as constructor] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-data-source.service.ts:30:24) - at new CfSpaceQuotasListConfigService (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-list-config.service.ts:119:28) - at _createClass (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at new getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.ts:50:47) - at CfOrgSpaceQuotasDataSourceService.ListDataSource [as constructor] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-data-source.service.ts:30:24) - at new CfSpaceQuotasListConfigService (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-list-config.service.ts:119:28) - at _createClass (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1)' -WARN: 'Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at new getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/shared/monitors/pagination-monitor.ts:50:47) - at CfOrgSpaceQuotasDataSourceService.ListDataSource [as constructor] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-data-source.service.ts:30:24) - at new CfSpaceQuotasListConfigService (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-list-config.service.ts:119:28) - at _createClass (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1)' - - CfSpaceQuotasListConfigService - ✗ should be created - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition' - at new PaginationMonitor (src/shared/monitors/pagination-monitor.ts:52:19) - at CfOrgSpaceQuotasDataSourceService.ListDataSource [as constructor] (src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-data-source.service.ts:30:24) - at new CfSpaceQuotasListConfigService (src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-list-config.service.ts:119:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - -Chrome 76.0.3809 (Linux 0.0.0) CfSpaceQuotasListConfigService should be created FAILED - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition' - at new PaginationMonitor (src/shared/monitors/pagination-monitor.ts:52:19) - at CfOrgSpaceQuotasDataSourceService.ListDataSource [as constructor] (src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-data-source.service.ts:30:24) - at new CfSpaceQuotasListConfigService (src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-list-config.service.ts:119:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - - EndpointCardComponent - ✓ should create -06 09 2019 10:59:42.375:WARN [web-server]: 404: /core/assets/endpoint-icons/metrics.svg - - EndpointsListConfigService - ✓ should be created - - TableCellEndpointDetailsComponent - ✓ should create - - TableCellEndpointNameComponent - ✗ should create - TypeError: Cannot read property 'entityGuid' of undefined - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at TableCellEndpointNameComponent.create [as row] (src/shared/components/list/list-types/endpoint/table-cell-endpoint-name/table-cell-endpoint-name.component.ts:41:56) - at UserContext. (src/shared/components/list/list-types/endpoint/table-cell-endpoint-name/table-cell-endpoint-name.component.spec.ts:30:18) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:390:1) - at Zone.../../../../node_modules/zone.js/dist/zone.js.Zone.run (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:150:1) - at runInTestZone (home/kater/dev/git/stratos/node_modules/zone.js/dist/jasmine-patch.js:145:1) - at UserContext. (home/kater/dev/git/stratos/node_modules/zone.js/dist/jasmine-patch.js:160:1) - -Chrome 76.0.3809 (Linux 0.0.0) TableCellEndpointNameComponent should create FAILED - TypeError: Cannot read property 'entityGuid' of undefined - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at TableCellEndpointNameComponent.create [as row] (src/shared/components/list/list-types/endpoint/table-cell-endpoint-name/table-cell-endpoint-name.component.ts:41:56) - at UserContext. (src/shared/components/list/list-types/endpoint/table-cell-endpoint-name/table-cell-endpoint-name.component.spec.ts:30:18) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:390:1) - at Zone.../../../../node_modules/zone.js/dist/zone.js.Zone.run (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:150:1) - at runInTestZone (home/kater/dev/git/stratos/node_modules/zone.js/dist/jasmine-patch.js:145:1) - at UserContext. (home/kater/dev/git/stratos/node_modules/zone.js/dist/jasmine-patch.js:160:1) -WARN LOG: 'Could not find catalogue entity for endpoint type 'null' and entity type 'null'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at TestEntityCatalogue.getEntity [as getEndpoint] (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:131:21) - at TableCellEndpointStatusComponent.getEndpoint [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/endpoint/table-cell-endpoint-status/table-cell-endpoint-status.component.ts:37:34) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/TableCellEndpointStatusComponent_Host.ngfactory.js:9:5) - at Object.debugUpdateDirectives [as updateDirectives] (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1)' -WARN: 'Could not find catalogue entity for endpoint type 'null' and entity type 'null'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at TestEntityCatalogue.getEntity [as getEndpoint] (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:131:21) - at TableCellEndpointStatusComponent.getEndpoint [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/endpoint/table-cell-endpoint-status/table-cell-endpoint-status.component.ts:37:34) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/TableCellEndpointStatusComponent_Host.ngfactory.js:9:5) - at Object.debugUpdateDirectives [as updateDirectives] (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1)' -WARN: 'Could not find catalogue entity for endpoint type 'null' and entity type 'null'. Stack: ', 'Error - at TestEntityCatalogue.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:119:162) - at TestEntityCatalogue.getEntity [as getEndpoint] (http://localhost:9876/_karma_webpack_/webpack:/src/core/entity-catalogue/entity-catalogue.service.ts:131:21) - at TableCellEndpointStatusComponent.getEndpoint [as ngOnInit] (http://localhost:9876/_karma_webpack_/webpack:/src/shared/components/list/list-types/endpoint/table-cell-endpoint-status/table-cell-endpoint-status.component.ts:37:34) - at checkAndUpdateDirectiveInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/TableCellEndpointStatusComponent_Host.ngfactory.js:9:5) - at Object.debugUpdateDirectives [as updateDirectives] (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1)' - - TableCellEndpointStatusComponent - ✓ should be created - - GithubCommitsListConfigService - ✓ should be created - - TableCellCommitAuthorComponent - ✓ should create - - ListComponent - basic tests - ✓ initialised - default - ✓ initialised - custom - full test bed - ✓ should be created - Header - ✓ Nothing enabled - ✓ Everything enabled - ✓ First filter hidden if only one option - ✓ No rows - - LoadingPageComponent - ✓ should be created - - LogViewerComponent - ✓ should be created - ✓ should add logline from observable - ✓ should only allow max rows - ✓ should be in high throughput mode - - MarkdownPreviewComponent - ✓ should create - - MetadataItemComponent - ✓ should create - - MetricsParentRangeSelectorComponent - ✓ should create - - MetricsRangeSelectorComponent - ✓ should create - - MultilineTitleComponent - ✓ should create - - NestedTabsComponent - ✓ should create - - NoContentMessageComponent - ✓ should be created - - PageHeaderEventsComponent - ✓ should create - - PageHeaderComponent - ✓ should be created - ✓ should have 3 breadcrumbs - ✓ should have 2 breadcrumb - - ShowPageHeaderComponent - ✓ should create - - PageSubNavSectionComponent - ✓ should create - - PageSubNavComponent - ✓ should create - - PageSubheaderComponent - ✓ should create - - PollingIndicatorComponent - ✓ should create - - RecentEntitiesComponent - ✓ should create - - RingChartComponent - ✓ should create - - RoutingIndicatorComponent - ✓ should create - - SimpleUsageChartComponent - ✓ should create - - SnackBarReturnComponent - ✓ should create - - SshViewerComponent - ✓ should create - - StackedInputActionComponent - ✓ should create - - StackedInputActionsComponent - ✓ should create - - StartEndDateComponent - ✓ should create - - StepComponent - ✓ should be created - - StepperFormComponent - ✓ should be created - - SteppersService - ✓ should be created - - SteppersComponent - ✓ should be created - - StratosTitleComponent - ✓ should create -06 09 2019 11:00:26.814:WARN [web-server]: 404: /core/assets/logo.png - - TileSelectorComponent - ✓ should create - - TileGridComponent - ✓ should create - - TileGroupComponent - ✓ should create - - TileComponent - ✓ should create - - UniqueDirective - ✓ should create an instance - - UnlimitedInputComponent - ✓ should create - - UploadProgressIndicatorComponent - ✓ should create - - UsageGaugeComponent - ✓ should create - - UserProfileBannerComponent - ✓ should create - - GlobalEventsService - ✓ should be created - - EntityMonitor - ✓ should be created - - InternalEventMonitorFactory - ✓ should be created - - PaginationMonitorFactoryService - ✓ should be created - - MbToHumanSizePipe - ✓ create an instance - - MetricsRangeSelectorManagerService - ✓ should be created - - MetricsRangeSelectorService - ✓ should be created - - UserPermissionDirective - ✓ should create an instance -TOTAL: 16 FAILED, 228 SUCCESS - -Chrome 76.0.3809 (Linux 0.0.0): Executed 244 of 250 (16 FAILED) (skipped 6) (3 mins 19.901 secs / 3 mins 19.089 secs) -TOTAL: 16 FAILED, 228 SUCCESS - - -1) should fail new entity - EntityServiceService - Error: Timeout - Async callback was not invoked within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) - at - -2) should fail previously fetched entity - EntityServiceService - Error: Timeout - Async callback was not invoked within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) - at - -3) should set deleted failed - EntityServiceService - Error: Expected false to equal true. - at - at TapSubscriber._tapNext (src/core/entity-service.spec.ts:395:56) - at TapSubscriber._next (home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/tap.js:45:1) - at TapSubscriber.Subscriber.next (home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Subscriber.js:53:1) - -4) should create - AddQuotaComponent - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition' -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - -5) should create - CreateQuotaStepComponent - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition' -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at QuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:75:62) - at QuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/quota-definition-form/quota-definition-form.component.ts:51:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - -6) should create - AddSpaceQuotaComponent - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition' -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - -7) should create - CreateSpaceQuotaStepComponent - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition' -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 436453379, rootNodeFlags: 402653185, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: -1, flags: 402653184, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: null, provider: null, text: null, query: Object({ id: 1, filterId: 2, bindings: [ Object ] }), ngContent: null }), Object({ nodeIndex: 1, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1, childFlags: 33800195, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], ... - at PaginationMonitorFactory.create (src/shared/monitors/pagination-monitor.factory.ts:23:19) - at SpaceQuotaDefinitionFormComponent.create [as fetchQuotasDefinitions] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:75:62) - at SpaceQuotaDefinitionFormComponent.fetchQuotasDefinitions [as ngOnInit] (src/features/cloud-foundry/space-quota-definition-form/space-quota-definition-form.component.ts:52:14) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateSpaceQuotaStepComponent.ngfactory.js:16:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - -8) should create - EditQuotaStepComponent - TypeError: Cannot read property 'entityGuid' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735681, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 181248, directChildFlags: 181248, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-quota-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ou ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:44:59) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:40:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.spec.ts:28:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -9) should create - EditQuotaComponent - TypeError: Cannot read property 'entityGuid' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643024387, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643024387, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 12, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643024387, directChildFlags: ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:44:59) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-quota/edit-quota-step/edit-quota-step.component.ts:40:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23273:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-quota/edit-quota.component.spec.ts:29:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -10) should create - EditSpaceQuotaStepComponent - TypeError: Cannot read property 'entityGuid' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-space-quota-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditSpaceQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:42:64) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:38:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.spec.ts:30:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -11) should create - EditSpaceQuotaComponent - TypeError: Cannot read property 'entityGuid' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 11, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: ... - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at EditSpaceQuotaStepComponent.create [as fetchQuotaDefinition] (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:42:64) - at new fetchQuotaDefinition (src/features/cloud-foundry/edit-space-quota/edit-space-quota-step/edit-space-quota-step.component.ts:38:14) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23273:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space-quota/edit-space-quota.component.spec.ts:29:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -12) should create - CloudFoundryOrganizationSpaceQuotasComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-space-quotas', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQu ... - at NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-space-quotas/cloud-foundry-organization-space-quotas.component.spec.ts:35:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -13) should create - CloudFoundryQuotasComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-quotas', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-quotas/cloud-foundry-quotas.component.spec.ts:35:23) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - -14) should be created - CfQuotasListConfigService - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'quota_definition' - at new PaginationMonitor (src/shared/monitors/pagination-monitor.ts:52:19) - at CfQuotasDataSourceService.ListDataSource [as constructor] (src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (src/shared/components/list/list-types/cf-quotas/cf-quotas-data-source.service.ts:30:24) - at new CfQuotasListConfigService (src/shared/components/list/list-types/cf-quotas/cf-quotas-list-config.service.ts:115:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - -15) should be created - CfSpaceQuotasListConfigService - Error: Could not find catalogue entity for endpoint type 'cf' and entity type 'space_quota_definition' - at new PaginationMonitor (src/shared/monitors/pagination-monitor.ts:52:19) - at CfOrgSpaceQuotasDataSourceService.ListDataSource [as constructor] (src/shared/components/list/data-sources-controllers/list-data-source.ts:78:33) - at new call (src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-data-source.service.ts:30:24) - at new CfSpaceQuotasListConfigService (src/shared/components/list/list-types/cf-space-quotas/cf-space-quotas-list-config.service.ts:119:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - -16) should create - TableCellEndpointNameComponent - TypeError: Cannot read property 'entityGuid' of undefined - at - at EntityServiceFactory.entityGuid [as isConfig] (src/core/entity-service-factory.service.ts:25:25) - at EntityServiceFactory.isConfig [as create] (src/core/entity-service-factory.service.ts:32:29) - at TableCellEndpointNameComponent.create [as row] (src/shared/components/list/list-types/endpoint/table-cell-endpoint-name/table-cell-endpoint-name.component.ts:41:56) - at UserContext. (src/shared/components/list/list-types/endpoint/table-cell-endpoint-name/table-cell-endpoint-name.component.spec.ts:30:18) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/proxy.js:129:1) - at ZoneDelegate.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:390:1) - at Zone.../../../../node_modules/zone.js/dist/zone.js.Zone.run (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:150:1) - at runInTestZone (home/kater/dev/git/stratos/node_modules/zone.js/dist/jasmine-patch.js:145:1) - at UserContext. (home/kater/dev/git/stratos/node_modules/zone.js/dist/jasmine-patch.js:160:1) - - -TOTAL: 16 FAILED, 228 SUCCESS -06 09 2019 11:00:38.782:WARN [launcher]: Chrome was not killed in 2000 ms, sending SIGKILL. - -> stratos@2.5.0 test-frontend:store /home/kater/dev/git/stratos -> ng test store --code-coverage --watch=false - -06 09 2019 11:00:52.784:INFO [karma-server]: Karma v4.0.0 server started at http://0.0.0.0:9876/ -06 09 2019 11:00:52.786:INFO [launcher]: Launching browsers Chrome with concurrency unlimited -06 09 2019 11:00:52.790:INFO [launcher]: Starting browser Chrome - - - -06 09 2019 11:00:55.387:WARN [launcher]: Chrome was not killed in 2000 ms, sending SIGKILL. - -> stratos@2.5.0 test-frontend:cloud-foundry /home/kater/dev/git/stratos -> ng test cloud-foundry --code-coverage --watch=false - -06 09 2019 11:01:18.216:INFO [karma-server]: Karma v4.0.0 server started at http://0.0.0.0:9876/ -06 09 2019 11:01:18.218:INFO [launcher]: Launching browsers Chrome with concurrency unlimited -06 09 2019 11:01:18.224:INFO [launcher]: Starting browser Chrome -06 09 2019 11:02:05.440:INFO [Chrome 76.0.3809 (Linux 0.0.0)]: Connected on socket VdYDbE6dtpZqeVFGAAAA with id 91044442 - - Entity Relations - populate from parent - ✓ No list in parent - no op - ✓ List in parent - - Entity Relations - List relations - ✓ no relations - ✓ relation depth of 2 with relations - - Entity Relations - validate - - validate from store - - ✓ Everything missing, nothing required - ✓ List missing, list required - ✓ List exists, list required - ✓ List exists, list not required - ✓ Entity Missing, entity required - ✓ child has missing required relation - ✓ Missing entities has required relations but not allowed to populate missing - ✓ Basic no-op - ✗ Have missing relation in store, associate it with parent - Error: Expected $.apiAction not to have properties - childEntityKey: 'cfQuota_definition' - at - at src/entity-relations/entity-relations-validate.spec.ts:470:52 - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.execute (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1822:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1991:29 - -Chrome 76.0.3809 (Linux 0.0.0) Entity Relations - validate - validate from store - Have missing relation in store, associate it with parent FAILED - Error: Expected $.apiAction not to have properties - childEntityKey: 'cfQuota_definition' - at - at src/entity-relations/entity-relations-validate.spec.ts:470:52 - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.execute (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1822:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1991:29 - validate from api response - ✓ Everything missing, nothing required - ✓ List missing, list required - ✓ List exists, list required - ✓ List exists, list not required - ✓ Entity Missing, entity required - - Entity Relations - Tree - ✓ no relations - ✓ relation depth of 1, no relations - ✓ relation depth of 1 with relations (key) - ✓ relation depth of 1 with relations (type) - ✓ relation depth of 2 with relations - ✓ relation depth of 2 without relations - - ApplicationDeleteComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-delete', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-delete/application-delete.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) ApplicationDeleteComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-delete', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-delete/application-delete.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - DeleteAppInstancesComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735169, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180736, directChildFlags: 180736, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-delete-app-instances', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-delete/delete-app-instances/delete-app-instances.component.spec.ts:44:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) DeleteAppInstancesComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735169, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180736, directChildFlags: 180736, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-delete-app-instances', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-delete/delete-app-instances/delete-app-instances.component.spec.ts:44:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - DeleteAppRoutesComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735169, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180736, directChildFlags: 180736, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-delete-app-routes', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-delete/delete-app-routes/delete-app-routes.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) DeleteAppRoutesComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735169, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180736, directChildFlags: 180736, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-delete-app-routes', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-delete/delete-app-routes/delete-app-routes.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ApplicationWallComponent - ✗ should be created - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33739265, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 184832, directChildFlags: 184832, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-wall', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, o ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-wall/application-wall.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) ApplicationWallComponent should be created FAILED - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33739265, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 184832, directChildFlags: 184832, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-wall', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, o ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-wall/application-wall.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ApplicationService - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -Chrome 76.0.3809 (Linux 0.0.0) ApplicationService should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - ApplicationBaseComponent - ✓ should create - - ApplicationPollComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-poll', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, n ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-application-poll/application-poll.component.spec.ts:44:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) ApplicationPollComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-poll', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, n ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-application-poll/application-poll.component.spec.ts:44:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ApplicationTabsBaseComponent - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800705, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 246272, directChildFlags: 246272, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-tabs-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: O ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-application-tabs-base.component.spec.ts:71:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) ApplicationTabsBaseComponent should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800705, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 246272, directChildFlags: 246272, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-tabs-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: O ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-application-tabs-base.component.spec.ts:71:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ApplicationEnvVarsService - ✓ should be created - - BuildTabComponent - ✓ should be created - - ViewBuildpackComponent - ✓ should be created - - EventsTabComponent - ✗ should be created - TypeError: actionBuilder is not a function - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 1, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: 33554433, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: ... - at - at new actionBuilder (src/shared/components/list/list-types/app-event/cf-app-events-data-source.ts:28:22) - at new CfAppEventsConfigService (src/shared/components/list/list-types/app-event/cf-app-events-config.service.ts:63:29) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22244:45) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22148:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/events-tab/events-tab.component.spec.ts:75:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) EventsTabComponent should be created FAILED - TypeError: actionBuilder is not a function - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 1, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: 33554433, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: ... - at - at new actionBuilder (src/shared/components/list/list-types/app-event/cf-app-events-data-source.ts:28:22) - at new CfAppEventsConfigService (src/shared/components/list/list-types/app-event/cf-app-events-config.service.ts:63:29) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22244:45) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22148:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/events-tab/events-tab.component.spec.ts:75:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) -WARN LOG: 'Could not find catalogue entity for endpoint type 'stratos' and entity type 'gitRepo'. Stack: ', 'Error - at TestEntityCatalogue.../core/src/core/entity-catalogue/entity-catalogue.service.ts.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/core/src/core/entity-catalogue/entity-catalogue.service.ts:128:9) - at TapSubscriber.getEntity [as _tapNext] (http://localhost:9876/_karma_webpack_/webpack:/src/features/applications/application/application-tabs-base/tabs/gitscm-tab/gitscm-tab.component.ts:56:49) - at TapSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/operators/tap.js.TapSubscriber._next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/tap.js:45:1) - at TapSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Subscriber.js:53:1) - at TakeSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/operators/take.js.TakeSubscriber._next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/take.js:40:1) - at TakeSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Subscriber.js:53:1) - at Observable._subscribe (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/observable/scalar.js:5:1) - at Observable.push.../../../../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Observable.js:43:1) - at Observable.push.../../../../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Observable.js:29:1) - at TakeOperator.push.../../../../node_modules/rxjs/_esm5/internal/operators/take.js.TakeOperator.call (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/take.js:24:1)' -WARN: 'Could not find catalogue entity for endpoint type 'stratos' and entity type 'gitRepo'. Stack: ', 'Error - at TestEntityCatalogue.../core/src/core/entity-catalogue/entity-catalogue.service.ts.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/core/src/core/entity-catalogue/entity-catalogue.service.ts:128:9) - at TapSubscriber.getEntity [as _tapNext] (http://localhost:9876/_karma_webpack_/webpack:/src/features/applications/application/application-tabs-base/tabs/gitscm-tab/gitscm-tab.component.ts:56:49) - at TapSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/operators/tap.js.TapSubscriber._next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/tap.js:45:1) - at TapSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Subscriber.js:53:1) - at TakeSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/operators/take.js.TakeSubscriber._next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/take.js:40:1) - at TakeSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Subscriber.js:53:1) - at Observable._subscribe (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/observable/scalar.js:5:1) - at Observable.push.../../../../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Observable.js:43:1) - at Observable.push.../../../../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Observable.js:29:1) - at TakeOperator.push.../../../../node_modules/rxjs/_esm5/internal/operators/take.js.TakeOperator.call (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/take.js:24:1)' -WARN: 'Could not find catalogue entity for endpoint type 'stratos' and entity type 'gitRepo'. Stack: ', 'Error - at TestEntityCatalogue.../core/src/core/entity-catalogue/entity-catalogue.service.ts.EntityCatalogue.getEntity (http://localhost:9876/_karma_webpack_/webpack:/core/src/core/entity-catalogue/entity-catalogue.service.ts:128:9) - at TapSubscriber.getEntity [as _tapNext] (http://localhost:9876/_karma_webpack_/webpack:/src/features/applications/application/application-tabs-base/tabs/gitscm-tab/gitscm-tab.component.ts:56:49) - at TapSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/operators/tap.js.TapSubscriber._next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/tap.js:45:1) - at TapSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Subscriber.js:53:1) - at TakeSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/operators/take.js.TakeSubscriber._next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/take.js:40:1) - at TakeSubscriber.push.../../../../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Subscriber.js:53:1) - at Observable._subscribe (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/observable/scalar.js:5:1) - at Observable.push.../../../../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Observable.js:43:1) - at Observable.push.../../../../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/Observable.js:29:1) - at TakeOperator.push.../../../../node_modules/rxjs/_esm5/internal/operators/take.js.TakeOperator.call (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/rxjs/_esm5/internal/operators/take.js:24:1)' - - GitSCMTabComponent - ✓ should create - - InstancesTabComponent - ✗ should create - Uncaught TypeError: Cannot read property 'actionOrchestrator' of undefined thrown - - Error: StaticInjectorError(DynamicTestModule)[ListConfig -> CloudFoundryEndpointService]: - StaticInjectorError(Platform: core)[ListConfig -> CloudFoundryEndpointService]: - NullInjectorError: No provider for CloudFoundryEndpointService! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ListConfig', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643547137, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 638828545, directChildFlags: 33603585, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 16, bindings: [ Object({ flags: 2, ns: '', name: 'app-tile-grid-fit', nonMinifiedName: 'app-tile-grid-fit', securityContext: undefined, suffix: undefined }) ], bindingFlags: 2, outputs: [ ], element: Object({ ns: '', name: 'app-tile-grid', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 1, outputIndex: 0, checkIndex: 1, flags: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/instances-tab/instances-tab.component.spec.ts:50:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at AsyncTestZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.AsyncTestZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:714:1) - -Chrome 76.0.3809 (Linux 0.0.0) InstancesTabComponent should create FAILED - Uncaught TypeError: Cannot read property 'actionOrchestrator' of undefined thrown - Error: StaticInjectorError(DynamicTestModule)[ListConfig -> CloudFoundryEndpointService]: - StaticInjectorError(Platform: core)[ListConfig -> CloudFoundryEndpointService]: - NullInjectorError: No provider for CloudFoundryEndpointService! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ListConfig', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643547137, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 638828545, directChildFlags: 33603585, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 16, bindings: [ Object({ flags: 2, ns: '', name: 'app-tile-grid-fit', nonMinifiedName: 'app-tile-grid-fit', securityContext: undefined, suffix: undefined }) ], bindingFlags: 2, outputs: [ ], element: Object({ ns: '', name: 'app-tile-grid', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 1, outputIndex: 0, checkIndex: 1, flags: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/instances-tab/instances-tab.component.spec.ts:50:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at AsyncTestZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.AsyncTestZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:714:1) - - LogStreamTabComponent - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-log-stream-tab', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/log-stream-tab/log-stream-tab.component.spec.ts:70:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) LogStreamTabComponent should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-log-stream-tab', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/log-stream-tab/log-stream-tab.component.spec.ts:70:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - RoutesTabComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33805825, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 251392, directChildFlags: 251392, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-routes-tab', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngCo ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/routes-tab/routes-tab/routes-tab.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) RoutesTabComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33805825, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 251392, directChildFlags: 251392, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-routes-tab', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngCo ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/routes-tab/routes-tab/routes-tab.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ServicesTabComponent - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntries: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 5, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, componentRendererType: null, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/services-tab/services-tab.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) ServicesTabComponent should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntries: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 5, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, componentRendererType: null, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/services-tab/services-tab.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - VariablesTabComponent - ✓ should be created - - CliInfoApplicationComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cli-info-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/cli-info-application/cli-info-application.component.spec.ts:60:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CliInfoApplicationComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cli-info-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/cli-info-application/cli-info-application.component.spec.ts:60:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) -WARN LOG: ' - It looks like you're using ngModel on the same form field as formControlName. - Support for using the ngModel input property and ngModelChange event with - reactive form directives has been deprecated in Angular v6 and will be removed - in Angular v7. - - For more information on this, see our API docs here: - https://angular.io/api/forms/FormControlName#use-with-ngmodel - ' -WARN: ' - It looks like you're using ngModel on the same form field as formControlName. - Support for using the ngModel input property and ngModelChange event with - reactive form directives has been deprecated in Angular v6 and will be removed - in Angular v7. - - For more information on this, see our API docs here: - https://angular.io/api/forms/FormControlName#use-with-ngmodel - ' -WARN: ' - It looks like you're using ngModel on the same form field as formControlName. - Support for using the ngModel input property and ngModelChange event with - reactive form directives has been deprecated in Angular v6 and will be removed - in Angular v7. - - For more information on this, see our API docs here: - https://angular.io/api/forms/FormControlName#use-with-ngmodel - ' - - CreateApplicationStep2Component - ✓ should be created - - CreateApplicationStep3Component - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[CreateApplicationStep3Component -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CreateApplicationStep3Component -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CreateApplicationStep3Component', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33673729, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 119296, directChildFlags: 119296, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-application-step3', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/create-application/create-application-step3/create-application-step3.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CreateApplicationStep3Component should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[CreateApplicationStep3Component -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CreateApplicationStep3Component -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CreateApplicationStep3Component', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33673729, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 119296, directChildFlags: 119296, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-application-step3', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/create-application/create-application-step3/create-application-step3.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CreateApplicationComponent - ✗ should be created - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800705, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 246272, directChildFlags: 246272, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/create-application/create-application.component.spec.ts:65:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CreateApplicationComponent should be created FAILED - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800705, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 246272, directChildFlags: 246272, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/create-application/create-application.component.spec.ts:65:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - DeployApplicationOptionsStepComponent - ✓ should create - - DeployApplicationStepSourceUploadComponent - ✗ should create - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-deploy-application-step-source-upload', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/deploy-application/deploy-application-step-source-upload/deploy-application-step-source-upload.component.spec.ts:43:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) DeployApplicationStepSourceUploadComponent should create FAILED - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-deploy-application-step-source-upload', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/deploy-application/deploy-application-step-source-upload/deploy-application-step-source-upload.component.spec.ts:43:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CommitListWrapperComponent - ✓ should create - - DeployApplicationStep21Component - ✓ should create - - DeployApplicationFsComponent - ✓ should create - - DeployApplicationStep2Component - ✓ should create - - DeployApplicationStep3Component - ✗ should create - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-deploy-application-step3', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/deploy-application/deploy-application-step3/deploy-application-step3.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) DeployApplicationStep3Component should create FAILED - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-deploy-application-step3', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/deploy-application/deploy-application-step3/deploy-application-step3.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - DeployApplicationComponent - ✗ should create - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33804801, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 250368, directChildFlags: 250368, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-deploy-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/deploy-application/deploy-application.component.spec.ts:85:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) DeployApplicationComponent should create FAILED - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33804801, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 250368, directChildFlags: 250368, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-deploy-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/deploy-application/deploy-application.component.spec.ts:85:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - GithubProjectExistsDirective - ✓ should create an instance - - EditApplicationComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33804801, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 250368, directChildFlags: 250368, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/edit-application/edit-application.component.spec.ts:69:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) EditApplicationComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33804801, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 250368, directChildFlags: 250368, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/edit-application/edit-application.component.spec.ts:69:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - NewApplicationBaseStepComponent - ✓ should create -06 09 2019 11:03:59.267:WARN [web-server]: 404: /core/assets/endpoint-icons/github-logo.png -06 09 2019 11:03:59.268:WARN [web-server]: 404: /core/assets/endpoint-icons/gitlab-icon-rgb.svg -06 09 2019 11:03:59.269:WARN [web-server]: 404: /core/assets/endpoint-icons/Git-logo.png - - AddRouteStepperComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[AddRoutesComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AddRoutesComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AddRoutesComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 4374531, directChildFlags: 4374529, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-page-header', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 4374528, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/routes/add-route-stepper/add-route-stepper.component.spec.ts:51:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) AddRouteStepperComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[AddRoutesComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AddRoutesComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AddRoutesComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 4374531, directChildFlags: 4374529, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-page-header', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 4374528, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/routes/add-route-stepper/add-route-stepper.component.spec.ts:51:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - AddRoutesComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[AddRoutesComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AddRoutesComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AddRoutesComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-add-routes', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngCo ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/routes/add-routes/add-routes.component.spec.ts:41:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) AddRoutesComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[AddRoutesComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AddRoutesComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AddRoutesComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-add-routes', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngCo ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/routes/add-routes/add-routes.component.spec.ts:41:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - MapRoutesComponent - ✓ should create - - SshApplicationComponent - ✓ should create - - AddOrganizationComponent - ✗ should create - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 11, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: ... - at - at includeRelations (src/entity-action-builders/quota-definition.action-builders.ts:4:35) - at CreateOrganizationStepComponent.actionBuilder [as ngOnInit] (src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:79:40) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/AddOrganizationComponent.ngfactory.js:37:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - at checkAndUpdateView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23297:1) - -Chrome 76.0.3809 (Linux 0.0.0) AddOrganizationComponent should create FAILED - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 11, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: ... - at - at includeRelations (src/entity-action-builders/quota-definition.action-builders.ts:4:35) - at CreateOrganizationStepComponent.actionBuilder [as ngOnInit] (src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:79:40) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/AddOrganizationComponent.ngfactory.js:37:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - at checkAndUpdateView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23297:1) -ERROR LOG: 'Error during cleanup of component', Object{component: AddOrganizationComponent{cfUrl: '/cloud-foundry/null/organizations'}, stacktrace: TypeError: Cannot read property 'unsubscribe' of undefined -TypeError: Cannot read property 'unsubscribe' of undefined - at CreateOrganizationStepComponent.unsubscribe (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:94:30) - at callProviderLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22412:1) - at callElementProvidersLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22380:1) - at callLifecycleHooksChildrenFirst (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22370:1) - at destroyView (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23432:1) - at callViewAction (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23558:1) - at execComponentViewsAction (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at destroyView (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23431:1) - at callWithDebugContext (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugDestroyView [as destroyView] (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23875:1)} -ERROR: 'Error during cleanup of component', Object{component: AddOrganizationComponent{cfUrl: '/cloud-foundry/null/organizations'}, stacktrace: TypeError: Cannot read property 'unsubscribe' of undefined -TypeError: Cannot read property 'unsubscribe' of undefined - at CreateOrganizationStepComponent.unsubscribe (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:94:30) - at callProviderLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22412:1) - at callElementProvidersLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22380:1) - at callLifecycleHooksChildrenFirst (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22370:1) - at destroyView (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23432:1) - at callViewAction (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23558:1) - at execComponentViewsAction (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at destroyView (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23431:1) - at callWithDebugContext (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugDestroyView [as destroyView] (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23875:1)} -ERROR: 'Error during cleanup of component', Object{component: AddOrganizationComponent{cfUrl: '/cloud-foundry/null/organizations'}, stacktrace: TypeError: Cannot read property 'unsubscribe' of undefined -TypeError: Cannot read property 'unsubscribe' of undefined - at CreateOrganizationStepComponent.unsubscribe (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:94:30) - at callProviderLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22412:1) - at callElementProvidersLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22380:1) - at callLifecycleHooksChildrenFirst (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22370:1) - at destroyView (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23432:1) - at callViewAction (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23558:1) - at execComponentViewsAction (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at destroyView (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23431:1) - at callWithDebugContext (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugDestroyView [as destroyView] (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23875:1)} - - CreateOrganizationStepComponent - ✗ should create - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-organization-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: ... - at - at includeRelations (src/entity-action-builders/quota-definition.action-builders.ts:4:35) - at CreateOrganizationStepComponent.actionBuilder [as ngOnInit] (src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:79:40) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateOrganizationStepComponent_Host.ngfactory.js:10:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - at checkAndUpdateView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23297:1) - -Chrome 76.0.3809 (Linux 0.0.0) CreateOrganizationStepComponent should create FAILED - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-organization-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: ... - at - at includeRelations (src/entity-action-builders/quota-definition.action-builders.ts:4:35) - at CreateOrganizationStepComponent.actionBuilder [as ngOnInit] (src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:79:40) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateOrganizationStepComponent_Host.ngfactory.js:10:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - at checkAndUpdateView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23297:1) -ERROR LOG: 'Error during cleanup of component', Object{component: CreateOrganizationStepComponent{store: Store{_isScalar: ..., actionsObserver: ..., reducerManager: ..., source: ...}, activatedRoute: ActivatedRoute{url: ..., params: ..., queryParams: ..., fragment: ..., data: ..., outlet: ..., component: ..., _futureSnapshot: ..., snapshot: ..., _routerState: ...}, paginationMonitorFactory: PaginationMonitorFactory{store: ..., monitorCache: ...}, nameTakenValidator: function(){ ... }, validateNameTaken: function(value){ ... }, validate: function(){ ... }, submit: function(){ ... }, cfGuid: undefined, addOrg: FormGroup{validator: ..., asyncValidator: ..., _onCollectionChange: ..., pristine: ..., touched: ..., _onDisabledChange: ..., controls: ..., valueChanges: ..., statusChanges: ..., status: ..., value: ..., errors: ...}, orgs$: Observable{_isScalar: ..., source: ..., operator: ...}}, stacktrace: TypeError: Cannot read property 'unsubscribe' of undefined -TypeError: Cannot read property 'unsubscribe' of undefined - at CreateOrganizationStepComponent.unsubscribe (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:94:30) - at callProviderLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22412:1) - at callElementProvidersLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22380:1) - at callLifecycleHooksChildrenFirst (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22370:1) - at destroyView (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23432:1) - at callWithDebugContext (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugDestroyView [as destroyView] (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23875:1) - at ViewRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.ViewRef_.destroy (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21701:1) - at ComponentRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentRef_.destroy (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21537:52) - at ComponentFixture.push.../../../../node_modules/@angular/core/fesm5/testing.js.ComponentFixture.destroy (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:310:1)} -ERROR: 'Error during cleanup of component', Object{component: CreateOrganizationStepComponent{store: Store{_isScalar: ..., actionsObserver: ..., reducerManager: ..., source: ...}, activatedRoute: ActivatedRoute{url: ..., params: ..., queryParams: ..., fragment: ..., data: ..., outlet: ..., component: ..., _futureSnapshot: ..., snapshot: ..., _routerState: ...}, paginationMonitorFactory: PaginationMonitorFactory{store: ..., monitorCache: ...}, nameTakenValidator: function(){ ... }, validateNameTaken: function(value){ ... }, validate: function(){ ... }, submit: function(){ ... }, cfGuid: undefined, addOrg: FormGroup{validator: ..., asyncValidator: ..., _onCollectionChange: ..., pristine: ..., touched: ..., _onDisabledChange: ..., controls: ..., valueChanges: ..., statusChanges: ..., status: ..., value: ..., errors: ...}, orgs$: Observable{_isScalar: ..., source: ..., operator: ...}}, stacktrace: TypeError: Cannot read property 'unsubscribe' of undefined -TypeError: Cannot read property 'unsubscribe' of undefined - at CreateOrganizationStepComponent.unsubscribe (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:94:30) - at callProviderLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22412:1) - at callElementProvidersLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22380:1) - at callLifecycleHooksChildrenFirst (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22370:1) - at destroyView (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23432:1) - at callWithDebugContext (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugDestroyView [as destroyView] (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23875:1) - at ViewRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.ViewRef_.destroy (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21701:1) - at ComponentRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentRef_.destroy (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21537:52) - at ComponentFixture.push.../../../../node_modules/@angular/core/fesm5/testing.js.ComponentFixture.destroy (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:310:1)} -ERROR: 'Error during cleanup of component', Object{component: CreateOrganizationStepComponent{store: Store{_isScalar: ..., actionsObserver: ..., reducerManager: ..., source: ...}, activatedRoute: ActivatedRoute{url: ..., params: ..., queryParams: ..., fragment: ..., data: ..., outlet: ..., component: ..., _futureSnapshot: ..., snapshot: ..., _routerState: ...}, paginationMonitorFactory: PaginationMonitorFactory{store: ..., monitorCache: ...}, nameTakenValidator: function(){ ... }, validateNameTaken: function(value){ ... }, validate: function(){ ... }, submit: function(){ ... }, cfGuid: undefined, addOrg: FormGroup{validator: ..., asyncValidator: ..., _onCollectionChange: ..., pristine: ..., touched: ..., _onDisabledChange: ..., controls: ..., valueChanges: ..., statusChanges: ..., status: ..., value: ..., errors: ...}, orgs$: Observable{_isScalar: ..., source: ..., operator: ...}}, stacktrace: TypeError: Cannot read property 'unsubscribe' of undefined -TypeError: Cannot read property 'unsubscribe' of undefined - at CreateOrganizationStepComponent.unsubscribe (http://localhost:9876/_karma_webpack_/webpack:/src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:94:30) - at callProviderLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22412:1) - at callElementProvidersLifecycles (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22380:1) - at callLifecycleHooksChildrenFirst (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22370:1) - at destroyView (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23432:1) - at callWithDebugContext (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugDestroyView [as destroyView] (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23875:1) - at ViewRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.ViewRef_.destroy (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21701:1) - at ComponentRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentRef_.destroy (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21537:52) - at ComponentFixture.push.../../../../node_modules/@angular/core/fesm5/testing.js.ComponentFixture.destroy (http://localhost:9876/_karma_webpack_/webpack:/home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:310:1)} - - AddSpaceComponent - ✗ should create - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 11, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: ... - at - at includeRelations (src/entity-action-builders/space.action-builders.ts:22:35) - at CreateSpaceStepComponent.getAllSpaceActionBuilder (src/features/cloud-foundry/add-edit-space-step-base.ts:27:22) - at new call (src/features/cloud-foundry/add-space/create-space-step/create-space-step.component.ts:39:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23273:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/add-space/add-space.component.spec.ts:28:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) AddSpaceComponent should create FAILED - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 11, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: ... - at - at includeRelations (src/entity-action-builders/space.action-builders.ts:22:35) - at CreateSpaceStepComponent.getAllSpaceActionBuilder (src/features/cloud-foundry/add-edit-space-step-base.ts:27:22) - at new call (src/features/cloud-foundry/add-space/create-space-step/create-space-step.component.ts:39:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23273:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/add-space/add-space.component.spec.ts:28:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CreateSpaceStepComponent - ✗ should create - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-space-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at includeRelations (src/entity-action-builders/space.action-builders.ts:22:35) - at CreateSpaceStepComponent.getAllSpaceActionBuilder (src/features/cloud-foundry/add-edit-space-step-base.ts:27:22) - at new call (src/features/cloud-foundry/add-space/create-space-step/create-space-step.component.ts:39:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/add-space/create-space-step/create-space-step.component.spec.ts:27:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CreateSpaceStepComponent should create FAILED - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-space-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at includeRelations (src/entity-action-builders/space.action-builders.ts:22:35) - at CreateSpaceStepComponent.getAllSpaceActionBuilder (src/features/cloud-foundry/add-edit-space-step-base.ts:27:22) - at new call (src/features/cloud-foundry/add-space/create-space-step/create-space-step.component.ts:39:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/add-space/create-space-step/create-space-step.component.spec.ts:27:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CliInfoCloudFoundryComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundrySpaceService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33670657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 116224, directChildFlags: 116224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 5, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cli-info-cloud-foundry', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 5, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 5, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/cli-info-cloud-foundry/cli-info-cloud-foundry.component.spec.ts:39:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CliInfoCloudFoundryComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundrySpaceService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33670657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 116224, directChildFlags: 116224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 5, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cli-info-cloud-foundry', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 5, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 5, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/cli-info-cloud-foundry/cli-info-cloud-foundry.component.spec.ts:39:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryBaseComponent - ✓ should create - - CloudFoundryTabsBaseComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-tabs-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/cloud-foundry-tabs-cloud-foundry-tabs-base.component.spec.ts:40:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryTabsBaseComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-tabs-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/cloud-foundry-tabs-cloud-foundry-tabs-base.component.spec.ts:40:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryComponent - ✓ should create - - EditOrganizationStepComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33801729, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 247296, directChildFlags: 247296, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-organization-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-organization/edit-organization-step/edit-organization-step.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) EditOrganizationStepComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33801729, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 247296, directChildFlags: 247296, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-organization-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-organization/edit-organization-step/edit-organization-step.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - EditOrganizationComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643024387, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643024387, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 13, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-organization/edit-organization.component.spec.ts:33:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) EditOrganizationComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643024387, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643024387, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 13, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-organization/edit-organization.component.spec.ts:33:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - EditSpaceStepComponent - ✗ should create - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-space-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ou ... - at - at includeRelations (src/entity-action-builders/space.action-builders.ts:22:35) - at EditSpaceStepComponent.getAllSpaceActionBuilder (src/features/cloud-foundry/add-edit-space-step-base.ts:27:22) - at new call (src/features/cloud-foundry/edit-space/edit-space-step/edit-space-step.component.ts:43:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space/edit-space-step/edit-space-step.component.spec.ts:34:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) EditSpaceStepComponent should create FAILED - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-space-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ou ... - at - at includeRelations (src/entity-action-builders/space.action-builders.ts:22:35) - at EditSpaceStepComponent.getAllSpaceActionBuilder (src/features/cloud-foundry/add-edit-space-step-base.ts:27:22) - at new call (src/features/cloud-foundry/edit-space/edit-space-step/edit-space-step.component.ts:43:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space/edit-space-step/edit-space-step.component.spec.ts:34:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - EditSpaceComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundrySpaceService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33670657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 116224, directChildFlags: 116224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-space', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space/edit-space.component.spec.ts:33:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) EditSpaceComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundrySpaceService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33670657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 116224, directChildFlags: 116224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-space', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space/edit-space.component.spec.ts:33:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - QuotaDefinitionComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[QuotaDefinitionComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[QuotaDefinitionComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'QuotaDefinitionComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-quota-definition', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/quota-definition/quota-definition.component.spec.ts:46:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) QuotaDefinitionComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[QuotaDefinitionComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[QuotaDefinitionComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'QuotaDefinitionComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-quota-definition', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/quota-definition/quota-definition.component.spec.ts:46:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - SpaceQuotaDefinitionComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[SpaceQuotaDefinitionComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[SpaceQuotaDefinitionComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'SpaceQuotaDefinitionComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-space-quota-definition', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/space-quota-definition/space-quota-definition.component.spec.ts:98:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) SpaceQuotaDefinitionComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[SpaceQuotaDefinitionComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[SpaceQuotaDefinitionComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'SpaceQuotaDefinitionComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-space-quota-definition', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/space-quota-definition/space-quota-definition.component.spec.ts:98:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CfAdminAddUserWarningComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CfUserService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfUserService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfUserService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-admin-add-user-warning', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cf-admin-add-user-warning/cf-admin-add-user-warning.component.spec.ts:28:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfAdminAddUserWarningComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CfUserService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfUserService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfUserService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-admin-add-user-warning', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cf-admin-add-user-warning/cf-admin-add-user-warning.component.spec.ts:28:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryBuildPacksComponent - ✓ should create - - CloudFoundryCellsComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33609217, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 54784, directChildFlags: 54784, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-cells', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-cells/cloud-foundry-cells.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryCellsComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33609217, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 54784, directChildFlags: 54784, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-cells', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-cells/cloud-foundry-cells.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryFeatureFlagsComponent - ✓ should create - - CloudFoundryFirehoseComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-firehose', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ref ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-firehose/cloud-foundry-firehose.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryFirehoseComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-firehose', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ref ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-firehose/cloud-foundry-firehose.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryInviteUserLinkComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-invite-user-link', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0 ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-invite-user-link/cloud-foundry-invite-user-link.component.spec.ts:31:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryInviteUserLinkComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-invite-user-link', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0 ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-invite-user-link/cloud-foundry-invite-user-link.component.spec.ts:31:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryOrganizationBaseComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33605121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50688, directChildFlags: 50688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 5, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 5, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 5, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-cloud-foundry-organization-base.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryOrganizationBaseComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33605121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50688, directChildFlags: 50688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 5, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 5, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 5, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-cloud-foundry-organization-base.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryOrganizationSpacesComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-spaces', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0 ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/cloud-foundry-organization-spaces.component.spec.ts:38:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryOrganizationSpacesComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-spaces', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0 ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/cloud-foundry-organization-spaces.component.spec.ts:38:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundrySpaceBaseComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundrySpaceService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33736193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 181760, directChildFlags: 181760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 5, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-space-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 5, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 5, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/cloud-foundry-space-cloud-foundry-space-base.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundrySpaceBaseComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundrySpaceService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33736193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 181760, directChildFlags: 181760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 5, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-space-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 5, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 5, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/cloud-foundry-space-cloud-foundry-space-base.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundrySpaceAppsComponent - ✓ should create - - CloudFoundrySpaceRoutesComponent - ✓ should create - - CloudFoundrySpaceServiceInstancesComponent - ✓ should create - - CloudFoundrySpaceSummaryComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-space-summary', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/tabs/cloud-foundry-space-summary/cloud-foundry-space-summary.component.spec.ts:53:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundrySpaceSummaryComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-space-summary', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/tabs/cloud-foundry-space-summary/cloud-foundry-space-summary.component.spec.ts:53:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundrySpaceUserServiceInstancesComponent - ✓ should create - - CloudFoundrySpaceUsersComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesForCurrentFilter: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, co ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/tabs/cloud-foundry-space-users/cloud-foundry-space-users.component.spec.ts:46:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundrySpaceUsersComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesForCurrentFilter: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, co ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/tabs/cloud-foundry-space-users/cloud-foundry-space-users.component.spec.ts:46:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryOrganizationSummaryComponent - ✗ should create - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-summary', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0 ... - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-summary/cloud-foundry-organization-summary.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryOrganizationSummaryComponent should create FAILED - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-summary', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0 ... - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-summary/cloud-foundry-organization-summary.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryOrganizationUsersComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesForCurrentFilter: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, co ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-users/cloud-foundry-organization-users.component.spec.ts:41:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryOrganizationUsersComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesForCurrentFilter: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, co ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-users/cloud-foundry-organization-users.component.spec.ts:41:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryOrganizationsComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organizations', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, r ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organizations.component.spec.ts:31:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryOrganizationsComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organizations', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, r ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organizations.component.spec.ts:31:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryRoutesComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesMaxedResults: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, compon ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-routes/cloud-foundry-routes.component.spec.ts:35:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryRoutesComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesMaxedResults: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, compon ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-routes/cloud-foundry-routes.component.spec.ts:35:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundrySecurityGroupsComponent - ✗ should create - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 1, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: 33554433, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: ... - at - at includeRelations (src/entity-action-builders/security-groups.action-builder.ts:6:35) - at new actionBuilder (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-data-source.ts:28:22) - at new CfSecurityGroupsListConfigService (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-list-config.service.ts:61:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22244:45) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22148:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-security-groups/cloud-foundry-security-groups.component.spec.ts:27:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundrySecurityGroupsComponent should create FAILED - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 1, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: 33554433, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: ... - at - at includeRelations (src/entity-action-builders/security-groups.action-builder.ts:6:35) - at new actionBuilder (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-data-source.ts:28:22) - at new CfSecurityGroupsListConfigService (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-list-config.service.ts:61:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22244:45) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22148:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-security-groups/cloud-foundry-security-groups.component.spec.ts:27:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryStacksComponent - ✓ should create - - CloudFoundrySummaryTabComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-summary-tab', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ref ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-summary-tab/cloud-foundry-summary-tab.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundrySummaryTabComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-summary-tab', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ref ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-summary-tab/cloud-foundry-summary-tab.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CloudFoundryUsersComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesForCurrentFilter: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, co ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-users/cloud-foundry-users.component.spec.ts:38:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CloudFoundryUsersComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesForCurrentFilter: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, co ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-users/cloud-foundry-users.component.spec.ts:38:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - InviteUsersCreateComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-invite-users-create', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/invite-users/invite-users-create/invite-users-create.component.spec.ts:38:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) InviteUsersCreateComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-invite-users-create', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/invite-users/invite-users-create/invite-users-create.component.spec.ts:38:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - InviteUsersComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023379, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 4374530, directChildFlags: 4374530, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-page-header', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 4374528, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngC ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/invite-users/invite-users.component.spec.ts:36:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) InviteUsersComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023379, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 4374530, directChildFlags: 4374530, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-page-header', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 4374528, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngC ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/invite-users/invite-users.component.spec.ts:36:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CfRolesService - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfRolesService should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - UsersRolesConfirmComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34717697, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1163264, directChildFlags: 1163264, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users-confirm', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1163264, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users-confirm/manage-users-confirm.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) UsersRolesConfirmComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34717697, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1163264, directChildFlags: 1163264, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users-confirm', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1163264, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users-confirm/manage-users-confirm.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - UsersRolesModifyComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33808897, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 254464, directChildFlags: 254464, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users-modify', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users-modify/manage-users-modify.component.spec.ts:49:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) UsersRolesModifyComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33808897, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 254464, directChildFlags: 254464, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users-modify', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users-modify/manage-users-modify.component.spec.ts:49:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - SpaceRolesListWrapperComponent - ✓ should create - - UsersRolesSelectComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users-select', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ng ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users-select/manage-users-select.component.spec.ts:43:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) UsersRolesSelectComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users-select', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ng ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users-select/manage-users-select.component.spec.ts:43:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - UsersRolesComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CfUserService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfUserService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfUserService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33740289, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 185856, directChildFlags: 185856, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 4, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 4, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngConte ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users.component.spec.ts:68:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) UsersRolesComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CfUserService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfUserService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfUserService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33740289, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 185856, directChildFlags: 185856, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 4, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 4, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngConte ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users.component.spec.ts:68:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - RemoveUserComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33736193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 181760, directChildFlags: 181760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-remove-user', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 4, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 4, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngConte ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/remove-user/remove-user.component.spec.ts:61:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) RemoveUserComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33736193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 181760, directChildFlags: 181760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-remove-user', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 4, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 4, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngConte ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/remove-user/remove-user.component.spec.ts:61:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ServiceBaseComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ServicesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngConten ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/service-catalog/service-service-base.component.spec.ts:33:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) ServiceBaseComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ServicesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngConten ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/service-catalog/service-service-base.component.spec.ts:33:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ServiceCatalogPageComponent - ✓ should create - - ServiceInstancesComponent - ✗ should create - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 4964352, directChildFlags: 4964352, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-list', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 4964352, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, outputs: Array ... - at - at includeRelations (src/entity-action-builders/service-instance.action.builders.ts:13:35) - at new actionBuilder (src/shared/components/list/list-types/service-instances/service-instances-data-source.ts:27:22) - at new ServiceInstancesListConfigService (src/shared/components/list/list-types/service-instances/service-instances-list-config.service.ts:44:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22244:45) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22148:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/service-catalog/service-instances/service-instances.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) ServiceInstancesComponent should create FAILED - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 4964352, directChildFlags: 4964352, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-list', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 4964352, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, outputs: Array ... - at - at includeRelations (src/entity-action-builders/service-instance.action.builders.ts:13:35) - at new actionBuilder (src/shared/components/list/list-types/service-instances/service-instances-data-source.ts:27:22) - at new ServiceInstancesListConfigService (src/shared/components/list/list-types/service-instances/service-instances-list-config.service.ts:44:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22244:45) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22148:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/service-catalog/service-instances/service-instances.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ServicePlansComponent - ✓ should create - - ServiceSummaryComponent - ✗ should create - StaticInjectorError(Platform: core)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServiceBrokerCardComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 638697473, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 638697473, directChildFlags: 34717697, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 10, bindings: [ Object({ flags: 2, ns: '', name: 'tile-group-gutters', nonMinifiedName: 'tile-group-gutters', securityContext: undefined, suffix: undefined }), Object({ flags: 2, ns: '', name: 'tile-group-6-cols', nonMinifiedName: 'tile-group-6-cols', securityContext: undefined, suffix: undefined }), Object({ flags: 2, ns: '', name: 'tile-group-4-cols', nonMinifiedName: 'tile-group-4-cols', securityContext: undefined, suffix: u ... - Error: StaticInjectorError(DynamicTestModule)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - -Chrome 76.0.3809 (Linux 0.0.0) ServiceSummaryComponent should create FAILED - StaticInjectorError(Platform: core)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServiceBrokerCardComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 638697473, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 638697473, directChildFlags: 34717697, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 10, bindings: [ Object({ flags: 2, ns: '', name: 'tile-group-gutters', nonMinifiedName: 'tile-group-gutters', securityContext: undefined, suffix: undefined }), Object({ flags: 2, ns: '', name: 'tile-group-6-cols', nonMinifiedName: 'tile-group-6-cols', securityContext: undefined, suffix: undefined }), Object({ flags: 2, ns: '', name: 'tile-group-4-cols', nonMinifiedName: 'tile-group-4-cols', securityContext: undefined, suffix: u ... - Error: StaticInjectorError(DynamicTestModule)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - ServiceTabsBaseComponent - ✓ should create - - DetachAppsComponent - ✗ should create - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735169, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180736, directChildFlags: 180736, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-detach-apps', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, outputs: ... - at - at includeRelations (src/entity-action-builders/service-binding.action-builders.ts:22:35) - at new actionBuilder (src/shared/components/list/list-types/detach-apps/detach-apps-data-source.ts:27:43) - at new DetachAppsListConfigService (src/shared/components/list/list-types/detach-apps/detach-apps-list-config.service.ts:60:27) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/services/detach-service-instance/detach-apps/detach-apps.component.spec.ts:27:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) DetachAppsComponent should create FAILED - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735169, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180736, directChildFlags: 180736, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-detach-apps', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, outputs: ... - at - at includeRelations (src/entity-action-builders/service-binding.action-builders.ts:22:35) - at new actionBuilder (src/shared/components/list/list-types/detach-apps/detach-apps-data-source.ts:27:43) - at new DetachAppsListConfigService (src/shared/components/list/list-types/detach-apps/detach-apps-list-config.service.ts:60:27) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/services/detach-service-instance/detach-apps/detach-apps.component.spec.ts:27:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - DetachServiceInstanceComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[DetachServiceInstanceComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[DetachServiceInstanceComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'DetachServiceInstanceComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-detach-service-instance', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/services/detach-service-instance/detach-service-instance.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) DetachServiceInstanceComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[DetachServiceInstanceComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[DetachServiceInstanceComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'DetachServiceInstanceComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-detach-service-instance', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/services/detach-service-instance/detach-service-instance.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ServicesWallComponent - ✗ should create - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33739265, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 184832, directChildFlags: 184832, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-services-wall', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, outputs ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/services/services-wall/services-wall.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) ServicesWallComponent should create FAILED - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33739265, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 184832, directChildFlags: 184832, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-services-wall', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, outputs ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/services/services-wall/services-wall.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ServicesWallService - ✗ should be created - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service.entity-builders.ts:9:35) - at ServicesWallService.actionBuilder [as initServicesObservable] (src/features/services/services/services-wall.service.ts:29:37) - at new initServicesObservable (src/features/services/services/services-wall.service.ts:48:31) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - -Chrome 76.0.3809 (Linux 0.0.0) ServicesWallService should be created FAILED - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service.entity-builders.ts:9:35) - at ServicesWallService.actionBuilder [as initServicesObservable] (src/features/services/services/services-wall.service.ts:29:37) - at new initServicesObservable (src/features/services/services/services-wall.service.ts:48:31) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - - AddServiceInstanceBaseStepComponent - ✓ should create - - AddServiceInstanceComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[AddServiceInstanceComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AddServiceInstanceComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AddServiceInstanceComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34788865, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1234432, directChildFlags: 1234432, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 7, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-add-service-instance', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 7, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 7, flags: 1228800, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/add-service-instance/add-service-instance.component.spec.ts:132:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) AddServiceInstanceComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[AddServiceInstanceComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AddServiceInstanceComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AddServiceInstanceComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34788865, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1234432, directChildFlags: 1234432, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 7, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-add-service-instance', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 7, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 7, flags: 1228800, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/add-service-instance/add-service-instance.component.spec.ts:132:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - BindAppsStepComponent - ✓ should create - - CsiGuidsService - ✓ should be created - - CsiModeService - ✓ should be created - - NoServicePlansComponent - ✓ should create - - SelectPlanStepComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicePlanPublicComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33739265, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 184832, directChildFlags: 184832, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-select-plan-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/select-plan-step/select-plan-step.component.spec.ts:54:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) SelectPlanStepComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicePlanPublicComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33739265, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 184832, directChildFlags: 184832, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-select-plan-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/select-plan-step/select-plan-step.component.spec.ts:54:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - SpecifyDetailsStepComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CreateServiceInstanceHelperServiceFactory -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CreateServiceInstanceHelperServiceFactory -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CreateServiceInstanceHelperServiceFactory', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34783233, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1228800, directChildFlags: 1228800, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-specify-details-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1228800, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQ ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/specify-details-step/specify-details-step.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) SpecifyDetailsStepComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CreateServiceInstanceHelperServiceFactory -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CreateServiceInstanceHelperServiceFactory -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CreateServiceInstanceHelperServiceFactory', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34783233, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1228800, directChildFlags: 1228800, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-specify-details-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1228800, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQ ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/specify-details-step/specify-details-step.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - SpecifyUserProvidedDetailsComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryUserProvidedServicesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryUserProvidedServicesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryUserProvidedServicesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-specify-user-provided-details', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matc ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21257:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/specify-user-provided-details/specify-user-provided-details.component.spec.ts:35:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) SpecifyUserProvidedDetailsComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryUserProvidedServicesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryUserProvidedServicesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryUserProvidedServicesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-specify-user-provided-details', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matc ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21257:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/specify-user-provided-details/specify-user-provided-details.component.spec.ts:35:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CardAppInstancesComponent - ✓ should create - - CardAppStatusComponent - ✓ should create - - CardAppUptimeComponent - ✓ should create - - CardAppUsageComponent - ✓ should create - - CardCfInfoComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-info', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: O ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-info/card-cf-info.component.spec.ts:35:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CardCfInfoComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-info', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: O ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-info/card-cf-info.component.spec.ts:35:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CardCfOrgUserDetailsComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-org-user-details', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-org-user-details/card-cf-org-user-details.component.spec.ts:54:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CardCfOrgUserDetailsComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-org-user-details', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-org-user-details/card-cf-org-user-details.component.spec.ts:54:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CardCfRecentAppsComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-recent-apps', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-recent-apps/card-cf-recent-apps.component.spec.ts:58:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CardCfRecentAppsComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-recent-apps', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-recent-apps/card-cf-recent-apps.component.spec.ts:58:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CompactAppCardComponent - ✓ should create - - CardCfSpaceDetailsComponent - ✓ should create - - CardCfUserInfoComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-user-info', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-user-info/card-cf-user-info.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CardCfUserInfoComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-user-info', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-user-info/card-cf-user-info.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CompactServiceInstanceCardComponent - ✓ should create - - ServiceBrokerCardComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServiceBrokerCardComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-broker-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/service-broker-card/service-broker-card.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) ServiceBrokerCardComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServiceBrokerCardComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-broker-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/service-broker-card/service-broker-card.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ServiceRecentInstancesCardComponent - ✓ should create - - ServiceSummaryCardComponent - ✓ should create -06 09 2019 11:07:47.424:WARN [web-server]: 404: /test - - CfEndpointDetailsComponent - ✓ should create - - CfEndpointsMissingComponent - ✓ should create - - CfOrgSpaceLinksComponent - ✓ should create - ✓ should render only org and space - with multiple endpoints - ✓ should render cf if multiple - - CfRoleCheckboxComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-role-checkbox', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ng ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cf-role-checkbox/cf-role-checkbox.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfRoleCheckboxComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-role-checkbox', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ng ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cf-role-checkbox/cf-role-checkbox.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CliCommandComponent - ✓ should create - - CliInfoComponent - ✓ should create - - CreateApplicationStep1Component - ✗ should be created - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34717697, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1163264, directChildFlags: 1163264, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-application-step1', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1163264, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, binding ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/create-application/create-application-step1/create-application-step1.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CreateApplicationStep1Component should be created FAILED - TypeError: Cannot read property 'paginationKey' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34717697, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1163264, directChildFlags: 1163264, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-application-step1', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1163264, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, binding ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/create-application/create-application-step1/create-application-step1.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CfAppEventsConfigService - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfAppEventsConfigService should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - EventTabActorIconPipe - ✓ create an instance - - TableCellEventActionComponent - ✓ should be created - - TableCellEventDetailComponent - ✓ should be created - - TableCellEventTimestampComponent - ✓ should be created - - TableCellEventTypeComponent - ✓ should be created - - CfAppInstancesConfigService - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfAppInstancesConfigService should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - TableCellCfCellComponent - ✓ should create - - TableCellUsageComponent - ✓ should create - - CfAppMapRoutesListConfigService - ✓ should be created - - CfAppRoutesListConfigService - ✓ should be created - - AppServiceBindingCardComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[AppServiceBindingCardComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AppServiceBindingCardComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AppServiceBindingCardComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-app-service-binding-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/app-sevice-bindings/app-service-binding-card/app-service-binding-card.component.spec.ts:80:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) AppServiceBindingCardComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[AppServiceBindingCardComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AppServiceBindingCardComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AppServiceBindingCardComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-app-service-binding-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/app-sevice-bindings/app-service-binding-card/app-service-binding-card.component.spec.ts:80:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - AppServiceBindingListConfigService - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -Chrome 76.0.3809 (Linux 0.0.0) AppServiceBindingListConfigService should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - CfAppVariablesListConfigService - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfAppVariablesListConfigService should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - TableCellEditVariableComponent - ✓ should be created - - CardAppComponent - ✓ should be created - - CfAppConfigService - ✗ should be created - TypeError: Cannot read property 'paginationKey' of undefined - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - -Chrome 76.0.3809 (Linux 0.0.0) CfAppConfigService should be created FAILED - TypeError: Cannot read property 'paginationKey' of undefined - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - - TableCellAppStatusComponent - ✓ should create - ✓ should create - - TableCellAppInstancesComponent - ✓ should create - - TableCellAppNameComponent - ✓ should be created - - TableCellAppStatusComponent - ✓ should create - - CfBuildpackCardComponent - ✓ should create - - CfBuildpacksListConfigService - ✓ should be created - - TableCellConfirmOrgSpaceComponent - ✓ should create - - TableCellConfirmRoleAddRemComponent - ✓ should create - - CfFeatureFlagsListConfigService - ✓ should be created - - TableCellFeatureFlagStateComponent - ✓ should create - - CfOrgUsersListConfigService - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfOrgUsersListConfigService should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - - CfOrgCardComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-org-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-orgs/cf-org-card/cf-org-card.component.spec.ts:399:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfOrgCardComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-org-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-orgs/cf-org-card/cf-org-card.component.spec.ts:399:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CfOrgsListConfigService - ✓ should be created - - TableCellRouteAppsAttachedComponent - ✓ should create - - TableCellRouteComponent - ✓ should create - - TableCellTCPRouteComponent - ✓ should create - - CfSecurityGroupsCardComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-security-groups-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-card/cf-security-groups-card.component.spec.ts:52:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfSecurityGroupsCardComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-security-groups-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-card/cf-security-groups-card.component.spec.ts:52:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CfSecurityGroupsListConfigService - ✗ should be created - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/security-groups.action-builder.ts:6:35) - at new actionBuilder (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-data-source.ts:28:22) - at new CfSecurityGroupsListConfigService (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-list-config.service.ts:61:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - -Chrome 76.0.3809 (Linux 0.0.0) CfSecurityGroupsListConfigService should be created FAILED - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/security-groups.action-builder.ts:6:35) - at new actionBuilder (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-data-source.ts:28:22) - at new CfSecurityGroupsListConfigService (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-list-config.service.ts:61:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - - CfServiceCardComponent - ✓ should create - - CfServicesListConfigService - ✗ should be created - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service.entity-builders.ts:9:35) - at new actionBuilder (src/shared/components/list/list-types/cf-services/cf-services-data-source.ts:29:33) - at new CfServicesListConfigService (src/shared/components/list/list-types/cf-services/cf-services-list-config.service.ts:68:27) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21257:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - -Chrome 76.0.3809 (Linux 0.0.0) CfServicesListConfigService should be created FAILED - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service.entity-builders.ts:9:35) - at new actionBuilder (src/shared/components/list/list-types/cf-services/cf-services-data-source.ts:29:33) - at new CfServicesListConfigService (src/shared/components/list/list-types/cf-services/cf-services-list-config.service.ts:68:27) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21257:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - - CfSpaceAppsListConfigService - ✓ should be created - - CfSpaceRoutesListConfigService - ✓ should be created - - CfSpaceUsersListConfigService - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfSpaceUsersListConfigService should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - CfSpacesServiceInstancesListConfigService - ✓ should be created - - TableCellServiceInstanceAppsAttachedComponent - ✓ should create - - TableCellServiceInstanceTagsComponent - ✓ should create - - TableCellServiceNameComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[TableCellServiceNameComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[TableCellServiceNameComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'TableCellServiceNameComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-table-cell-service-name', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-spaces-service-instances/table-cell-service-name/table-cell-service-name.component.spec.ts:46:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) TableCellServiceNameComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[TableCellServiceNameComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[TableCellServiceNameComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'TableCellServiceNameComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-table-cell-service-name', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-spaces-service-instances/table-cell-service-name/table-cell-service-name.component.spec.ts:46:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - TableCellServicePlanComponent - ✓ should create - - TableCellSpaceNameComponent - ✓ should create - - CfSpaceCardComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-space-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-spaces/cf-space-card/cf-space-card.component.spec.ts:88:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfSpaceCardComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-space-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-spaces/cf-space-card/cf-space-card.component.spec.ts:88:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CfOrgsSpaceListConfigService - ✓ should be created - - CfStacksCardComponent - ✓ should create - - CfStacksListConfigService - ✓ should be created - - TableCellSpaceRoleComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-role-checkbox', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ng ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users-org-space-roles/table-cell-org-space-role/table-cell-org-space-role.component.spec.ts:60:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) TableCellSpaceRoleComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-role-checkbox', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ng ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users-org-space-roles/table-cell-org-space-role/table-cell-org-space-role.component.spec.ts:60:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - TableCellSelectOrgComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-table-cell-select-org', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users-org-space-roles/table-cell-select-org/table-cell-select-org.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) TableCellSelectOrgComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-table-cell-select-org', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users-org-space-roles/table-cell-select-org/table-cell-select-org.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CfUserPermissionCellComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-org-user-permission-cell', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users/cf-org-permission-cell/cf-org-permission-cell.component.spec.ts:39:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfUserPermissionCellComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-org-user-permission-cell', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users/cf-org-permission-cell/cf-org-permission-cell.component.spec.ts:39:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CfSpacePermissionCellComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-space-permission-cell', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users/cf-space-permission-cell/cf-space-permission-cell.component.spec.ts:29:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfSpacePermissionCellComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-space-permission-cell', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users/cf-space-permission-cell/cf-space-permission-cell.component.spec.ts:29:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - CfUserListConfigService - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfUserListConfigService should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - DetachAppsListConfigService - ✗ should be created - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service-binding.action-builders.ts:22:35) - at new actionBuilder (src/shared/components/list/list-types/detach-apps/detach-apps-data-source.ts:27:43) - at new DetachAppsListConfigService (src/shared/components/list/list-types/detach-apps/detach-apps-list-config.service.ts:60:27) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21257:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - -Chrome 76.0.3809 (Linux 0.0.0) DetachAppsListConfigService should be created FAILED - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service-binding.action-builders.ts:22:35) - at new actionBuilder (src/shared/components/list/list-types/detach-apps/detach-apps-data-source.ts:27:43) - at new DetachAppsListConfigService (src/shared/components/list/list-types/detach-apps/detach-apps-list-config.service.ts:60:27) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21257:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - - ServiceInstancesListConfigService - ✗ should be created - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service-instance.action.builders.ts:13:35) - at new actionBuilder (src/shared/components/list/list-types/service-instances/service-instances-data-source.ts:27:22) - at new ServiceInstancesListConfigService (src/shared/components/list/list-types/service-instances/service-instances-list-config.service.ts:44:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - -Chrome 76.0.3809 (Linux 0.0.0) ServiceInstancesListConfigService should be created FAILED - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service-instance.action.builders.ts:13:35) - at new actionBuilder (src/shared/components/list/list-types/service-instances/service-instances-data-source.ts:27:22) - at new ServiceInstancesListConfigService (src/shared/components/list/list-types/service-instances/service-instances-list-config.service.ts:44:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - - ServicePlansListConfigService - ✓ should be created - - TableCellAServicePlanExtrasComponent - ✓ should create - - TableCellAServicePlanPriceComponent - ✓ should create - - TableCellAServicePlanPublicComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicePlanPublicComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-plan-public', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/service-plans/table-cell-service-plan-public/table-cell-service-plan-public.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) TableCellAServicePlanPublicComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicePlanPublicComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-plan-public', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/service-plans/table-cell-service-plan-public/table-cell-service-plan-public.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ServiceInstanceCardComponent - ✓ should create - - ServiceInstancesWallListConfigService - ✗ should be created - TypeError: Cannot read property 'paginationKey' of undefined - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - -Chrome 76.0.3809 (Linux 0.0.0) ServiceInstancesWallListConfigService should be created FAILED - TypeError: Cannot read property 'paginationKey' of undefined - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - - UserProvidedServiceInstanceCardComponent - ✓ should create - - RunningInstancesComponent - ✓ should create - - SchemaFormComponent - ✓ should create - - SelectServiceComponent - ✗ should create - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34783745, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1229312, directChildFlags: 1229312, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-select-service', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 1228800, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at includeRelations (src/entity-action-builders/service.entity-builders.ts:9:35) - at ServicesWallService.actionBuilder [as initServicesObservable] (src/features/services/services/services-wall.service.ts:29:37) - at new initServicesObservable (src/features/services/services/services-wall.service.ts:48:31) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/select-service/select-service.component.spec.ts:86:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) SelectServiceComponent should create FAILED - TypeError: Cannot read property 'includeRelations' of undefined - error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34783745, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1229312, directChildFlags: 1229312, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-select-service', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 1228800, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at includeRelations (src/entity-action-builders/service.entity-builders.ts:9:35) - at ServicesWallService.actionBuilder [as initServicesObservable] (src/features/services/services/services-wall.service.ts:29:37) - at new initServicesObservable (src/features/services/services/services-wall.service.ts:48:31) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/select-service/select-service.component.spec.ts:86:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - ServiceIconComponent - ✓ should create - - ServicePlanPriceComponent - ✓ should create - - ServicePlanPublicComponent - ✗ should create - Error: StaticInjectorError(DynamicTestModule)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicePlanPublicComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-plan-public', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/service-plan-public/service-plan-public.component.spec.ts:32:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -Chrome 76.0.3809 (Linux 0.0.0) ServicePlanPublicComponent should create FAILED - Error: StaticInjectorError(DynamicTestModule)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicePlanPublicComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-plan-public', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/service-plan-public/service-plan-public.component.spec.ts:32:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - - EndpointOrgSpaceServiceService - ✗ should be created - TypeError: Cannot read property 'paginationKey' of undefined - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.execute (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:1) - at UserContext. (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1991:29) - -Chrome 76.0.3809 (Linux 0.0.0) EndpointOrgSpaceServiceService should be created FAILED - TypeError: Cannot read property 'paginationKey' of undefined - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.execute (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:1) - at UserContext. (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1991:29) - - CfUserService - ✗ should be created - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - -Chrome 76.0.3809 (Linux 0.0.0) CfUserService should be created FAILED - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! - error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - ServiceActionHelperService - ✓ should be created -TOTAL: 103 FAILED, 120 SUCCESS - -Chrome 76.0.3809 (Linux 0.0.0): Executed 223 of 229 (103 FAILED) (skipped 6) (8 mins 13.018 secs / 8 mins 11.699 secs) -TOTAL: 103 FAILED, 120 SUCCESS - - -1) Have missing relation in store, associate it with parent - Entity Relations - validate - validate from store - - Error: Expected $.apiAction not to have properties - childEntityKey: 'cfQuota_definition' - at - at src/entity-relations/entity-relations-validate.spec.ts:470:52 - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.execute (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1822:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1991:29 - -2) should create - ApplicationDeleteComponent - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-delete', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-delete/application-delete.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -3) should create - DeleteAppInstancesComponent - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735169, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180736, directChildFlags: 180736, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-delete-app-instances', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-delete/delete-app-instances/delete-app-instances.component.spec.ts:44:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -4) should create - DeleteAppRoutesComponent - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735169, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180736, directChildFlags: 180736, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-delete-app-routes', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-delete/delete-app-routes/delete-app-routes.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -5) should be created - ApplicationWallComponent - TypeError: Cannot read property 'paginationKey' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33739265, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 184832, directChildFlags: 184832, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-wall', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, o ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application-wall/application-wall.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -6) should be created - ApplicationService - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -7) should create - ApplicationPollComponent - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-poll', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, n ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-application-poll/application-poll.component.spec.ts:44:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -8) should be created - ApplicationTabsBaseComponent - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800705, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 246272, directChildFlags: 246272, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-application-tabs-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: O ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-application-tabs-base.component.spec.ts:71:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -9) should be created - EventsTabComponent - TypeError: actionBuilder is not a function -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 1, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: 33554433, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: ... - at - at new actionBuilder (src/shared/components/list/list-types/app-event/cf-app-events-data-source.ts:28:22) - at new CfAppEventsConfigService (src/shared/components/list/list-types/app-event/cf-app-events-config.service.ts:63:29) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22244:45) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22148:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/events-tab/events-tab.component.spec.ts:75:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -10) should create - InstancesTabComponent - Uncaught TypeError: Cannot read property 'actionOrchestrator' of undefined thrown - Error: StaticInjectorError(DynamicTestModule)[ListConfig -> CloudFoundryEndpointService]: - StaticInjectorError(Platform: core)[ListConfig -> CloudFoundryEndpointService]: - NullInjectorError: No provider for CloudFoundryEndpointService! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ListConfig', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643547137, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 638828545, directChildFlags: 33603585, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 16, bindings: [ Object({ flags: 2, ns: '', name: 'app-tile-grid-fit', nonMinifiedName: 'app-tile-grid-fit', securityContext: undefined, suffix: undefined }) ], bindingFlags: 2, outputs: [ ], element: Object({ ns: '', name: 'app-tile-grid', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 1, outputIndex: 0, checkIndex: 1, flags: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/instances-tab/instances-tab.component.spec.ts:50:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at AsyncTestZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.AsyncTestZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:714:1) - -11) should be created - LogStreamTabComponent - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-log-stream-tab', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/log-stream-tab/log-stream-tab.component.spec.ts:70:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -12) should create - RoutesTabComponent - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33805825, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 251392, directChildFlags: 251392, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-routes-tab', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngCo ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/routes-tab/routes-tab/routes-tab.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -13) should be created - ServicesTabComponent - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntries: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 5, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, componentRendererType: null, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/application/application-tabs-tabs/services-tab/services-tab.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -14) should create - CliInfoApplicationComponent - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cli-info-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/cli-info-application/cli-info-application.component.spec.ts:60:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -15) should be created - CreateApplicationStep3Component - Error: StaticInjectorError(DynamicTestModule)[CreateApplicationStep3Component -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CreateApplicationStep3Component -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CreateApplicationStep3Component', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33673729, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 119296, directChildFlags: 119296, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-application-step3', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/create-application/create-application-step3/create-application-step3.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -16) should be created - CreateApplicationComponent - TypeError: Cannot read property 'paginationKey' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800705, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 246272, directChildFlags: 246272, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/create-application/create-application.component.spec.ts:65:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -17) should create - DeployApplicationStepSourceUploadComponent - TypeError: Cannot read property 'paginationKey' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-deploy-application-step-source-upload', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/deploy-application/deploy-application-step-source-upload/deploy-application-step-source-upload.component.spec.ts:43:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -18) should create - DeployApplicationStep3Component - TypeError: Cannot read property 'paginationKey' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-deploy-application-step3', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/deploy-application/deploy-application-step3/deploy-application-step3.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -19) should create - DeployApplicationComponent - TypeError: Cannot read property 'paginationKey' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33804801, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 250368, directChildFlags: 250368, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-deploy-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/deploy-application/deploy-application.component.spec.ts:85:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -20) should create - EditApplicationComponent - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33804801, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 250368, directChildFlags: 250368, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-application', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/edit-application/edit-application.component.spec.ts:69:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -21) should create - AddRouteStepperComponent - Error: StaticInjectorError(DynamicTestModule)[AddRoutesComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AddRoutesComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AddRoutesComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 4374531, directChildFlags: 4374529, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-page-header', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 4374528, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/routes/add-route-stepper/add-route-stepper.component.spec.ts:51:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -22) should create - AddRoutesComponent - Error: StaticInjectorError(DynamicTestModule)[AddRoutesComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AddRoutesComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AddRoutesComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-add-routes', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngCo ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/applications/routes/add-routes/add-routes.component.spec.ts:41:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -23) should create - AddOrganizationComponent - TypeError: Cannot read property 'includeRelations' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 11, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: ... - at - at includeRelations (src/entity-action-builders/quota-definition.action-builders.ts:4:35) - at CreateOrganizationStepComponent.actionBuilder [as ngOnInit] (src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:79:40) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/AddOrganizationComponent.ngfactory.js:37:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - at checkAndUpdateView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23297:1) - -24) should create - CreateOrganizationStepComponent - TypeError: Cannot read property 'includeRelations' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-organization-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: ... - at - at includeRelations (src/entity-action-builders/quota-definition.action-builders.ts:4:35) - at CreateOrganizationStepComponent.actionBuilder [as ngOnInit] (src/features/cloud-foundry/add-organization/create-organization-step/create-organization-step.component.ts:79:40) - at checkAndUpdateDirectiveInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22089:1) - at checkAndUpdateNodeInline (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23353:1) - at checkAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23315:1) - at debugCheckAndUpdateNode (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23949:1) - at debugCheckDirectivesFn (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23909:1) - at Object.eval [as updateDirectives] (ng:///DynamicTestModule/CreateOrganizationStepComponent_Host.ngfactory.js:10:5) - at Object.debugUpdateDirectives [as updateDirectives] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23901:1) - at checkAndUpdateView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23297:1) - -25) should create - AddSpaceComponent - TypeError: Cannot read property 'includeRelations' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023363, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 11, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643023363, directChildFlags: ... - at - at includeRelations (src/entity-action-builders/space.action-builders.ts:22:35) - at CreateSpaceStepComponent.getAllSpaceActionBuilder (src/features/cloud-foundry/add-edit-space-step-base.ts:27:22) - at new call (src/features/cloud-foundry/add-space/create-space-step/create-space-step.component.ts:39:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - at execComponentViewsAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23480:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23273:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/add-space/add-space.component.spec.ts:28:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -26) should create - CreateSpaceStepComponent - TypeError: Cannot read property 'includeRelations' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-space-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at includeRelations (src/entity-action-builders/space.action-builders.ts:22:35) - at CreateSpaceStepComponent.getAllSpaceActionBuilder (src/features/cloud-foundry/add-edit-space-step-base.ts:27:22) - at new call (src/features/cloud-foundry/add-space/create-space-step/create-space-step.component.ts:39:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/add-space/create-space-step/create-space-step.component.spec.ts:27:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -27) should create - CliInfoCloudFoundryComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundrySpaceService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33670657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 116224, directChildFlags: 116224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 5, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cli-info-cloud-foundry', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 5, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 5, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/cli-info-cloud-foundry/cli-info-cloud-foundry.component.spec.ts:39:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -28) should create - CloudFoundryTabsBaseComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-tabs-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/cloud-foundry-tabs-cloud-foundry-tabs-base.component.spec.ts:40:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -29) should create - EditOrganizationStepComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33801729, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 247296, directChildFlags: 247296, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-organization-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-organization/edit-organization-step/edit-organization-step.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -30) should create - EditOrganizationComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643024387, rootNodeFlags: 1, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 643024387, directChildFlags: 33554433, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 13, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-organization/edit-organization.component.spec.ts:33:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -31) should create - EditSpaceStepComponent - TypeError: Cannot read property 'includeRelations' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-space-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ou ... - at - at includeRelations (src/entity-action-builders/space.action-builders.ts:22:35) - at EditSpaceStepComponent.getAllSpaceActionBuilder (src/features/cloud-foundry/add-edit-space-step-base.ts:27:22) - at new call (src/features/cloud-foundry/edit-space/edit-space-step/edit-space-step.component.ts:43:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space/edit-space-step/edit-space-step.component.spec.ts:34:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -32) should create - EditSpaceComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundrySpaceService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33670657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 116224, directChildFlags: 116224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-edit-space', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/edit-space/edit-space.component.spec.ts:33:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -33) should create - QuotaDefinitionComponent - Error: StaticInjectorError(DynamicTestModule)[QuotaDefinitionComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[QuotaDefinitionComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'QuotaDefinitionComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-quota-definition', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/quota-definition/quota-definition.component.spec.ts:46:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -34) should create - SpaceQuotaDefinitionComponent - Error: StaticInjectorError(DynamicTestModule)[SpaceQuotaDefinitionComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[SpaceQuotaDefinitionComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'SpaceQuotaDefinitionComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-space-quota-definition', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/space-quota-definition/space-quota-definition.component.spec.ts:98:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -35) should create - CfAdminAddUserWarningComponent - Error: StaticInjectorError(DynamicTestModule)[CfUserService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfUserService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfUserService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-admin-add-user-warning', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cf-admin-add-user-warning/cf-admin-add-user-warning.component.spec.ts:28:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -36) should create - CloudFoundryCellsComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33609217, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 54784, directChildFlags: 54784, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-cells', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-cells/cloud-foundry-cells.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -37) should create - CloudFoundryFirehoseComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-firehose', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ref ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-firehose/cloud-foundry-firehose.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -38) should create - CloudFoundryInviteUserLinkComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-invite-user-link', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0 ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-invite-user-link/cloud-foundry-invite-user-link.component.spec.ts:31:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -39) should create - CloudFoundryOrganizationBaseComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33605121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50688, directChildFlags: 50688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 5, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 5, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 5, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-cloud-foundry-organization-base.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -40) should create - CloudFoundryOrganizationSpacesComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-spaces', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0 ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/cloud-foundry-organization-spaces.component.spec.ts:38:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -41) should create - CloudFoundrySpaceBaseComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundrySpaceService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundrySpaceService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33736193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 181760, directChildFlags: 181760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 5, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-space-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 5, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 5, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/cloud-foundry-space-cloud-foundry-space-base.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -42) should create - CloudFoundrySpaceSummaryComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-space-summary', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/tabs/cloud-foundry-space-summary/cloud-foundry-space-summary.component.spec.ts:53:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -43) should create - CloudFoundrySpaceUsersComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesForCurrentFilter: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, co ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-spaces/tabs/cloud-foundry-space-users/cloud-foundry-space-users.component.spec.ts:46:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -44) should create - CloudFoundryOrganizationSummaryComponent - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organization-summary', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0 ... -Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-summary/cloud-foundry-organization-summary.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -45) should create - CloudFoundryOrganizationUsersComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesForCurrentFilter: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, co ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organization-users/cloud-foundry-organization-users.component.spec.ts:41:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -46) should create - CloudFoundryOrganizationsComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33608193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 53760, directChildFlags: 53760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-organizations', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, r ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-organizations/cloud-foundry-organizations.component.spec.ts:31:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -47) should create - CloudFoundryRoutesComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesMaxedResults: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, compon ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-routes/cloud-foundry-routes.component.spec.ts:35:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -48) should create - CloudFoundrySecurityGroupsComponent - TypeError: Cannot read property 'includeRelations' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 1, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: 33554433, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'div', attrs: [ Array ], template: null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null({ }), allProviders: null({ }), handleEvent: Function }), provider: null, text: null, query: null, ngContent: null }), Object({ nodeIndex: 1, parent: Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 1, childFlags: 38518785, directChildFlags: ... - at - at includeRelations (src/entity-action-builders/security-groups.action-builder.ts:6:35) - at new actionBuilder (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-data-source.ts:28:22) - at new CfSecurityGroupsListConfigService (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-list-config.service.ts:61:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22244:45) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22148:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-security-groups/cloud-foundry-security-groups.component.spec.ts:27:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -49) should create - CloudFoundrySummaryTabComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cloud-foundry-summary-tab', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ref ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-summary-tab/cloud-foundry-summary-tab.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -50) should create - CloudFoundryUsersComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, flags: 1, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ noEntriesForCurrentFilter: 2 }), ngContentIndex: null, childCount: 0, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: null, name: null, attrs: null, template: Object({ factory: Function, nodeFlags: 33669185, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: Array, updateDirectives: Function, updateRenderer: Function, handleEvent: Function, bindingCount: 4, outputCount: 0, lastRenderRootNode: Object }), componentProvider: null, componentView: null, co ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/tabs/cloud-foundry-users/cloud-foundry-users.component.spec.ts:38:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -51) should create - InviteUsersCreateComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-invite-users-create', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/invite-users/invite-users-create/invite-users-create.component.spec.ts:38:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -52) should create - InviteUsersComponent - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 643023379, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 4374530, directChildFlags: 4374530, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-page-header', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 4374528, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngC ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/invite-users/invite-users.component.spec.ts:36:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -53) should be created - CfRolesService - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - -54) should create - UsersRolesConfirmComponent - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34717697, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1163264, directChildFlags: 1163264, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users-confirm', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1163264, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users-confirm/manage-users-confirm.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -55) should create - UsersRolesModifyComponent - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33808897, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 254464, directChildFlags: 254464, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users-modify', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users-modify/manage-users-modify.component.spec.ts:49:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -56) should create - UsersRolesSelectComponent - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users-select', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ng ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users-select/manage-users-select.component.spec.ts:43:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -57) should create - UsersRolesComponent - Error: StaticInjectorError(DynamicTestModule)[CfUserService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfUserService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfUserService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33740289, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 185856, directChildFlags: 185856, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-manage-users', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 4, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 4, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngConte ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/manage-users/manage-users.component.spec.ts:68:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -58) should create - RemoveUserComponent - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33736193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 181760, directChildFlags: 181760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 4, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-remove-user', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 4, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 4, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngConte ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/cloud-foundry/users/remove-user/remove-user.component.spec.ts:61:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -59) should create - ServiceBaseComponent - Error: StaticInjectorError(DynamicTestModule)[ServicesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33604609, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 50176, directChildFlags: 50176, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-base', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngConten ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/service-catalog/service-service-base.component.spec.ts:33:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -60) should create - ServiceInstancesComponent - TypeError: Cannot read property 'includeRelations' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 38518785, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 4964352, directChildFlags: 4964352, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-list', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 4964352, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, outputs: Array ... - at - at includeRelations (src/entity-action-builders/service-instance.action.builders.ts:13:35) - at new actionBuilder (src/shared/components/list/list-types/service-instances/service-instances-data-source.ts:27:22) - at new ServiceInstancesListConfigService (src/shared/components/list/list-types/service-instances/service-instances-list-config.service.ts:44:28) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22150:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22244:45) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22148:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at callViewAction (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23561:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/service-catalog/service-instances/service-instances.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -61) should create - ServiceSummaryComponent - StaticInjectorError(Platform: core)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServiceBrokerCardComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 638697473, rootNodeFlags: 33554433, nodeMatchedQueries: 2, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 638697473, directChildFlags: 34717697, childMatchedQueries: 2, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 10, bindings: [ Object({ flags: 2, ns: '', name: 'tile-group-gutters', nonMinifiedName: 'tile-group-gutters', securityContext: undefined, suffix: undefined }), Object({ flags: 2, ns: '', name: 'tile-group-6-cols', nonMinifiedName: 'tile-group-6-cols', securityContext: undefined, suffix: undefined }), Object({ flags: 2, ns: '', name: 'tile-group-4-cols', nonMinifiedName: 'tile-group-4-cols', securityContext: undefined, suffix: u ... -Error: StaticInjectorError(DynamicTestModule)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - -62) should create - DetachAppsComponent - TypeError: Cannot read property 'includeRelations' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33735169, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180736, directChildFlags: 180736, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-detach-apps', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, outputs: ... - at - at includeRelations (src/entity-action-builders/service-binding.action-builders.ts:22:35) - at new actionBuilder (src/shared/components/list/list-types/detach-apps/detach-apps-data-source.ts:27:43) - at new DetachAppsListConfigService (src/shared/components/list/list-types/detach-apps/detach-apps-list-config.service.ts:60:27) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/services/detach-service-instance/detach-apps/detach-apps.component.spec.ts:27:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -63) should create - DetachServiceInstanceComponent - Error: StaticInjectorError(DynamicTestModule)[DetachServiceInstanceComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[DetachServiceInstanceComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'DetachServiceInstanceComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-detach-service-instance', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/services/detach-service-instance/detach-service-instance.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -64) should create - ServicesWallComponent - TypeError: Cannot read property 'paginationKey' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33739265, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 184832, directChildFlags: 184832, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 3, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-services-wall', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 3, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 3, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, outputs ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - at ComponentFactory_.push.../../../../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21498:1) - at initComponent (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1916:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/features/services/services-wall/services-wall.component.spec.ts:37:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -65) should be created - ServicesWallService - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service.entity-builders.ts:9:35) - at ServicesWallService.actionBuilder [as initServicesObservable] (src/features/services/services/services-wall.service.ts:29:37) - at new initServicesObservable (src/features/services/services/services-wall.service.ts:48:31) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - -66) should create - AddServiceInstanceComponent - Error: StaticInjectorError(DynamicTestModule)[AddServiceInstanceComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AddServiceInstanceComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AddServiceInstanceComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34788865, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1234432, directChildFlags: 1234432, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 7, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-add-service-instance', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 7, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 7, flags: 1228800, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/add-service-instance/add-service-instance.component.spec.ts:132:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -67) should create - SelectPlanStepComponent - Error: StaticInjectorError(DynamicTestModule)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicePlanPublicComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33739265, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 184832, directChildFlags: 184832, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-select-plan-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/select-plan-step/select-plan-step.component.spec.ts:54:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -68) should create - SpecifyDetailsStepComponent - Error: StaticInjectorError(DynamicTestModule)[CreateServiceInstanceHelperServiceFactory -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CreateServiceInstanceHelperServiceFactory -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CreateServiceInstanceHelperServiceFactory', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34783233, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1228800, directChildFlags: 1228800, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-specify-details-step', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1228800, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQ ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/specify-details-step/specify-details-step.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -69) should create - SpecifyUserProvidedDetailsComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryUserProvidedServicesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryUserProvidedServicesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryUserProvidedServicesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33734657, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 180224, directChildFlags: 180224, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-specify-user-provided-details', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 180224, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matc ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21257:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/add-service-instance/specify-user-provided-details/specify-user-provided-details.component.spec.ts:35:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -70) should create - CardCfInfoComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-info', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: O ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-info/card-cf-info.component.spec.ts:35:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -71) should create - CardCfOrgUserDetailsComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-org-user-details', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-org-user-details/card-cf-org-user-details.component.spec.ts:54:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -72) should create - CardCfRecentAppsComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-recent-apps', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-recent-apps/card-cf-recent-apps.component.spec.ts:58:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -73) should create - CardCfUserInfoComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-card-cf-user-info', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/card-cf-user-info/card-cf-user-info.component.spec.ts:30:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -74) should create - ServiceBrokerCardComponent - Error: StaticInjectorError(DynamicTestModule)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServiceBrokerCardComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServiceBrokerCardComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-broker-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cards/service-broker-card/service-broker-card.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -75) should create - CfRoleCheckboxComponent - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-role-checkbox', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ng ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/cf-role-checkbox/cf-role-checkbox.component.spec.ts:45:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -76) should be created - CreateApplicationStep1Component - TypeError: Cannot read property 'paginationKey' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34717697, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1163264, directChildFlags: 1163264, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-create-application-step1', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 1163264, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, binding ... - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22144:1) - at createDirectiveInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22019:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23245:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/create-application/create-application-step1/create-application-step1.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -77) should be created - CfAppEventsConfigService - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -78) should be created - CfAppInstancesConfigService - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -79) should create - AppServiceBindingCardComponent - Error: StaticInjectorError(DynamicTestModule)[AppServiceBindingCardComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[AppServiceBindingCardComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'AppServiceBindingCardComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-app-service-binding-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/app-sevice-bindings/app-service-binding-card/app-service-binding-card.component.spec.ts:80:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -80) should be created - AppServiceBindingListConfigService - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -81) should be created - CfAppVariablesListConfigService - Error: StaticInjectorError(DynamicTestModule)[ApplicationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ApplicationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ApplicationService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -82) should be created - CfAppConfigService - TypeError: Cannot read property 'paginationKey' of undefined - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - -83) should be created - CfOrgUsersListConfigService - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _callFactory (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21280:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21228:1) - -84) should create - CfOrgCardComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-org-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-orgs/cf-org-card/cf-org-card.component.spec.ts:399:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -85) should create - CfSecurityGroupsCardComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-security-groups-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, re ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-card/cf-security-groups-card.component.spec.ts:52:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -86) should be created - CfSecurityGroupsListConfigService - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/security-groups.action-builder.ts:6:35) - at new actionBuilder (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-data-source.ts:28:22) - at new CfSecurityGroupsListConfigService (src/shared/components/list/list-types/cf-security-groups/cf-security-groups-list-config.service.ts:61:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - -87) should be created - CfServicesListConfigService - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service.entity-builders.ts:9:35) - at new actionBuilder (src/shared/components/list/list-types/cf-services/cf-services-data-source.ts:29:33) - at new CfServicesListConfigService (src/shared/components/list/list-types/cf-services/cf-services-list-config.service.ts:68:27) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21257:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - -88) should be created - CfSpaceUsersListConfigService - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - -89) should create - TableCellServiceNameComponent - Error: StaticInjectorError(DynamicTestModule)[TableCellServiceNameComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[TableCellServiceNameComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'TableCellServiceNameComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33669121, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 114688, directChildFlags: 114688, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-table-cell-service-name', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 114688, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-spaces-service-instances/table-cell-service-name/table-cell-service-name.component.spec.ts:46:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -90) should create - CfSpaceCardComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryOrganizationService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryOrganizationService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-space-card', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-spaces/cf-space-card/cf-space-card.component.spec.ts:88:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -91) should create - TableCellSpaceRoleComponent - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-role-checkbox', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ng ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users-org-space-roles/table-cell-org-space-role/table-cell-org-space-role.component.spec.ts:60:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -92) should create - TableCellSelectOrgComponent - Error: StaticInjectorError(DynamicTestModule)[CfRolesService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CfRolesService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CfRolesService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33800193, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 245760, directChildFlags: 245760, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-table-cell-select-org', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 245760, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users-org-space-roles/table-cell-select-org/table-cell-select-org.component.spec.ts:47:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -93) should create - CfUserPermissionCellComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-org-user-permission-cell', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users/cf-org-permission-cell/cf-org-permission-cell.component.spec.ts:39:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -94) should create - CfSpacePermissionCellComponent - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-cf-space-permission-cell', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, refe ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/cf-users/cf-space-permission-cell/cf-space-permission-cell.component.spec.ts:29:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -95) should be created - CfUserListConfigService - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - -96) should be created - DetachAppsListConfigService - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service-binding.action-builders.ts:22:35) - at new actionBuilder (src/shared/components/list/list-types/detach-apps/detach-apps-data-source.ts:27:43) - at new DetachAppsListConfigService (src/shared/components/list/list-types/detach-apps/detach-apps-list-config.service.ts:60:27) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21257:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - -97) should be created - ServiceInstancesListConfigService - TypeError: Cannot read property 'includeRelations' of undefined - at - at includeRelations (src/entity-action-builders/service-instance.action.builders.ts:13:35) - at new actionBuilder (src/shared/components/list/list-types/service-instances/service-instances-data-source.ts:27:22) - at new ServiceInstancesListConfigService (src/shared/components/list/list-types/service-instances/service-instances-list-config.service.ts:44:28) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21263:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - -98) should create - TableCellAServicePlanPublicComponent - Error: StaticInjectorError(DynamicTestModule)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicePlanPublicComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-plan-public', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/list/list-types/service-plans/table-cell-service-plan-public/table-cell-service-plan-public.component.spec.ts:42:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -99) should be created - ServiceInstancesWallListConfigService - TypeError: Cannot read property 'paginationKey' of undefined - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - -100) should create - SelectServiceComponent - TypeError: Cannot read property 'includeRelations' of undefined -error properties: Object({ ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 34783745, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 1229312, directChildFlags: 1229312, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 2, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-select-service', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 2, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 2, flags: 1228800, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: Object, ngContentIndex: -1, childCount: 0, bindings: Array, bindingFlags: 0, ... - at - at includeRelations (src/entity-action-builders/service.entity-builders.ts:9:35) - at ServicesWallService.actionBuilder [as initServicesObservable] (src/features/services/services/services-wall.service.ts:29:37) - at new initServicesObservable (src/features/services/services/services-wall.service.ts:48:31) - at createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22142:1) - at _createProviderInstance$1 (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22125:1) - at createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22002:1) - at createViewNodes (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23232:1) - at createRootView (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23159:1) - at callWithDebugContext (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:24167:1) - at Object.debugCreateRootView [as createRootView] (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:23677:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/select-service/select-service.component.spec.ts:86:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -101) should create - ServicePlanPublicComponent - Error: StaticInjectorError(DynamicTestModule)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[ServicePlanPublicComponent -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'ServicePlanPublicComponent', Function ], ngDebugContext: DebugContext_({ view: Object({ def: Object({ factory: Function, nodeFlags: 33603585, rootNodeFlags: 33554433, nodeMatchedQueries: 0, flags: 0, nodes: [ Object({ nodeIndex: 0, parent: null, renderParent: null, bindingIndex: 0, outputIndex: 0, checkIndex: 0, flags: 33554433, childFlags: 49152, directChildFlags: 49152, childMatchedQueries: 0, matchedQueries: Object({ }), matchedQueryIds: 0, references: Object({ }), ngContentIndex: null, childCount: 1, bindings: [ ], bindingFlags: 0, outputs: [ ], element: Object({ ns: '', name: 'app-service-plan-public', attrs: [ ], template: null, componentProvider: Object({ nodeIndex: 1, parent: , renderParent: , bindingIndex: 0, outputIndex: 0, checkIndex: 1, flags: 49152, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: Object, matchedQueryIds: 0, references: ... - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at resolveDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:22268:1) - Error: Expected undefined to be truthy. - at - at UserContext. (src/shared/components/service-plan-public/service-plan-public.component.spec.ts:32:23) - at ZoneDelegate.push.../../../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone.js:391:1) - at ProxyZoneSpec.push.../../../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (home/kater/dev/git/stratos/node_modules/zone.js/dist/zone-testing.js:289:1) - -102) should be created - EndpointOrgSpaceServiceService - TypeError: Cannot read property 'paginationKey' of undefined - at - at new paginationKey (src/shared/data-services/cf-org-space-service.service.ts:118:91) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21255:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21189:1) - at NgModuleRef_.push.../../../../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21897:1) - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1815:1) - at home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:47 - at - at TestBedViewEngine.push.../../../../node_modules/@angular/core/fesm5/testing.js.TestBedViewEngine.execute (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1821:1) - at UserContext. (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/testing.js:1991:29) - -103) should be created - CfUserService - Error: StaticInjectorError(DynamicTestModule)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - StaticInjectorError(Platform: core)[CloudFoundryEndpointService -> CFEntityServiceFactory]: - NullInjectorError: No provider for CFEntityServiceFactory! -error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'CloudFoundryEndpointService', Function ] }) - at NullInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.NullInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8895:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9140:1) - at tryResolveToken (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:9084:1) - at StaticInjector.push.../../../../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:8981:1) - at resolveNgModuleDep (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21208:1) - at _createClass (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21261:1) - at _createProviderInstance (home/kater/dev/git/stratos/node_modules/@angular/core/fesm5/core.js:21225:1) - - -TOTAL: 103 FAILED, 120 SUCCESS - -> stratos@2.5.0 test-frontend:cf-autoscaler /home/kater/dev/git/stratos -> ng test cf-autoscaler --code-coverage --watch=false - -06 09 2019 11:10:51.921:INFO [karma-server]: Karma v4.0.0 server started at http://0.0.0.0:9876/ -06 09 2019 11:10:51.923:INFO [launcher]: Launching browsers Chrome with concurrency unlimited -06 09 2019 11:10:51.927:INFO [launcher]: Starting browser Chrome - - - diff --git a/angular.json b/angular.json index 1399f1da47..9d29bc4da8 100644 --- a/angular.json +++ b/angular.json @@ -242,44 +242,6 @@ } } }, - "store-helpers": { - "root": "src/frontend/packages/store-helpers", - "sourceRoot": "src/frontend/packages/store-helpers/src", - "projectType": "library", - "prefix": "lib", - "architect": { - "build": { - "builder": "@angular-devkit/build-ng-packagr:build", - "options": { - "tsConfig": "src/frontend/packages/store-helpers/tsconfig.lib.json", - "project": "src/frontend/packages/store-helpers/ng-package.json" - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "src/frontend/packages/store-helpers/src/test.ts", - "tsConfig": "src/frontend/packages/store-helpers/tsconfig.spec.json", - "karmaConfig": "src/frontend/packages/store-helpers/karma.conf.js" - } - }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": [ - "src/tsconfig.json" - ], - "tslintConfig": "src/frontend/packages/store-helpers/tslint.json", - "files": [ - "src/frontend/packages/store-helpers/src/**/*.ts" - ], - "exclude": [ - "!src/frontend/packages/store-helpers/**" - ] - } - } - } - }, "cloud-foundry": { "root": "src/frontend/packages/cloud-foundry", "sourceRoot": "src/frontend/packages/cloud-foundry/src", diff --git a/browserslist b/browserslist index 80848532e4..533473d52b 100644 --- a/browserslist +++ b/browserslist @@ -9,4 +9,4 @@ last 2 versions Firefox ESR not dead -not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file +IE 9-11 \ No newline at end of file diff --git a/build/bk-build.sh b/build/bk-build.sh index 2dda25542f..9e55c68286 100755 --- a/build/bk-build.sh +++ b/build/bk-build.sh @@ -36,7 +36,7 @@ if [ "${ACTION}" == "build" ]; then echo "Build complete ..." else echo "Running backend tests ..." - GO111MODULE=on go test ./... -v + GO111MODULE=on go test ./... -v -count=1 fi popd > /dev/null diff --git a/build/clean-test-reports.sh b/build/clean-test-reports.sh new file mode 100755 index 0000000000..730306ff65 --- /dev/null +++ b/build/clean-test-reports.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +STRATOS_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd .. && pwd)" + +rm -f "${STRATOS_PATH}/coverage/stratos-unittest-*.txt" +rm -f "${STRATOS_PATH}/coverage/stratos-unittests.json" +rm -f "${STRATOS_PATH}/coverage/stratos-unittests.txt" +rm -f "${STRATOS_PATH}/coverage/stratos-exitcode.txt" + +# Create the coverage folder if needed +mkdir -p "${STRATOS_PATH}/coverage" diff --git a/build/customize-build.js b/build/customize-build.js index 5ddb4c459e..fb98297c18 100644 --- a/build/customize-build.js +++ b/build/customize-build.js @@ -19,6 +19,10 @@ const CUSTOM_METADATA = path.resolve(__dirname, '../custom-src/stratos.yaml'); const GIT_FOLDER = path.resolve(__dirname, '../.git'); const GIT_METADATA = path.resolve(__dirname, '../.stratos-git-metadata.json'); + const INDEX_LOADING_HTML_CUSTOM = path.resolve(__dirname, '../custom-src/frontend/loading.html'); + const INDEX_LOADING_HTML_DEFAULT = path.resolve(__dirname, '../src/frontend/packages/core/misc/custom/loading.html'); + const INDEX_LOADING_CSS_CUSTOM = path.resolve(__dirname, '../custom-src/frontend/loading.css'); + const INDEX_LOADING_CSS_DEFAULT = path.resolve(__dirname, '../src/frontend/packages/core/misc/custom/loading.css'); // Apply any customizations // Symlink customizations of the default resources for Stratos @@ -264,6 +268,22 @@ // Date and Time that the build was made (approximately => it is when this script is run) replace.sync({ files: INDEX_HTML, from: '@@stratos_build_date@@', to: new Date() }); + + // Replace loading indicator - HTML + let loadingHtmlFile = INDEX_LOADING_HTML_DEFAULT; + if (fs.existsSync(INDEX_LOADING_HTML_CUSTOM)) { + loadingHtmlFile = INDEX_LOADING_HTML_CUSTOM + } + const loadingHtml = fs.readFileSync(loadingHtmlFile, 'utf8'); + replace.sync({ files: INDEX_HTML, from: '', to: loadingHtml }); + + // Replace loading indicator - CSS + let loadingCssFile = INDEX_LOADING_CSS_DEFAULT; + if (fs.existsSync(INDEX_LOADING_CSS_CUSTOM)) { + loadingCssFile = INDEX_LOADING_CSS_CUSTOM + } + const loadingCss = fs.readFileSync(loadingCssFile, 'utf8'); + replace.sync({ files: INDEX_HTML, from: '/** @@LOADING_CSS@@ **/', to: loadingCss }); } // We can only do this if we have a git repository checkout diff --git a/build/karma.conf.creator.js b/build/karma.conf.creator.js index 251ba9b6c7..f530d5e903 100644 --- a/build/karma.conf.creator.js +++ b/build/karma.conf.creator.js @@ -2,6 +2,9 @@ module.exports = function (project) { var path = require('path') var repoRoot = path.join(__dirname, '..') return function (config) { + + var testReportFile = process.env.NG_TEST_SUITE || 'report'; + testReportFile = `stratos-unittest-${testReportFile}.txt`; config.set({ basePath: '', frameworks: ['jasmine', '@angular-devkit/build-angular'], @@ -30,6 +33,12 @@ module.exports = function (project) { specReporter: { suppressSkipped: true, // skip result of skipped tests }, + stratosReporter: { + reportFile: path.join(repoRoot, 'coverage', testReportFile), + jsonFile: path.join(repoRoot, 'coverage', 'stratos-unittests.json'), + summaryFile: path.join(repoRoot, 'coverage', 'stratos-unittests.txt'), + exitCodeFile: path.join(repoRoot, 'coverage', 'stratos-exitcode.txt') + }, port: 9876, colors: true, logLevel: config.LOG_INFO, diff --git a/build/karma.test.reporter.js b/build/karma.test.reporter.js index 3b42ffe87b..edf859c2f7 100644 --- a/build/karma.test.reporter.js +++ b/build/karma.test.reporter.js @@ -1,36 +1,159 @@ + (function () { 'use strict'; + var fs = require('fs'); + /** * Custom spec reporter that will fail the tests if any are skipped * * It only does this if the CI_ENV environment variable is set to 'true' * */ - var StratosSpecReporter = function (baseReporterDecorator) { + var StratosSpecReporter = function (baseReporterDecorator, config) { baseReporterDecorator(this); + const reporterConfig = Object.assign({}, config.stratosReporter); + this.file = reporterConfig.reportFile || './stratos-test-report.log'; + this.jsonFile = reporterConfig.jsonFile || './stratos-test-report.json'; + this.summaryFile = reporterConfig.summaryFile || './stratos-test-report.txt'; + this.exitCodeFile = reporterConfig.exitCodeFile || './stratos-test.exitcode'; + this.skipped = 0; + this.total = 0; + this.failed = []; + + this.bold = '\x1b[1m'; + this.red = '\x1b[31m'; + this.cyan = '\x1b[96m'; + this.yellow = '\x1b[33m'; + this.reset = '\x1b[0m'; + this.bluebg = '\x1b[44m'; + this.grey = '\x1b[90m'; + + // Running totals accumated across other test runs + this.runningTotals = {}; + + this.exitCode = 0; + + if (fs.existsSync(this.jsonFile)) { + let rawdata = fs.readFileSync(this.jsonFile); + this.runningTotals = JSON.parse(rawdata); + } else { + this.runningTotals = { + total: 0, + passed: 0, + skipped: 0, + failed: 0, + }; + } + + if (fs.existsSync(this.exitCodeFile)) { + let rawdata = fs.readFileSync(this.exitCodeFile); + this.exitCode = parseInt(rawdata); + } - this.onSpecComplete = function (browser, result) { + this.writeFile = (msg) => { + fs.appendFileSync(this.file, `${msg}\n`); + } + + this.writeSummaryFile = (msg) => { + fs.appendFileSync(this.summaryFile, `${msg}\n`); + } + + this.onSpecComplete = (browser, result) => { + this.total = this.total + 1; this.skipped += result.skipped ? 1 : 0; + if (!result.success) { + this.failed.push(result); + } }; - this.onRunComplete = function (browser, result) { + this.generateSummary = () => { + + if (fs.existsSync(this.summaryFile)) { + fs.unlinkSync(this.summaryFile); + } + + const all = this.runningTotals; + + this.writeSummaryFile(`${this.bold}${this.cyan}================================================================================${this.reset}`); + this.writeSummaryFile(`${this.bold}${this.cyan}Test Summary${this.reset}`); + this.writeSummaryFile(`${this.bold}${this.cyan}================================================================================${this.reset}`); + this.writeSummaryFile(`Total : ${this.bold}${this.cyan}${all.total}${this.reset}`) + this.writeSummaryFile(`Passed : ${this.bold}${this.cyan}${all.passed}${this.reset}`) + this.writeSummaryFile(`Failed : ${this.bold}${this.red}${all.failed}${this.reset}`) + this.writeSummaryFile(`Skipped : ${this.bold}${this.yellow}${all.skipped}${this.reset}`) + } + + this.onRunComplete = (browser, result) => { + + if (fs.existsSync(this.file)) { + fs.unlinkSync(this.file); + } + + let passed = this.total - this.failed.length - this.skipped; if (process.env['CHECK_TESTS'] === 'true' && this.skipped !== 0) { // result.exitCode = 1; console.log('\x1b[41m\x1b[97m\x1b[1m'); console.log(''); - console.log(' WRANING: ' + this.skipped + ' tests were skipped'); + console.log(' WARNING: ' + this.skipped + ' tests were skipped'); console.log(''); console.log(' Check that you have not used fdescribe, fit, xdescribe or xit by mistake'); console.log(''); console.log('\x1b[0m'); } + + try { + + this.writeFile(`${this.bold}${this.cyan}Test results for package ${this.bluebg} ${process.env.NG_TEST_SUITE} ${this.reset}`); + this.writeFile(`Total : ${this.bold}${this.cyan}${this.total}${this.reset}`) + this.writeFile(`Passed : ${this.bold}${this.cyan}${passed}${this.reset}`) + this.writeFile(`Failed : ${this.bold}${this.red}${this.failed.length}${this.reset}`) + this.writeFile(`Skipped : ${this.bold}${this.yellow}${this.skipped}${this.reset}`) + + if (this.failed.length === 0) { + fs.appendFileSync(this.file, 'All tests passed\n') + } else { + this.writeFile('Test failures:'); + this.failed.forEach(f => { + this.writeFile(`${this.red}${this.bold} - ${f.fullName}${this.reset}`); + const logs = f.log || []; + logs.forEach(l => fs.appendFileSync(this.file, `${this.grey} ${l}${this.reset}`)); + // Add empty line + this.writeFile(''); + }); + } + + // Update running totals JSON + this.runningTotals.total += this.total; + this.runningTotals.passed += passed; + this.runningTotals.failed += this.failed.length; + this.runningTotals.skipped += this.skipped; + fs.writeFileSync(this.jsonFile, JSON.stringify(this.runningTotals)); + + this.generateSummary(); + + // Write exit code + let newExitCode = this.exitCode; + if (result.exitCode > 0) { + newExitCode = result.exitCode + } + + fs.writeFileSync(this.exitCodeFile, newExitCode.toString()); + + // Dump the summary for this test suite + var contents = fs.readFileSync(this.file, 'utf8'); + console.log(contents); + + } catch(e) { + console.log('ERROR while reporting test result'); + console.log(e); + } }; }; - StratosSpecReporter.$inject = ['baseReporterDecorator']; + StratosSpecReporter.$inject = ['baseReporterDecorator', 'config']; module.exports = { 'reporter:stratos': ['type', StratosSpecReporter] diff --git a/build/show-test-reports.sh b/build/show-test-reports.sh new file mode 100755 index 0000000000..0ba17d68a4 --- /dev/null +++ b/build/show-test-reports.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +STRATOS_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd .. && pwd)" + +# Colours +CYAN="\033[96m" +YELLOW="\033[93m" +RESET="\033[0m" +BOLD="\033[1m" + +echo "" +echo -e "${YELLOW}${BOLD}===========================================================================================" +echo -e "== ${CYAN}STRATOS FRONT-END UNIT TEST RESULTS ${YELLOW} ==" +echo -e "===========================================================================================${RESET}" +echo "" + +# Cat all of the files +for f in ${STRATOS_PATH}/coverage/stratos-unittest-*.txt +do + cat "${f}" + echo "" +done + +cat "${STRATOS_PATH}/coverage/stratos-unittests.txt" +echo "" + +if [ ! -f "${STRATOS_PATH}/coverage/stratos-exitcode.txt" ]; then + echo "ERORR: Exit code file does not exist" + exit 1 +fi + +exitCode=$(cat ${STRATOS_PATH}/coverage/stratos-exitcode.txt) +echo "Exiting with exit code ${exitCode}" +exit ${exitCode} \ No newline at end of file diff --git a/build/update-tools-versions.sh b/build/update-tools-versions.sh index 0cec02d6f4..897ccaa7b2 100755 --- a/build/update-tools-versions.sh +++ b/build/update-tools-versions.sh @@ -1,21 +1,32 @@ #!/bin/bash +# Colours +CYAN="\033[96m" +YELLOW="\033[93m" +RED="\033[91m" +RESET="\033[0m" +BOLD="\033[1m" + # Program Paths: PROG=$(basename ${BASH_SOURCE[0]}) PROG_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" STRATOS_DIR="$( cd "${PROG_DIR}/.." && pwd )" -echo "Stratos Directory: ${STRATOS_DIR}" +echo -e "${CYAN}${BOLD}=============================${RESET}" +echo -e "${CYAN}${BOLD}Updating Go and Node versions${RESET}" +echo -e "${CYAN}${BOLD}=============================${RESET}" -UPDATE="false" +echo -e "${YELLOW}Stratos Directory: ${STRATOS_DIR}${RESET}" +echo "" # Current versions that we should be using -GO_VERSION=1.12.4 -NODE_VERSION=10.15.3 +GO_VERSION=1.13.4 +NODE_VERSION=12.13.0 -ALL_GOOD="true" +echo -e "${YELLOW}Go Version : ${GO_VERSION}${RESET}" +echo -e "${YELLOW}Node Version: ${NODE_VERSION}${RESET}" -function checkGoVersion() { +function checkVersion() { FILE=$1 DESC=$2 @@ -23,46 +34,39 @@ function checkGoVersion() { REPLACE=$4 if [ ! -f "$FILE" ]; then - echo "Error: File $FILE does not exist" + echo -e "${RED}Error: File $FILE does not exist${RESET}" fi - grep "${EXISTS}" "${FILE}" > /dev/null - if [ $? -ne 0 ]; then - echo "${DESC} has incorrect Go version" - ALL_GOOD="false" - - if [ "$UPDATE" == "true" ]; then - echo " => Updating to correct Go version" - sed -i.bak -e 's/'"$REPLACE"'/'"$EXISTS"'/g' ${FILE} - fi - fi + echo -e "${CYAN} ${FILE}${RESET}" + sed -i.bak -e 's/'"$REPLACE"'/'"$EXISTS"'/g' ${FILE} } -if [ "$1" == "-u" ]; then - UPDATE="true" - echo "Versions will be updated" -fi - # Check versions in the various files that we have +echo "" +echo -e "${YELLOW}Patching files:${RESET}" # Go Version -checkGoVersion "${STRATOS_DIR}/deploy/stratos-base-images/Dockerfile.stratos-go-build-base.tmpl" "Go Builder Base Image" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" -checkGoVersion "${STRATOS_DIR}/.travis.yml" "Travis file" "gimme ${GO_VERSION}" "gimme [0-9\.]*" -checkGoVersion "${STRATOS_DIR}/deploy/ci/travis/depcache.sh" "Depcache generation script" "gimme ${GO_VERSION}" "gimme [0-9\.]*" -checkGoVersion "${STRATOS_DIR}/deploy/ci/travis/run-e2e-tests.sh" "Travis E2E Tests script" "gimme ${GO_VERSION}" "gimme [0-9\.]*" -checkGoVersion "${STRATOS_DIR}/deploy/fissile/Dockerfile.bosh-cli" "BOSH Release Dockerfile" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" -checkGoVersion "${STRATOS_DIR}/deploy/ci/scripts/Dockerfile.bosh" "BOSH Dockerfile" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" -checkGoVersion "${STRATOS_DIR}/deploy/stratos-ui-release/config/blobs.yml" "BOSH Release config file" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" -checkGoVersion "${STRATOS_DIR}/deploy/stratos-ui-release/packages/golang/packaging" "BOSH Release packaging file" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" -checkGoVersion "${STRATOS_DIR}/deploy/stratos-ui-release/packages/golang/spec" "BOSH Release spec file" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" -checkGoVersion "${STRATOS_DIR}/src/frontend/packages/core/test-framework/store-test-helper.ts" "Store test helper" "\'go${GO_VERSION}\'" "\'go[0-9\.]*\'" - -if [ "$ALL_GOOD" == "true" ]; then - echo "All files have correct versions" -else - echo "Some files do not have correct versions" -fi - -echo "NOTE: Please ensure you check the Go version in the Stratos Buildpack" +checkVersion "${STRATOS_DIR}/deploy/stratos-base-images/Dockerfile.stratos-go-build-base.tmpl" "Go Builder Base Image" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" +checkVersion "${STRATOS_DIR}/.travis.yml" "Travis file" "(gimme ${GO_VERSION})" "(gimme [0-9\.]*)" +checkVersion "${STRATOS_DIR}/deploy/ci/travis/depcache.sh" "Depcache generation script" "gimme ${GO_VERSION}" "gimme [0-9\.]*" +checkVersion "${STRATOS_DIR}/deploy/fissile/Dockerfile.bosh-cli" "BOSH Release Dockerfile" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" +checkVersion "${STRATOS_DIR}/deploy/ci/scripts/Dockerfile.bosh" "BOSH Dockerfile" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" +checkVersion "${STRATOS_DIR}/deploy/stratos-ui-release/config/blobs.yml" "BOSH Release config file" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" +checkVersion "${STRATOS_DIR}/deploy/stratos-ui-release/packages/golang/packaging" "BOSH Release packaging file" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" +checkVersion "${STRATOS_DIR}/deploy/stratos-ui-release/packages/golang/spec" "BOSH Release spec file" "go${GO_VERSION}.linux" "go[0-9\.]*.linux" + +# Node Version + +checkVersion "${STRATOS_DIR}/deploy/stratos-base-images/Dockerfile.stratos-ui-build-base.tmpl" "UI Builder Base Image" "v${NODE_VERSION}\/node-v${NODE_VERSION}-linux" "v[0-9\.]*\/node-v[0-9\.]*-linux" +checkVersion "${STRATOS_DIR}/deploy/stratos-base-images/Dockerfile.stratos-ui-build-base.tmpl" "UI Builder Base Image 2" "node-v${NODE_VERSION}" "node-v[0-9\.]*" +checkVersion "${STRATOS_DIR}/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl" "Backend Builder Base Image" "node-v${NODE_VERSION}" "node-v[0-9\.]*" +checkVersion "${STRATOS_DIR}/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl" "Backend Builder Base Image" "v${NODE_VERSION}\/node-v${NODE_VERSION}-linux" "v[0-9\.]*\/node-v[0-9\.]*-linux" +checkVersion "${STRATOS_DIR}/.travis.yml" "Travis file" " - \"${NODE_VERSION}\"" " - \"[0-9\.]*\"" +checkVersion "${STRATOS_DIR}/package.json" "Package file" "\"node\": \"${NODE_VERSION}\"" "\"node\": \"[0-9\.]*\"" +checkVersion "${STRATOS_DIR}/docs/developers-guide.md" "Developer Guide doc" "minimum node version ${NODE_VERSION}" "minimum node version [0-9\.]*" + +echo "" +echo -e "${YELLOW}NOTE: Please ensure you check the Go version in the Stratos Buildpack${RESET}" +echo "" diff --git a/deploy/Dockerfile.all-in-one b/deploy/Dockerfile.all-in-one index ed3391cea7..ce046c3325 100644 --- a/deploy/Dockerfile.all-in-one +++ b/deploy/Dockerfile.all-in-one @@ -1,5 +1,5 @@ # Docker build for all-in-one Stratos -FROM splatform/stratos-aio-base:opensuse as builder +FROM splatform/stratos-aio-base:leap15_1 as builder # Ensure that we copy the custom-src folder COPY --chown=stratos:users . ./ @@ -17,7 +17,7 @@ RUN CERTS_PATH=/home/stratos/dev-certs ./generate_cert.sh \ && chmod +x jetstream # use --target=aio to build All-in-one image -FROM splatform/stratos-bk-base:opensuse +FROM splatform/stratos-bk-base:leap15_1 ARG CANARY_BUILD COPY --from=builder /home/stratos/deploy/db /src/deploy/db COPY --from=builder /home/stratos/dev-certs /srv/dev-certs diff --git a/deploy/Dockerfile.bk b/deploy/Dockerfile.bk index 41ec20f1fb..8317187079 100644 --- a/deploy/Dockerfile.bk +++ b/deploy/Dockerfile.bk @@ -1,4 +1,4 @@ -FROM splatform/stratos-bk-build-base:opensuse as builder +FROM splatform/stratos-bk-build-base:leap15_1 as builder ARG stratos_version RUN mkdir -p /home/stratos WORKDIR /home/stratos @@ -7,12 +7,12 @@ RUN go version RUN npm install RUN npm run build-backend -FROM splatform/stratos-bk-base:opensuse as common-build +FROM splatform/stratos-bk-base:leap15_1 as common-build COPY --from=builder /home/stratos/src/jetstream/jetstream /srv/ RUN chmod +x /srv/jetstream # use --target=db-migrator to build db-migrator image -FROM splatform/stratos-bk-base:opensuse as db-migrator +FROM splatform/stratos-bk-base:leap15_1 as db-migrator WORKDIR /src COPY deploy/db/dbconf.yml db/dbconf.yml COPY deploy/db/scripts/development.sh . @@ -23,7 +23,7 @@ RUN chmod +x development.sh CMD bash /src/wait-for-it.sh -t 90 mariadb:3306 && bash /src/development.sh # use --target=postflight-job to build prod postflight-job -FROM splatform/stratos-bk-base:opensuse as postflight-job +FROM splatform/stratos-bk-base:leap15_1 as postflight-job RUN zypper -n in mariadb-client COPY --from=common-build /srv/jetstream /usr/local/bin/jetstream COPY deploy/db/dbconf.yml db/dbconf.yml @@ -31,7 +31,7 @@ COPY deploy/db/scripts/run-postflight-job.k8s.sh /run-postflight-job.sh CMD ["/run-postflight-job.sh"] # use --target=prod-build to build a backend image for Kubernetes -FROM splatform/stratos-bk-base:opensuse as prod-build +FROM splatform/stratos-bk-base:leap15_1 as prod-build RUN zypper in -y curl COPY deploy/containers/proxy/entrypoint.sh /entrypoint.sh COPY /deploy/db/scripts/run-preflight-job.sh /run-preflight-job.sh diff --git a/deploy/Dockerfile.ui b/deploy/Dockerfile.ui index 66856bb28c..19ee495543 100644 --- a/deploy/Dockerfile.ui +++ b/deploy/Dockerfile.ui @@ -1,4 +1,4 @@ -FROM splatform/stratos-ui-build-base:opensuse as base-build +FROM splatform/stratos-ui-build-base:leap15_1 as base-build ARG project ARG branch ARG commit @@ -13,7 +13,7 @@ RUN npm install && \ mkdir -p /usr/dist && \ cp -R dist/* /usr/dist -FROM splatform/stratos-nginx-base:opensuse as prod-build +FROM splatform/stratos-nginx-base:leap15_1 as prod-build RUN mkdir -p /usr/share/doc/suse COPY deploy/containers/nginx/LICENSE.txt /usr/share/doc/suse/LICENSE.txt COPY deploy/containers/nginx/conf/nginx.k8s.conf /etc/nginx/nginx.conf @@ -22,7 +22,7 @@ COPY deploy/containers/nginx/run-nginx.sh/ /run-nginx.sh EXPOSE 80 443 CMD [ "/run-nginx.sh" ] -FROM splatform/stratos-nginx-base:opensuse as dev-build +FROM splatform/stratos-nginx-base:leap15_1 as dev-build RUN mkdir -p /etc/secrets/ && \ openssl req -batch -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/secrets/server.key -out /etc/secrets/server.crt && \ chmod 0600 /etc/secrets && \ diff --git a/deploy/all-in-one/config.all-in-one.properties b/deploy/all-in-one/config.all-in-one.properties index 0befba7923..632f685de3 100644 --- a/deploy/all-in-one/config.all-in-one.properties +++ b/deploy/all-in-one/config.all-in-one.properties @@ -3,6 +3,7 @@ DATABASE_PROVIDER=sqlite HTTP_CONNECTION_TIMEOUT_IN_SECS=10 HTTP_CLIENT_TIMEOUT_IN_SECS=30 HTTP_CLIENT_TIMEOUT_MUTATING_IN_SECS=120 +HTTP_CLIENT_TIMEOUT_LONGRUNNING_IN_SECS=600 CONSOLE_PROXY_TLS_ADDRESS=:443 CF_ADMIN_ROLE=cloud_controller.admin CF_CLIENT=cf diff --git a/deploy/ci/automation/check-stratos.sh b/deploy/ci/automation/check-stratos.sh index 09aee15be6..ad25fe2f9e 100755 --- a/deploy/ci/automation/check-stratos.sh +++ b/deploy/ci/automation/check-stratos.sh @@ -1,5 +1,18 @@ #!/bin/bash +GREEN='\033[0;32m' +RED='\033[0;31m' +CYAN="\033[96m" +YELLOW="\033[93m" +BOLD="\033[1m" +RESET='\033[0m' + +echo "" +echo -e "${BOLD}${CYAN}=================================${RESET}" +echo -e "${BOLD}${CYAN}Stratos System Availability check${RESET}" +echo -e "${BOLD}${CYAN}=================================${RESET}" +echo "" + # Check that a Stratos system is available set -eu @@ -21,10 +34,18 @@ if [ -z "${PASSWORD}" ]; then exit 1 fi -echo "Checking Stratos is up and running: ${ENDPOINT}" +echo -e "${BOLD}${CYAN}Checking Stratos is up and running: ${ENDPOINT}${RESET}" +echo -e "${BOLD}${YELLOW}Performing npm install ...${RESET}" npm install +echo -e "${BOLD}${YELLOW}Updating web driver ...${RESET}" + +# Ensure we have correct version of web driver +CHROME_VERSION=$(google-chrome --version | grep -iEo "[0-9.]{10,20}") +echo "Chrome version: ${CHROME_VERSION}" +npm run update-webdriver -- --versions.chrome=${CHROME_VERSION} + pushd "${DIRPATH}/../../.." SECRETS=secrets.yaml if [ -f "$SECRETS" ]; then @@ -47,8 +68,13 @@ echo "headless: true" >> ${SECRETS} set +e +echo -e "${BOLD}${YELLOW}Running checks ...${RESET}" + +# Need to set base URL via env var +export STRATOS_E2E_BASE_URL=${ENDPOINT} + # Run the e2e check test suite against the supplied endpoint -./node_modules/.bin/ng e2e --dev-server-target= --base-url=${ENDPOINT} --suite=check +./node_modules/.bin/ng e2e --no-webdriver-update --dev-server-target= --base-url=${ENDPOINT} --suite=check RET=$? if [ -f "$SECRETS.bak" ]; then diff --git a/deploy/ci/automation/helm-chart-version-checking.sh b/deploy/ci/automation/helm-chart-version-checking.sh new file mode 100755 index 0000000000..b71a3e9e81 --- /dev/null +++ b/deploy/ci/automation/helm-chart-version-checking.sh @@ -0,0 +1,216 @@ +#!/bin/bash + +echo "=========================" +echo "Stratos Helm Version Test" +echo "=========================" + +# This scrips does dry-run installs using differnt Helm and Kube versions + +DIRPATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +STRATOS="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd ../../.. && pwd)" + +CYAN="\033[96m" +YELLOW="\033[93m" +RESET="\033[0m" +BOLD="\033[1m" + +function log { + MSG=$1 + echo -e "${CYAN}${BOLD}${MSG}${RESET}" +} + +declare -a HELM_VERSIONS=("3.0.0" "2.16.1" "2.15.2" "2.14.3") + +set -e + +# We should be running in the Stratos GitHub folder + +NAME=stratos-test +NAMESPACE=stratos-ns +HELM_REPO=https://cloudfoundry.github.io/stratos +HELM_REPO_NAME=cfstratos + +TEMP_FOLDER=${STRATOS}/tmp/helm +mkdir -p ${TEMP_FOLDER} + +log "Building Helm chart ..." +pushd "${STRATOS}/deploy/kubernetes" > /dev/null +./build.sh -c -t helmtest +popd > /dev/null + +log "Preparing environment ..." + +pushd "${TEMP_FOLDER}" > /dev/null + +export HELM_HOME=${TEMP_FOLDER} + +function getKind { + if [ ! -f "./kind" ]; then + curl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/download/v0.6.1/kind-$(uname)-amd64 + chmod +x ./kind + fi +} + +function getHelm { + UNAME=`uname | awk '{print tolower($0)}'` + if [ ! -f "./helm_${1}" ]; then + log "Getting helm version ${1} [${UNAME}]" + curl -Lo ./helm_${1}.tar.gz https://get.helm.sh/helm-v${1}-${UNAME}-amd64.tar.gz + tar -xvzf ./helm_${1}.tar.gz + mv ./${UNAME}-amd64/helm ./helm_${1} + chmod +x ./helm_${1} + rm -rf ./helm_${1}.tar.gz + rm -rf ./${UNAME}-amd64 + fi +} + +function getKubectl { + UNAME=`uname | awk '{print tolower($0)}'` + if [ ! -f "./kubectl_${2}" ]; then + log "Getting kubectl version ${1}" + curl -Lo ./kubectl_${2} https://storage.googleapis.com/kubernetes-release/release/v${1}/bin/${UNAME}/amd64/kubectl + chmod +x ./kubectl_${2} + fi +} + +function cleanup { + if [ -f "./kind" ]; then + log "Cleaning up" + ./kind delete cluster + fi +} + +function wait_for_pods { + DONE="false" + NS="$1" + + echo "Waiting for all pods in namespace '$NS' to be ready" + sleep 5 + + PROGRESS="." + + while [ $DONE != "true" ]; do + PODS=`kubectl get po --namespace=$NS | wc -l` + RUNNING=`kubectl get po --namespace=$NS | grep 'Running' | wc -l` + COMPLETED=`kubectl get po --namespace=$NS | grep 'Completed' | wc -l` + NOTREADY=`kubectl get po --namespace=$NS | grep '0//*' | wc -l` + PODS=$((PODS-1)) + OKAY=$((RUNNING+COMPLETED)) + NOTREADY=$((NOTREADY-COMPLETED)) + + if [ "$PODS" == "$OKAY" ] && [ "$NOTREADY" == "0" ]; then + echo "" + echo "All pods are running" + DONE="true" + else + kubectl get po --namespace=$NS + echo "" + printf "\r${PODS} pods ($RUNNING are running, $NOTREADY are not yet ready) $PROGRESS " + printf "\r${PODS} pods ($RUNNING are running, $NOTREADY are not yet ready) $PROGRESS " + PROGRESS="$PROGRESS." + + if [ ${#PROGRESS} -eq 10 ]; then + PROGRESS="." + fi + fi + + echo "" + + sleep 5 + done + + echo "Finished waiting for all pods in namespace '$NS'" +} + +function do_chart_tests { + + + log "Preparing test run" + ${KUBECTL} cluster-info --context kind-kind + ${KUBECTL} version + ${KUBECTL} get nodes + + for i in "${HELM_VERSIONS[@]}" + do + if [ "$i" != "$1" ]; then + log "========================================================================" + log "Testing Stratos with Helm version $i on Kubernetes ${KUBE}" + ./helm_$i init + ./helm_$i version --client + + HELM_MAJOR="${i:0:1}" + echo ${HELM_MAJOR} + + # V2 and V3 are different + if [ "${HELM_MAJOR}" == "3" ]; then + ./helm_$i install stratos "${STRATOS}/deploy/kubernetes/helm-chart" --namespace stratos --dry-run + else + ./helm_$i init --upgrade --force-upgrade + wait_for_pods "kube-system" + # Don't actually install, just check we can render the chart + ./helm_$i install "${STRATOS}/deploy/kubernetes/helm-chart" --name stratos --namespace stratos --dry-run + fi + log "Done Stratos with Helm version $i on Kubernetes ${KUBE}" + log "========================================================================" + else + log "Skipping testing with Helm version $i due to compatibility issues" + fi + done + +} + +# We always using --dry-run so we don't actually install - we are checking rendering only + +# Temp folder + +# Just check that there was not a kind cluster from an errored run + +cleanup + +getKind + +# Get Helm client for each version +for i in "${HELM_VERSIONS[@]}" +do + getHelm "$i" +done + +getKubectl 1.16.3 1.16 +getKubectl 1.15.6 1.15 +getKubectl 1.14.6 1.14 + +# Kind image references for a few K8S versions that we care about +K8S_16_IMAGE=kindest/node:v1.16.3 +K8S_15_IMAGE=kindest/node:v1.15.6 +K8S_14_IMAGE=kindest/node:v1.14.6 + +# At this point we have the kind and helm tools + +# Set up a kind kube 1.14 cluster + +log "Kubernetes 1.14 Cluster ..." +KUBE=1.14 +./kind create cluster --image ${K8S_14_IMAGE} +KUBECTL=./kubectl_1.14 +do_chart_tests +./kind delete cluster + +log "Kubernetes 1.15 Cluster ..." +KUBE=1.15 +./kind create cluster --image ${K8S_15_IMAGE} +KUBECTL=./kubectl_1.15 +do_chart_tests +./kind delete cluster + +log "Kubernetes 1.16 Cluster ..." +KUBE=1.16 +./kind create cluster --image ${K8S_16_IMAGE} +KUBECTL=./kubectl_1.16 + +# Helm 2.14.3 won't work with Kubernetes 1.16 +do_chart_tests "2.14.3" +./kind delete cluster + +log "All checks completed" + +popd > /dev/null diff --git a/deploy/ci/scripts/Dockerfile.bosh b/deploy/ci/scripts/Dockerfile.bosh index f56472dac1..ec9a8fe87b 100644 --- a/deploy/ci/scripts/Dockerfile.bosh +++ b/deploy/ci/scripts/Dockerfile.bosh @@ -2,7 +2,7 @@ FROM bosh/cli2 RUN apt-get update RUN apt-get install -y git curl wget -RUN curl https://storage.googleapis.com/golang/go1.12.4.linux-amd64.tar.gz -o /go1.9.7.tar.gz +RUN curl https://storage.googleapis.com/golang/go1.13.4.linux-amd64.tar.gz -o /go1.9.7.tar.gz RUN curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - && \ sudo apt-get install -y nodejs git RUN tar -C /usr/local -xzf /go1.9.7.tar.gz diff --git a/deploy/ci/scripts/Dockerfile.stratos-ci b/deploy/ci/scripts/Dockerfile.stratos-ci index a9c9dcbc1d..b2e9ec19b7 100644 --- a/deploy/ci/scripts/Dockerfile.stratos-ci +++ b/deploy/ci/scripts/Dockerfile.stratos-ci @@ -6,7 +6,7 @@ # Default Image used to run tasks - contains Helm # Builder for the github release tool -FROM splatform/stratos-go-build-base:opensuse as go-base +FROM splatform/stratos-go-build-base:leap15_1 as go-base RUN export GOPATH=/home/stratos/go && \ mkdir -p ${GOPATH} && \ go get github.com/aktau/github-release diff --git a/deploy/ci/tasks/dev-releases/github-helper.sh b/deploy/ci/tasks/dev-releases/github-helper.sh index 632d4353b0..a4b0765286 100644 --- a/deploy/ci/tasks/dev-releases/github-helper.sh +++ b/deploy/ci/tasks/dev-releases/github-helper.sh @@ -39,7 +39,7 @@ downloadReleaseFile() { local parser=". | map(select(.tag_name == \"$VERSION\"))[0].assets | map(select(.name == \"$FILE\"))[0].id" # Get release information from GitHub - curl -H "Authorization: token $TOKEN" -H "Accept: application/vnd.github.v3.raw" -s $GITHUB/repos/$REPO/releases > releases.json + curl -L -H "Authorization: token $TOKEN" -H "Accept: application/vnd.github.v3.raw" -s $GITHUB/repos/$REPO/releases > releases.json if [ $? -ne 0 ]; then echo "Could not download release information for ${REPO}" exit 1 diff --git a/deploy/ci/travis/config.properties b/deploy/ci/travis/config.properties index 9bc67178ce..e7a11953c2 100644 --- a/deploy/ci/travis/config.properties +++ b/deploy/ci/travis/config.properties @@ -3,6 +3,7 @@ DATABASE_PROVIDER=sqlite HTTP_CONNECTION_TIMEOUT_IN_SECS=10 HTTP_CLIENT_TIMEOUT_IN_SECS=30 HTTP_CLIENT_TIMEOUT_MUTATING_IN_SECS=120 +HTTP_CLIENT_TIMEOUT_LONGRUNNING_IN_SECS=600 SKIP_SSL_VALIDATION=true CONSOLE_PROXY_TLS_ADDRESS=:5443 CONSOLE_CLIENT=console diff --git a/deploy/ci/travis/depcache.sh b/deploy/ci/travis/depcache.sh index 568129299e..8466846f0c 100755 --- a/deploy/ci/travis/depcache.sh +++ b/deploy/ci/travis/depcache.sh @@ -10,7 +10,7 @@ apt-get install -y curl apt-get install -y git curl -sL -o ./gimme https://raw.githubusercontent.com/travis-ci/gimme/master/gimme chmod +x ./gimme -eval "$(./gimme 1.12.4)" +eval "$(./gimme 1.13.4)" mkdir -p /root/go/bin export PATH=/root/go/bin:$PATH cd /stratos/src/jetstream diff --git a/deploy/cloud-foundry/config.properties b/deploy/cloud-foundry/config.properties index c3c95ab593..a5cb9bd20a 100644 --- a/deploy/cloud-foundry/config.properties +++ b/deploy/cloud-foundry/config.properties @@ -3,6 +3,7 @@ DATABASE_PROVIDER=sqlite HTTP_CONNECTION_TIMEOUT_IN_SECS=10 HTTP_CLIENT_TIMEOUT_IN_SECS=30 HTTP_CLIENT_TIMEOUT_MUTATING_IN_SECS=120 +HTTP_CLIENT_TIMEOUT_LONGRUNNING_IN_SECS=600 SKIP_SSL_VALIDATION=true CONSOLE_PROXY_TLS_ADDRESS=:443 CONSOLE_CLIENT=console diff --git a/deploy/common-build.sh b/deploy/common-build.sh index ee5c771c20..2e8906adf4 100644 --- a/deploy/common-build.sh +++ b/deploy/common-build.sh @@ -43,7 +43,7 @@ function buildAndPublishImage { # Proxy support # Remove intermediate containers after a successful build -BUILD_ARGS="--rm=true" +BUILD_ARGS="--rm=true --squash" RUN_ARGS="" if [ -n "${http_proxy:-}" -o -n "${HTTP_PROXY:-}" ]; then BUILD_ARGS="${BUILD_ARGS} --build-arg http_proxy=${http_proxy:-${HTTP_PROXY}}" diff --git a/deploy/containers/nginx/Dockerfile.dc b/deploy/containers/nginx/Dockerfile.dc index 7af4708169..049c6c9a5a 100644 --- a/deploy/containers/nginx/Dockerfile.dc +++ b/deploy/containers/nginx/Dockerfile.dc @@ -1,4 +1,4 @@ -FROM splatform/stratos-nginx-base:opensuse +FROM splatform/stratos-nginx-base:leap15_1 RUN mkdir -p /etc/secrets/ && \ openssl req -batch -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/secrets/server.key -out /etc/secrets/server.crt && \ diff --git a/deploy/db/Dockerfile.mariadb b/deploy/db/Dockerfile.mariadb index 9bcb558457..885f8d3cc3 100644 --- a/deploy/db/Dockerfile.mariadb +++ b/deploy/db/Dockerfile.mariadb @@ -1,6 +1,13 @@ -FROM splatform/stratos-db-base:opensuse +FROM splatform/stratos-db-base:leap15_1 + +# See: https://github.com/docker-library/mariadb/blob/master/10.2/Dockerfile +RUN \ + find /etc/ -name 'my*.cnf' -print0 \ + | xargs -0 grep -lZE '^(bind-address|log)' \ + | xargs -rt -0 sed -Ei 's/^(bind-address|log)/#&/'; COPY mariadb-entrypoint.sh /docker-entrypoint.sh +COPY mariadb-ping.sh /dbping.sh # ENTRYPOINT ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/deploy/db/mariadb-entrypoint.sh b/deploy/db/mariadb-entrypoint.sh index 45e0471437..48e04e3142 100755 --- a/deploy/db/mariadb-entrypoint.sh +++ b/deploy/db/mariadb-entrypoint.sh @@ -1,49 +1,214 @@ #!/bin/bash -set -e - -MYSQL_DATADIR="/var/lib/mysql" - -if [ ! -d "$MYSQL_DATADIR/mysql" ]; then - # if [ -z "$MYSQL_ROOT_PASSWORD" -a -z "$MYSQL_ALLOW_EMPTY_PASSWORD" ]; then - # echo >&2 'error: database is uninitialized and MYSQL_ROOT_PASSWORD not set' - # echo >&2 ' Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?' - # exit 1 - # fi - - echo 'Running mysql_install_db ...' - mysql_install_db --user=mysql --datadir="$MYSQL_DATADIR" - echo 'Finished mysql_install_db' - - # These statements _must_ be on individual lines, and _must_ end with - # semicolons (no line breaks or comments are permitted). - # TODO proper SQL escaping on ALL the things D: - - tempSqlFile='/tmp/mysql-first-time.sql' - cat > "$tempSqlFile" <<-EOSQL -DELETE FROM mysql.user ; -CREATE USER 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ; -GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ; -DROP DATABASE IF EXISTS test ; -EOSQL - - if [ "$MYSQL_DATABASE" ]; then - echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DATABASE\` ;" >> "$tempSqlFile" - fi - - if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then - echo "CREATE USER '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$tempSqlFile" - - if [ "$MYSQL_DATABASE" ]; then - echo "GRANT ALL ON \`$MYSQL_DATABASE\`.* TO '$MYSQL_USER'@'%' ;" >> "$tempSqlFile" - fi - fi - - echo 'FLUSH PRIVILEGES ;' >> "$tempSqlFile" - set -- "$@" --init-file="$tempSqlFile" + +########################################################################################################### +# +# This is the entrypoint script taken from here: https://github.com/docker-library/mariadb/tree/master/10.2 +# +# There is one change - which is clearly marked below +# +########################################################################################################### + +set -eo pipefail +shopt -s nullglob + +# if command starts with an option, prepend mysqld +if [ "${1:0:1}" = '-' ]; then + set -- mysqld "$@" fi -chown -R mysql:mysql "$MYSQL_DATADIR" -mkdir /var/run/mysql -chown -R mysql:mysql /var/run/mysql +# skip setup if they want an option that stops mysqld +wantHelp= +for arg; do + case "$arg" in + -'?'|--help|--print-defaults|-V|--version) + wantHelp=1 + break + ;; + esac +done + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +_check_config() { + toRun=( "$@" --verbose --help --log-bin-index="$(mktemp -u)" ) + if ! errors="$("${toRun[@]}" 2>&1 >/dev/null)"; then + cat >&2 <<-EOM + + ERROR: mysqld failed while attempting to check config + command was: "${toRun[*]}" + + $errors + EOM + exit 1 + fi +} + +# Fetch value from server config +# We use mysqld --verbose --help instead of my_print_defaults because the +# latter only show values present in config files, and not server defaults +_get_config() { + local conf="$1"; shift + "$@" --verbose --help --log-bin-index="$(mktemp -u)" 2>/dev/null \ + | awk '$1 == "'"$conf"'" && /^[^ \t]/ { sub(/^[^ \t]+[ \t]+/, ""); print; exit }' + # match "datadir /some/path with/spaces in/it here" but not "--xyz=abc\n datadir (xyz)" +} + +# allow the container to be started with `--user` +if [ "$1" = 'mysqld' -a -z "$wantHelp" -a "$(id -u)" = '0' ]; then + _check_config "$@" + DATADIR="$(_get_config 'datadir' "$@")" + mkdir -p "$DATADIR" + find "$DATADIR" \! -user mysql -exec chown mysql '{}' + + exec gosu mysql "$BASH_SOURCE" "$@" +fi + +if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then + # still need to check config, container may have started with --user + _check_config "$@" + # Get config + DATADIR="$(_get_config 'datadir' "$@")" + + echo "Data dir is: ${DATADIR}" + + if [ ! -d "$DATADIR/mysql" ]; then + file_env 'MYSQL_ROOT_PASSWORD' + if [ -z "$MYSQL_ROOT_PASSWORD" -a -z "$MYSQL_ALLOW_EMPTY_PASSWORD" -a -z "$MYSQL_RANDOM_ROOT_PASSWORD" ]; then + echo >&2 'error: database is uninitialized and password option is not specified ' + echo >&2 ' You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD' + exit 1 + fi + + mkdir -p "$DATADIR" + # ======================================== + # Stratos changes + chown -R mysql:mysql "$DATADIR" + # ======================================== + + echo 'Initializing database' + installArgs=( --datadir="$DATADIR" --rpm ) + if { mysql_install_db --help || :; } | grep -q -- '--auth-root-authentication-method'; then + # beginning in 10.4.3, install_db uses "socket" which only allows system user root to connect, switch back to "normal" to allow mysql root without a password + # see https://github.com/MariaDB/server/commit/b9f3f06857ac6f9105dc65caae19782f09b47fb3 + # (this flag doesn't exist in 10.0 and below) + installArgs+=( --auth-root-authentication-method=normal ) + fi + # "Other options are passed to mysqld." (so we pass all "mysqld" arguments directly here) + mysql_install_db "${installArgs[@]}" "${@:2}" + echo 'Database initialized' + + SOCKET="$(_get_config 'socket' "$@")" + "$@" --skip-networking --socket="${SOCKET}" & + pid="$!" + + mysql=( mysql --protocol=socket -uroot -hlocalhost --socket="${SOCKET}" ) + + for i in {30..0}; do + if echo 'SELECT 1' | "${mysql[@]}" &> /dev/null; then + break + fi + echo 'MySQL init process in progress...' + sleep 1 + done + if [ "$i" = 0 ]; then + echo >&2 'MySQL init process failed.' + exit 1 + fi + + if [ -z "$MYSQL_INITDB_SKIP_TZINFO" ]; then + # sed is for https://bugs.mysql.com/bug.php?id=20545 + mysql_tzinfo_to_sql /usr/share/zoneinfo | sed 's/Local time zone must be set--see zic manual page/FCTY/' | "${mysql[@]}" mysql + fi + + if [ ! -z "$MYSQL_RANDOM_ROOT_PASSWORD" ]; then + export MYSQL_ROOT_PASSWORD="$(pwgen -1 32)" + echo "GENERATED ROOT PASSWORD: $MYSQL_ROOT_PASSWORD" + fi + + rootCreate= + # default root to listen for connections from anywhere + file_env 'MYSQL_ROOT_HOST' '%' + if [ ! -z "$MYSQL_ROOT_HOST" -a "$MYSQL_ROOT_HOST" != 'localhost' ]; then + # no, we don't care if read finds a terminating character in this heredoc + # https://unix.stackexchange.com/questions/265149/why-is-set-o-errexit-breaking-this-read-heredoc-expression/265151#265151 + read -r -d '' rootCreate <<-EOSQL || true + CREATE USER 'root'@'${MYSQL_ROOT_HOST}' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ; + GRANT ALL ON *.* TO 'root'@'${MYSQL_ROOT_HOST}' WITH GRANT OPTION ; + EOSQL + fi + + "${mysql[@]}" <<-EOSQL + -- What's done in this file shouldn't be replicated + -- or products like mysql-fabric won't work + SET @@SESSION.SQL_LOG_BIN=0; + + DELETE FROM mysql.user WHERE user NOT IN ('mysql.sys', 'mysqlxsys', 'root') OR host NOT IN ('localhost') ; + SET PASSWORD FOR 'root'@'localhost'=PASSWORD('${MYSQL_ROOT_PASSWORD}') ; + GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION ; + ${rootCreate} + DROP DATABASE IF EXISTS test ; + FLUSH PRIVILEGES ; + EOSQL + + if [ ! -z "$MYSQL_ROOT_PASSWORD" ]; then + mysql+=( -p"${MYSQL_ROOT_PASSWORD}" ) + fi + + file_env 'MYSQL_DATABASE' + if [ "$MYSQL_DATABASE" ]; then + echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DATABASE\` ;" | "${mysql[@]}" + mysql+=( "$MYSQL_DATABASE" ) + fi + + file_env 'MYSQL_USER' + file_env 'MYSQL_PASSWORD' + if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then + echo "CREATE USER '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' ;" | "${mysql[@]}" + + if [ "$MYSQL_DATABASE" ]; then + echo "GRANT ALL ON \`$MYSQL_DATABASE\`.* TO '$MYSQL_USER'@'%' ;" | "${mysql[@]}" + fi + fi + + echo + for f in /docker-entrypoint-initdb.d/*; do + case "$f" in + *.sh) echo "$0: running $f"; . "$f" ;; + *.sql) echo "$0: running $f"; "${mysql[@]}" < "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${mysql[@]}"; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done + + if ! kill -s TERM "$pid" || ! wait "$pid"; then + echo >&2 'MySQL init process failed.' + exit 1 + fi + + echo + echo 'MySQL init process done. Ready for start up.' + echo + fi +fi -exec "$@" +exec "$@" \ No newline at end of file diff --git a/deploy/db/mariadb-ping.sh b/deploy/db/mariadb-ping.sh new file mode 100755 index 0000000000..331f6bb5a0 --- /dev/null +++ b/deploy/db/mariadb-ping.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +mysqladmin --password="$MYSQL_ROOT_PASSWORD" --user=root ping \ No newline at end of file diff --git a/deploy/fissile/Dockerfile.bosh-cli b/deploy/fissile/Dockerfile.bosh-cli index 0da9b977cf..faec0af67e 100644 --- a/deploy/fissile/Dockerfile.bosh-cli +++ b/deploy/fissile/Dockerfile.bosh-cli @@ -1,7 +1,7 @@ FROM splatform/bosh-cli -RUN curl https://storage.googleapis.com/golang/go1.12.4.linux-amd64.tar.gz -o go1.12.4.linux-amd64.tar.gz -RUN tar -C /usr/local -xzf go1.12.4.linux-amd64.tar.gz +RUN curl https://storage.googleapis.com/golang/go1.13.4.linux-amd64.tar.gz -o go1.13.4.linux-amd64.tar.gz +RUN tar -C /usr/local -xzf go1.13.4.linux-amd64.tar.gz RUN curl https://deb.nodesource.com/setup_6.x -o install_node.sh RUN chmod +x install_node.sh && \ ./install_node.sh && \ diff --git a/deploy/kubernetes/build.sh b/deploy/kubernetes/build.sh index 0fcf535154..e7c2c0ad79 100755 --- a/deploy/kubernetes/build.sh +++ b/deploy/kubernetes/build.sh @@ -26,8 +26,9 @@ ADD_OFFICIAL_TAG="false" TAG_LATEST="false" NO_PUSH="true" DOCKER_REG_DEFAULTS="true" +CHART_ONLY="false" -while getopts ":ho:r:t:Tclb:On" opt; do +while getopts ":ho:r:t:Tclb:Op" opt; do case $opt in h) echo @@ -64,6 +65,9 @@ while getopts ":ho:r:t:Tclb:On" opt; do p) NO_PUSH="false" ;; + c) + CHART_ONLY="true" + ;; \?) echo "Invalid option: -${OPTARG}" >&2 exit 1 @@ -175,22 +179,24 @@ cleanup updateTagForRelease -# Build all of the components that make up the Console +if [ "${CHART_ONLY}" == "false" ]; then + # Build all of the components that make up the Console -log "-- Build & publish the runtime container image for Jetstream (backend)" -patchAndPushImage stratos-jetstream deploy/Dockerfile.bk "${STRATOS_PATH}" prod-build + log "-- Build & publish the runtime container image for Jetstream (backend)" + patchAndPushImage stratos-jetstream deploy/Dockerfile.bk "${STRATOS_PATH}" prod-build -# Build the postflight container -log "-- Build & publish the runtime container image for the postflight job" -patchAndPushImage stratos-postflight-job deploy/Dockerfile.bk "${STRATOS_PATH}" postflight-job + # Build the postflight container + log "-- Build & publish the runtime container image for the postflight job" + patchAndPushImage stratos-postflight-job deploy/Dockerfile.bk "${STRATOS_PATH}" postflight-job -# Build and push an image based on the mariab db container -log "-- Building/publishing MariaDB" -patchAndPushImage stratos-mariadb Dockerfile.mariadb "${STRATOS_PATH}/deploy/db" + # Build and push an image based on the mariab db container + log "-- Building/publishing MariaDB" + patchAndPushImage stratos-mariadb Dockerfile.mariadb "${STRATOS_PATH}/deploy/db" -# Build and push an image based on the nginx container (Front-end) -log "-- Building/publishing the runtime container image for the Console web server (frontend)" -patchAndPushImage stratos-console deploy/Dockerfile.ui "${STRATOS_PATH}" prod-build + # Build and push an image based on the nginx container (Front-end) + log "-- Building/publishing the runtime container image for the Console web server (frontend)" + patchAndPushImage stratos-console deploy/Dockerfile.ui "${STRATOS_PATH}" prod-build +fi log "-- Building Helm Chart" diff --git a/deploy/kubernetes/console/templates/__helpers.tpl b/deploy/kubernetes/console/templates/__helpers.tpl index 5511d09bad..c24f888f74 100644 --- a/deploy/kubernetes/console/templates/__helpers.tpl +++ b/deploy/kubernetes/console/templates/__helpers.tpl @@ -106,6 +106,24 @@ tls.crt: {{ $cert.Cert | b64enc }} tls.key: {{ $cert.Key | b64enc }} {{- end -}} +{{/* +Generate self-signed certificate for ingress if needed +*/}} +{{- define "console.generateIngressCertificate" -}} +{{- $altNames := list (printf "%s" .Values.console.service.ingress.host) (printf "%s.%s" (include "console.certName" .) .Release.Namespace ) ( printf "%s.%s.svc" (include "console.certName" .) .Release.Namespace ) -}} +{{- $ca := genCA "stratos-ca" 365 -}} +{{- $cert := genSignedCert ( include "console.certName" . ) nil $altNames 365 $ca -}} +{{- if .Values.console.service.ingress.tls.crt }} + tls.crt: {{ .Values.console.service.ingress.tls.crt | b64enc | quote }} +{{- else }} + tls.crt: {{ $cert.Cert | b64enc | quote }} +{{- end -}} +{{- if .Values.console.service.ingress.tls.key }} + tls.key: {{ .Values.console.service.ingress.tls.key | b64enc | quote }} +{{- else }} + tls.key: {{ $cert.Key | b64enc | quote }} +{{- end -}} +{{- end -}} {{/* Ingress Host from .Values.console.service diff --git a/deploy/kubernetes/console/templates/deployment.yaml b/deploy/kubernetes/console/templates/deployment.yaml index 1f36fc9548..09863ef924 100644 --- a/deploy/kubernetes/console/templates/deployment.yaml +++ b/deploy/kubernetes/console/templates/deployment.yaml @@ -1,5 +1,9 @@ --- +{{- if semverCompare ">=1.16" (printf "%s.%s" .Capabilities.KubeVersion.Major (trimSuffix "+" .Capabilities.KubeVersion.Minor) )}} +apiVersion: apps/v1 +{{- else }} apiVersion: apps/v1beta1 +{{- end }} kind: StatefulSet metadata: name: stratos @@ -119,6 +123,8 @@ spec: value: "30" - name: HTTP_CLIENT_TIMEOUT_MUTATING_IN_SECS value: "120" + - name: HTTP_CLIENT_TIMEOUT_LONGRUNNING_IN_SECS + value: "600" - name: SKIP_TLS_VERIFICATION value: "false" - name: CONSOLE_PROXY_TLS_ADDRESS @@ -309,7 +315,11 @@ spec: name: {{ .Values.console.templatesConfigMapName }} {{- end }} --- +{{- if semverCompare ">=1.16" (printf "%s.%s" .Capabilities.KubeVersion.Major (trimSuffix "+" .Capabilities.KubeVersion.Minor) )}} +apiVersion: apps/v1 +{{- else }} apiVersion: extensions/v1beta1 +{{- end }} kind: Deployment metadata: name: stratos-db @@ -353,7 +363,7 @@ spec: key: mariadb-password {{- end }} {{- else }} - - name: ALLOW_EMPTY_PASSWORD + - name: MYSQL_ALLOW_EMPTY_PASSWORD value: "yes" {{- end }} - name: MYSQL_USER @@ -366,15 +376,13 @@ spec: livenessProbe: exec: command: - - mysqladmin - - ping - initialDelaySeconds: 30 + - /dbping.sh + initialDelaySeconds: 10 timeoutSeconds: 5 readinessProbe: exec: command: - - mysqladmin - - ping + - /dbping.sh initialDelaySeconds: 5 timeoutSeconds: 1 resources: diff --git a/deploy/kubernetes/console/templates/ingress.yaml b/deploy/kubernetes/console/templates/ingress.yaml index 2578b52df5..8d0af55198 100644 --- a/deploy/kubernetes/console/templates/ingress.yaml +++ b/deploy/kubernetes/console/templates/ingress.yaml @@ -21,13 +21,16 @@ metadata: app.kubernetes.io/component: "console-ingress-tls" helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" data: - tls.crt: {{ .Values.console.service.ingress.tls.crt | default "" | b64enc | quote }} - tls.key: {{ .Values.console.service.ingress.tls.key | default "" | b64enc | quote }} +{{ template "console.generateIngressCertificate" . }} {{- end }} --- # Ingress for the Console UI service +{{- if semverCompare ">=1.16" (printf "%s.%s" .Capabilities.KubeVersion.Major (trimSuffix "+" .Capabilities.KubeVersion.Minor) ) }} +apiVersion: "networking.k8s.io/v1beta1" +{{- else }} apiVersion: "extensions/v1beta1" +{{- end }} kind: "Ingress" metadata: name: "{{ .Release.Name }}-ingress" @@ -35,6 +38,9 @@ metadata: {{- if hasKey .Values.console.service.ingress.annotations "kubernetes.io/ingress.class" | not -}} {{ $_ := set .Values.console.service.ingress.annotations "kubernetes.io/ingress.class" "nginx" }} {{- end }} + {{- if hasKey .Values.console.service.ingress.annotations "kubernetes.io/ingress.allow-http" | not -}} + {{ $_ := set .Values.console.service.ingress.annotations "kubernetes.io/ingress.allow-http" "false" }} + {{- end }} {{- if hasKey .Values.console.service.ingress.annotations "nginx.ingress.kubernetes.io/secure-backends" | not -}} {{ $_ := set .Values.console.service.ingress.annotations "nginx.ingress.kubernetes.io/secure-backends" "true" }} {{- end }} @@ -60,7 +66,7 @@ metadata: {{- end }} spec: tls: - - secretName: {{ default "{{ .Release.Name }}-ingress-tls" .Values.console.service.ingress.secretName | quote }} + - secretName: {{ default (print .Release.Name "-ingress-tls") .Values.console.service.ingress.secretName | quote }} hosts: - {{ template "ingress.host" . }} rules: diff --git a/deploy/kubernetes/console/tests/ingress_test.yaml b/deploy/kubernetes/console/tests/ingress_test.yaml index d275098c9b..50f214b502 100644 --- a/deploy/kubernetes/console/tests/ingress_test.yaml +++ b/deploy/kubernetes/console/tests/ingress_test.yaml @@ -47,10 +47,9 @@ tests: - equal: path: kind value: "Secret" - - equal: + - isNotEmpty: path: data.tls\.crt - value: "" - - equal: + - isNotEmpty: path: data.tls\.key value: "" - it: should create secret with specified values @@ -147,6 +146,7 @@ tests: - equal: path: metadata.annotations value: + kubernetes.io/ingress.allow-http: "false" kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/secure-backends: "true" nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" @@ -171,6 +171,7 @@ tests: - equal: path: metadata.annotations value: + kubernetes.io/ingress.allow-http: "false" kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/secure-backends: "true" nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" @@ -196,6 +197,7 @@ tests: path: metadata.annotations value: test-annotation: "test" + kubernetes.io/ingress.allow-http: "false" kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/secure-backends: "true" nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" diff --git a/deploy/kubernetes/console/tests/kube_version_test.yaml b/deploy/kubernetes/console/tests/kube_version_test.yaml new file mode 100644 index 0000000000..922ee4e9e3 --- /dev/null +++ b/deploy/kubernetes/console/tests/kube_version_test.yaml @@ -0,0 +1,40 @@ +suite: test stratos deployment with kube versions +templates: + - deployment.yaml +tests: + - it: should use newer API versions when kube >= 1.16 + capabilities: + kubeVersion: + major: 1 + minor: 16 + asserts: + - equal: + path: apiVersion + value: apps/v1 + - it: should use newer API versions when kube >= 2 + capabilities: + kubeVersion: + major: 2 + minor: 1 + asserts: + - equal: + path: apiVersion + value: apps/v1 + - it: should use older API versions when kube < 1.16 + capabilities: + kubeVersion: + major: 1 + minor: 14 + asserts: + - equal: + path: apiVersion + value: apps/v1beta1 + - it: should use older API versions when kube is set to 1.14+ + capabilities: + kubeVersion: + major: 1 + minor: 14+ + asserts: + - equal: + path: apiVersion + value: apps/v1beta1 diff --git a/deploy/proxy.env b/deploy/proxy.env index c02f412d9d..be65e004fb 100644 --- a/deploy/proxy.env +++ b/deploy/proxy.env @@ -7,6 +7,7 @@ DB_PORT=3306 HTTP_CONNECTION_TIMEOUT_IN_SECS=10 HTTP_CLIENT_TIMEOUT_IN_SECS=30 HTTP_CLIENT_TIMEOUT_MUTATING_IN_SECS=120 +HTTP_CLIENT_TIMEOUT_LONGRUNNING_IN_SECS=600 SKIP_SSL_VALIDATION=true CONSOLE_PROXY_TLS_ADDRESS=:3003 CONSOLE_CLIENT=console diff --git a/deploy/stratos-base-images/Dockerfile.stratos-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-base.tmpl index 701a2fbde5..b956a582b7 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-base.tmpl @@ -1,3 +1,7 @@ FROM {{BASE_IMAGE}} +{{#IS_SLE}} +RUN rm -f /usr/lib/zypp/plugins/services/container-suseconnect-zypp +{{/IS_SLE}} + WORKDIR /srv diff --git a/deploy/stratos-base-images/Dockerfile.stratos-bk-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-bk-base.tmpl index 712ce98087..8416e9ea83 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-bk-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-bk-base.tmpl @@ -1,6 +1,7 @@ FROM {{BASE_IMAGE}} {{#IS_SLE}} +RUN rm -f /usr/lib/zypp/plugins/services/container-suseconnect-zypp RUN zypper addrepo -G -c '{{SMT_INTERNAL}}' smt_internal RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_UPDATE}}' smt_internal_update RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_SDK}}' smt_internal_sdk @@ -8,22 +9,32 @@ RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_SERVER}}' smt_internal_server RUN zypper ref {{/IS_SLE}} RUN zypper in -y ca-certificates && \ + # Can remove this when we remove the postflight job + zypper in -y mariadb-client curl && \ mkdir -p /srv && \ mkdir -p /root/.npm-global # Install latest git from devel/tools/scm repository {{^IS_SLE}} -RUN zypper ar http://download.opensuse.org/repositories/devel:/tools:/scm/openSUSE_Leap_42.3/devel:tools:scm.repo && \ - zypper --no-gpg-checks in -y git +RUN zypper ar http://download.opensuse.org/repositories/devel:/tools:/scm/openSUSE_Leap_15.1/devel:tools:scm.repo && \ + zypper --no-gpg-checks in -y git && \ + zypper rr devel_tools_scm && \ + zypper clean -a && \ + rm -f /var/log/zypper.log /var/log/zypp/history + {{/IS_SLE}} {{#IS_SLE}} -RUN zypper ar http://download.opensuse.org/repositories/devel:/tools:/scm/SLE_12_SP3/devel:tools:scm.repo && \ - zypper --no-gpg-checks in -y git +RUN zypper ar http://download.opensuse.org/repositories/devel:/tools:/scm/SLE_15/devel:tools:scm.repo && \ + zypper --no-gpg-checks in -y git && \ + zypper rr devel_tools_scm && \ + zypper clean -a && \ + rm -f /var/log/zypper.log /var/log/zypp/history + {{/IS_SLE}} {{#IS_SLE}} -RUN zypper rr smt_internal -RUN zypper rr smt_internal_update -RUN zypper rr smt_internal_sdk -RUN zypper rr smt_internal_server +RUN zypper rr smt_internal +RUN zypper rr smt_internal_update +RUN zypper rr smt_internal_sdk +RUN zypper rr smt_internal_server {{/IS_SLE}} WORKDIR /srv diff --git a/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl index 169657a541..04137d442f 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-bk-build-base.tmpl @@ -5,9 +5,12 @@ RUN useradd -ms /bin/bash stratos && \ chown -R stratos /home/stratos && \ chgrp -R users /home/stratos -RUN cd / && wget https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.xz && \ - tar -xf node-v8.11.2-linux-x64.tar.xz +RUN cd / && wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz && \ + tar -xf node-v12.13.0-linux-x64.tar.xz && \ + rm node-v12.13.0-linux-x64.tar.xz ENV USER=stratos -ENV PATH=$PATH:/node-v8.11.2-linux-x64/bin +ENV PATH=$PATH:/node-v12.13.0-linux-x64/bin USER stratos -WORKDIR /home/stratos \ No newline at end of file +WORKDIR /home/stratos + + diff --git a/deploy/stratos-base-images/Dockerfile.stratos-go-build-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-go-build-base.tmpl index 49a0687acf..871c53c857 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-go-build-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-go-build-base.tmpl @@ -1,6 +1,7 @@ FROM {{BASE_IMAGE}} {{#IS_SLE}} +RUN rm -f /usr/lib/zypp/plugins/services/container-suseconnect-zypp RUN zypper addrepo -G -c '{{SMT_INTERNAL}}' smt_internal RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_UPDATE}}' smt_internal_update RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_SDK}}' smt_internal_sdk @@ -9,10 +10,14 @@ RUN zypper ref {{/IS_SLE}} RUN zypper -n ref && \ -zypper -n up && \ -zypper in -y which tar git gcc curl wget -RUN wget https://storage.googleapis.com/golang/go1.12.4.linux-amd64.tar.gz && \ - tar -xzf go1.12.4.linux-amd64.tar.gz -C /usr/local/ && \ + zypper -n up && \ + zypper in -y which tar git gcc curl wget gzip xz && \ + zypper clean -a && \ + rm -f /var/log/zypper.log /var/log/zypp/history + +RUN wget https://storage.googleapis.com/golang/go1.13.4.linux-amd64.tar.gz && \ + tar -xzf go1.13.4.linux-amd64.tar.gz -C /usr/local/ && \ + rm go1.13.4.linux-amd64.tar.gz && \ mkdir -p /home/stratos/go/bin && \ mkdir -p /home/stratos/go/src diff --git a/deploy/stratos-base-images/Dockerfile.stratos-mariadb-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-mariadb-base.tmpl index 61d6d758df..7c4cce74ff 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-mariadb-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-mariadb-base.tmpl @@ -1,7 +1,11 @@ FROM {{BASE_IMAGE}} {{#IS_SLE}} +RUN rm -f /usr/lib/zypp/plugins/services/container-suseconnect-zypp RUN zypper addrepo -G -c '{{SMT_INTERNAL}}' smt_internal +RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_UPDATE}}' smt_internal_update +RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_SDK}}' smt_internal_sdk +RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_SERVER}}' smt_internal_server RUN zypper ref {{/IS_SLE}} @@ -9,8 +13,13 @@ RUN zypper ref ENV MYSQL_ROOT_PASSWORD mysecretpassword # Add repo for the latest mariadb -RUN zypper in -y mariadb net-tools \ - && zypper clean --all +RUN zypper in -y mariadb net-tools mariadb-tools timezone wget awk grep && \ + zypper clean -a && \ + rm -f /var/log/zypper.log /var/log/zypp/history + +ARG GOSU_VERSION=1.11 +RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-amd64" \ + && chmod +x /usr/local/bin/gosu # Config for mariadb RUN rm -rf /var/lib/mysql \ @@ -20,7 +29,10 @@ RUN rm -rf /var/lib/mysql \ && chown -R mysql:mysql /var/log/mysql {{#IS_SLE}} -RUN zypper rr smt_internal +RUN zypper rr smt_internal +RUN zypper rr smt_internal_update +RUN zypper rr smt_internal_sdk +RUN zypper rr smt_internal_server {{/IS_SLE}} VOLUME ["/var/lib/mysql"] \ No newline at end of file diff --git a/deploy/stratos-base-images/Dockerfile.stratos-nginx-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-nginx-base.tmpl index 021c2d9ff3..d42d542d5b 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-nginx-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-nginx-base.tmpl @@ -1,12 +1,23 @@ FROM {{BASE_IMAGE}} {{#IS_SLE}} -RUN zypper addrepo -G -t yum -c 'http://nginx.org/packages/sles/12' nginx +RUN rm -f /usr/lib/zypp/plugins/services/container-suseconnect-zypp +RUN zypper addrepo -G -t yum -c 'http://nginx.org/packages/sles/15' nginx +RUN zypper addrepo -G -c '{{SMT_INTERNAL}}' smt_internal +RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_UPDATE}}' smt_internal_update +RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_SDK}}' smt_internal_sdk RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_SERVER}}' smt_internal_server {{/IS_SLE}} + RUN zypper -n ref && \ zypper -n up && \ - zypper in -y nginx apache2-utils + zypper in -y nginx apache2-utils && \ + zypper clean -a && \ + rm -f /var/log/zypper.log /var/log/zypp/history {{#IS_SLE}} +RUN zypper rr nginx +RUN zypper rr smt_internal +RUN zypper rr smt_internal_update +RUN zypper rr smt_internal_sdk RUN zypper rr smt_internal_server -{{/IS_SLE}} \ No newline at end of file +{{/IS_SLE}} \ No newline at end of file diff --git a/deploy/stratos-base-images/Dockerfile.stratos-ruby-build-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-ruby-build-base.tmpl index 2a23f226a8..fd1728474c 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-ruby-build-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-ruby-build-base.tmpl @@ -1,6 +1,7 @@ FROM {{BASE_IMAGE}} {{#IS_SLE}} +RUN rm -f /usr/lib/zypp/plugins/services/container-suseconnect-zypp RUN zypper addrepo -G -c '{{SMT_INTERNAL}}' smt_internal RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_UPDATE}}' smt_internal_update RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_SDK}}' smt_internal_sdk @@ -9,18 +10,20 @@ RUN zypper ref {{/IS_SLE}} RUN zypper -n ref && \ -zypper -n up && \ -zypper in -y which tar curl wget - -{{#IS_SLE}} -RUN zypper rr smt_internal -RUN zypper rr smt_internal_update -RUN zypper rr smt_internal_sdk -RUN zypper rr smt_internal_server -{{/IS_SLE}} + zypper -n up && \ + zypper in -y which tar curl wget gzip && \ + zypper clean -a && \ + rm -f /var/log/zypper.log /var/log/zypp/history WORKDIR / USER root ADD install-ruby.sh /install-ruby.sh RUN /install-ruby.sh + +{{#IS_SLE}} +RUN zypper rr smt_internal +RUN zypper rr smt_internal_update +RUN zypper rr smt_internal_sdk +RUN zypper rr smt_internal_server +{{/IS_SLE}} diff --git a/deploy/stratos-base-images/Dockerfile.stratos-ui-build-base.tmpl b/deploy/stratos-base-images/Dockerfile.stratos-ui-build-base.tmpl index db0af5208b..55cdaf6c5b 100644 --- a/deploy/stratos-base-images/Dockerfile.stratos-ui-build-base.tmpl +++ b/deploy/stratos-base-images/Dockerfile.stratos-ui-build-base.tmpl @@ -1,6 +1,7 @@ FROM {{BASE_IMAGE}} {{#IS_SLE}} +RUN rm -f /usr/lib/zypp/plugins/services/container-suseconnect-zypp RUN zypper addrepo -G -c '{{SMT_INTERNAL}}' smt_internal RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_UPDATE}}' smt_internal_update RUN zypper addrepo -t rpm-md -G -c '{{SMT_INTERNAL_SDK}}' smt_internal_sdk @@ -9,12 +10,15 @@ RUN zypper ref {{/IS_SLE}} RUN zypper -n ref && \ -zypper -n up && \ -zypper in -y wget tar git -RUN cd / && wget https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.xz && \ - tar -xf node-v8.11.2-linux-x64.tar.xz + zypper -n up && \ + zypper in -y wget tar git xz && \ + zypper clean -a && \ + rm -f /var/log/zypper.log /var/log/zypp/history + +RUN cd / && wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz && \ + tar -xf node-v12.13.0-linux-x64.tar.xz ENV USER=stratos -ENV PATH=$PATH:/node-v8.11.2-linux-x64/bin +ENV PATH=$PATH:/node-v12.13.0-linux-x64/bin RUN useradd -ms /bin/bash stratos && \ mkdir -p /home/stratos && \ chown -R stratos /home/stratos && \ @@ -24,11 +28,11 @@ RUN useradd -ms /bin/bash stratos && \ chgrp users /usr/dist {{#IS_SLE}} -RUN zypper rr smt_internal -RUN zypper rr smt_internal_update -RUN zypper rr smt_internal_sdk -RUN zypper rr smt_internal_server +RUN zypper rr smt_internal +RUN zypper rr smt_internal_update +RUN zypper rr smt_internal_sdk +RUN zypper rr smt_internal_server {{/IS_SLE}} -USER stratos -WORKDIR /home/stratos \ No newline at end of file +USER stratos +WORKDIR /home/stratos diff --git a/deploy/stratos-base-images/build-base-images.sh b/deploy/stratos-base-images/build-base-images.sh index e85a2f6061..2e58c97a4c 100755 --- a/deploy/stratos-base-images/build-base-images.sh +++ b/deploy/stratos-base-images/build-base-images.sh @@ -7,11 +7,13 @@ YELLOW="\033[93m" RESET="\033[0m" BOLD="\033[1m" -BASE_IMAGE=opensuse:42.3 +BASE_IMAGE=opensuse/leap:15.1 REGISTRY=docker.io ORGANIZATION=splatform -TAG=opensuse +TAG=leap15_1 PROG=$(basename ${BASH_SOURCE[0]}) +SQUASH_ARGS="--squash" +NO_SQUASH="stratos-base" function usage { echo "usage: $PROG [-b BASE] [-r REGISTRY] [-o ORGANIZATION] [-t TAG] [-p] [h]" @@ -115,8 +117,15 @@ build_and_push_image() { printf "${CYAN}Building image ${YELLOW}${image_name}${CYAN} with docker file ${YELLOW}${docker_file}${RESET}\n" printf "${CYAN}========= >>>>${RESET}\n" echo "" + + # We can't squash base image as its the same as the base (just re-tagged) + ARG="" + if [ "${image_name}" != "$NO_SQUASH" ]; then + ARG="${SQUASH_ARGS}" + fi set -x - docker build . -f $docker_file -t ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} + # Always remove intermediate containers + docker build --force-rm ${ARG} . -f $docker_file -t ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} if [ ! -z ${PUSH_IMAGES} ]; then docker push ${REGISTRY}/${ORGANIZATION}/${image_name}:${TAG} fi diff --git a/deploy/stratos-base-images/install-ruby.sh b/deploy/stratos-base-images/install-ruby.sh index fc8a4bd622..237851a43a 100755 --- a/deploy/stratos-base-images/install-ruby.sh +++ b/deploy/stratos-base-images/install-ruby.sh @@ -15,20 +15,11 @@ set -e if [ "$IS_SLES" == "false" ]; then zypper in -y curl jq make gcc-c++ - zypper in -y libopenssl-devel readline-devel + zypper in -y libopenssl-devel readline-devel + zypper in -y ruby-devel fi -# Build from source -mkdir -p /tmp/ruby -cd /tmp/ruby -wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.8.tar.gz -gunzip ./ruby-2.3.8.tar.gz -tar -xvf ./ruby-2.3.8.tar -cd ruby-2.3.8 - -./configure - -make -make install +# OpenSUSE Leap 15.1 will install ruby 2.5 +zypper in -y ruby ruby --version diff --git a/deploy/stratos-ui-release/config/blobs.yml b/deploy/stratos-ui-release/config/blobs.yml index f3434ed0df..fee051dbdf 100644 --- a/deploy/stratos-ui-release/config/blobs.yml +++ b/deploy/stratos-ui-release/config/blobs.yml @@ -7,8 +7,8 @@ nginx/pcre-8.40.tar.gz: size: 2065161 object_id: 44706e8c-255c-4ff3-9737-23ab55a1a214 sha: 10384eb3d411794cc15f55b9d837d3f69e35391e -golang/go1.12.4.linux-amd64.tar.gz: +golang/go1.13.4.linux-amd64.tar.gz: size: 118297141 object_id: 53346f1f-edfc-40d5-54b9-04126e05fdf3 - sha: fa74941098fcf91fdcf1a45f6275a0de3ac67f1f + sha: bd3d3df8557fbf84e9328a1327fbf0ae1367df85 diff --git a/deploy/stratos-ui-release/jobs/backend/templates/config.properties.erb b/deploy/stratos-ui-release/jobs/backend/templates/config.properties.erb index 882edde652..1dd838a55f 100644 --- a/deploy/stratos-ui-release/jobs/backend/templates/config.properties.erb +++ b/deploy/stratos-ui-release/jobs/backend/templates/config.properties.erb @@ -1,6 +1,7 @@ HTTP_CONNECTION_TIMEOUT_IN_SECS=10 HTTP_CLIENT_TIMEOUT_IN_SECS=30 HTTP_CLIENT_TIMEOUT_MUTATING_IN_SECS=120 +HTTP_CLIENT_TIMEOUT_LONGRUNNING_IN_SECS=600 SKIP_SSL_VALIDATION=<%= p('stratos_ui.backend.skip_ssl_validation') %> CONSOLE_PROXY_TLS_ADDRESS=<%= p('stratos_ui.backend.address') %>:<%= p('stratos_ui.backend.port') %> CF_CLIENT=cf diff --git a/deploy/stratos-ui-release/packages/golang/packaging b/deploy/stratos-ui-release/packages/golang/packaging index ca60a76473..f600104565 100644 --- a/deploy/stratos-ui-release/packages/golang/packaging +++ b/deploy/stratos-ui-release/packages/golang/packaging @@ -1,4 +1,4 @@ set -e -tar xzf golang/go1.12.4.linux-amd64.tar.gz +tar xzf golang/go1.13.4.linux-amd64.tar.gz cp -R go/* ${BOSH_INSTALL_TARGET} diff --git a/deploy/stratos-ui-release/packages/golang/spec b/deploy/stratos-ui-release/packages/golang/spec index 903488ceed..abf33e4195 100644 --- a/deploy/stratos-ui-release/packages/golang/spec +++ b/deploy/stratos-ui-release/packages/golang/spec @@ -2,4 +2,4 @@ name: golang files: - - golang/go1.12.4.linux-amd64.tar.gz + - golang/go1.13.4.linux-amd64.tar.gz diff --git a/deploy/tools/init-cf-for-e2e.sh b/deploy/tools/init-cf-for-e2e.sh index 6a8abc2066..a668bb6749 100755 --- a/deploy/tools/init-cf-for-e2e.sh +++ b/deploy/tools/init-cf-for-e2e.sh @@ -154,4 +154,7 @@ if [ "${SETUP_INVITE_USER}" == "true" ]; then addInviteUserUaaClient fi +# Enable docker for deploy app from docker test +cf enable-feature-flag diego_docker + echo "All done" diff --git a/docs/customizing.md b/docs/customizing.md index 2171212e3c..496b7fddb6 100644 --- a/docs/customizing.md +++ b/docs/customizing.md @@ -6,6 +6,7 @@ Stratos provides a mechanism for customization - the following customizations ar - Changing certain image assets (favorite icon, login background and logo) - Overriding styles - Adding new functionality +- Changing the initial loading indicator ## Approach @@ -50,7 +51,7 @@ In this file you can set any or all of the following variables: |---|---| |$stratos-theme|The main theme to use for Stratos| |$stratos-nav-theme|Theme to use for the side navigation panel| -$stratos-status-theme|Theme to use for displaying status in Stratos| +|$stratos-status-theme|Theme to use for displaying status in Stratos| Note that you do not have to specify all of these - defaults will be used if they are not set. @@ -72,6 +73,24 @@ $suse-app-theme: mat-light-theme($suse-app-primary, $suse-app-primary, $suse-the $stratos-theme: $suse-app-theme; ``` +#### Creating or disabling the Dark theme + +You can also change the Dark theme, if you wish, by defining the following variables: + +|Variable|Purpose| +|---|---| +|$stratos-dark-theme|The dark theme to use for Stratos| +|$stratos-dark-nav-theme|Dark theme to use for the side navigation panel| +|$stratos-dark-status-theme|Dark theme to use for displaying status in Stratos| + +Note that minimally you must supply `stratos-dark-theme` to create a dark theme. + +By default a dark theme is assumed to be available and the default will be used if not overridden. You can disable dark theme support in the UI by setting the following variable in your `custom.scss`: + +``` +$stratos-dark-theme-supported: false; +``` + ### Changing Styles We don't generally recommend modifying styles, since from version to version of Stratos, we may change the styles used slightly which can mean any modifications you made will need updating. Should you wish to do so, you can modify these in the same `custom.scss` file that is used for theming. @@ -103,4 +122,25 @@ We currently expose the following extension points in the Stratos UI: We use Decorators to annotate components to indicate that they are Stratos extensions. -See [Extensions](extensions.md) for more detail and examples of front-end extensions. \ No newline at end of file +See [Extensions](extensions.md) for more detail and examples of front-end extensions. + + +### Changing the Initial Loading Indicator + +On slower connections, it can take a few seconds to load the main Javascript resources for Stratos. + +In order to give the user some initial feedback that Stratos is loading, a loading indicator is included in the `index.html` file. This gets shown as early as possible, as soon as this main html file has loaded. Once the main code has been fetched, the view refreshes to show the application. + +A default loading indicator is provided that can be changed. To do so, create the following two files: + +- `custom-src/frontend/loading.css` - CSS styles to be included in a style block in the head of the index page +- `custom-src/frontend/loading.html` - HTML markup to be included the the index page to render the loading indicator + +The files for the default indicator can be found in the `src/frontend/packages/core/misc/custom` folder. + +An example of a different loading indicator is included with the ACME sample in `examples/custom-src/frontend`. + +The customization task will insert the appropriate CSS and HTML files into the main index.html file when it runs. + +Take a look at the template for the `index.html` file in `src/frontend/packages/core/misc/custom/index.html`. The CSS file is inserted where the marker `/** @@LOADING_CSS@@ **/` is and the HTML file where `` is. + diff --git a/docs/developers-guide.md b/docs/developers-guide.md index d59d17ff00..eb36575687 100644 --- a/docs/developers-guide.md +++ b/docs/developers-guide.md @@ -30,7 +30,7 @@ using Visual Studio Code. If you feel comfortable with these and are happy with choose a deployment method and bring one up. These deployments will bring up the entire backend, including api service and database along with a V2 frontend. * Need to make changes to the backend code? Follow the below [Backend Development](#Backend-Development) set up guide -* Install [NodeJs](https://nodejs.org) (minimum node version 8.11.3) +* Install [NodeJs](https://nodejs.org) (minimum node version 12.13.0) * Install [Angular CLI](https://cli.angular.io/) - `npm install -g @angular/cli` ### Configuration diff --git a/docs/features.md b/docs/features.md deleted file mode 100644 index 384b656ef0..0000000000 --- a/docs/features.md +++ /dev/null @@ -1,54 +0,0 @@ -# Features - -> **NOTE** This branch is a work-in-progress Angular 2.x version of Stratos. For the current Angular 1 based version see [https://github.com/cloudfoundry/stratos/tree/master](https://github.com/cloudfoundry/stratos/tree/master). This version is at an early development stage and we welcome feedback, input and contributions. This version does not currently have feature parity with the Angular 1 version specified below - see the [Development Roadmap](docs/roadmap.md) for more information. - -Stratos provides the feature set outline below. Some of these are illustrated in the [Screenshots gallery](images/screenshots/README.md). - -* Authentication - * User authentication using a configured UAA instance - * Two supported personas - Console admins and Console users - -* Internationalization - * All screen strings are localizable - * See the [i18n](i18n.md) page for more information - -* Endpoint Management1 - * The ability for an administrator to register one or more Cloud Foundry clusters to be managed through the UI. - * Ability for users to connect to Cloud Foundry clusters with their own credentials so that they receive the correct level of access to these clusters - - * Applications View - * The ability to view all applications in multiple Cloud Foundry clusters in a single view, either as a grid or list - * Ability to filter the applications shown in numerous ways - * In a specific Cloud Foundry cluster, organization or space - * Matching a specific name or part of name - * Ability to sort applications by Name, Instance Count, Disk Quota, Memory and Creation Date (default) - - * Application View - * The ability to see the detail for a specific application with a tabbed view providing detailed information: - * Summary Tab - showing key application metadata, instance information, routes and bound services - * Log Stream - providing a live stream of the application log over Web Sockets - * Services - providing the ability to bind services to an application and manage bindings. - * Variables - providing the ability to view, edit, add and delete variables - * Events - showing a paginated view of application events - * SSH - showing an embedded terminal that can be used to SSH into an application instance directly from the browser - * The ability to manage the life-cycle of the application (Stop, Start, Restart, Delete) and view the application - * The ability to rename an application change its memory allocation, scale the number of instances and manage SSH access for the application - * The ability to view CLI help that explains common CLI commands in the context of the current application - * Add Application - * Allows the user to easily create a new application - * Deploy Application - * Allows the user to perform the equivalent of a 'cf push' from the browser - pushing an application from code located in a public GitHub project. -* Cloud Foundry View - * Allows users to view Cloud Foundry metadata and quota information and drill down in the Organization and Space structures. - * Administrators can additionally view Feature Flags, Buildpacks, Stacks and Security Groups. - * Administrations can view a streaming log of the Cloud Foundry Firehose. - * Manage users and their roles - * Manage Spaces - * Create, rename and delete spaces - * View the applications, service instances and routes for a given space - * Manage SSH Access for space - * The ability to view CLI help that explains common CLI commands in the context of the current cluster, organization and space - - - -> (1): Endpoint Management is disabled by default when the Console is deployed as a Cloud Foundry application. \ No newline at end of file diff --git a/docs/images/screenshots/README.md b/docs/images/screenshots/README.md deleted file mode 100644 index c2291884fc..0000000000 --- a/docs/images/screenshots/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Stratos UI Screenshots - -## Login Page - -![Login Page](login-page.png) - - -## Application Wall - -![Application Wall](app-wall.png) - - -## Application Summary - -![Application Summary](app-summary.png) - - -## Application Log Stream - -![Application Log Stream](app-log-stream.png) - - -## Application Events - -![Application Events](app-events.png) - - -## Application SSH - -![Application SSH](app-ssh.png) - - -## Cloud Foundry Cluster Management - -![Cloud Foundry Cluster Management](cloud-foundry.png) - - -## Cloud Foundry Space Management - -![Cloud Foundry Space Management](cloud-foundry-space.png) - - -## Endpoints Dashboard - -![Endpoints Dashboard](endpoints.png) - - diff --git a/docs/images/screenshots/app-events.png b/docs/images/screenshots/app-events.png deleted file mode 100644 index a92f7dde8b..0000000000 Binary files a/docs/images/screenshots/app-events.png and /dev/null differ diff --git a/docs/images/screenshots/app-log-stream.png b/docs/images/screenshots/app-log-stream.png deleted file mode 100644 index 76f4cc9db1..0000000000 Binary files a/docs/images/screenshots/app-log-stream.png and /dev/null differ diff --git a/docs/images/screenshots/app-ssh.png b/docs/images/screenshots/app-ssh.png deleted file mode 100644 index 30edaee6c5..0000000000 Binary files a/docs/images/screenshots/app-ssh.png and /dev/null differ diff --git a/docs/images/screenshots/app-summary.png b/docs/images/screenshots/app-summary.png old mode 100755 new mode 100644 index f26f81e9dd..0a1d7be660 Binary files a/docs/images/screenshots/app-summary.png and b/docs/images/screenshots/app-summary.png differ diff --git a/docs/images/screenshots/app-wall.png b/docs/images/screenshots/app-wall.png deleted file mode 100644 index 1cc5cc772c..0000000000 Binary files a/docs/images/screenshots/app-wall.png and /dev/null differ diff --git a/docs/images/screenshots/cloud-foundry-space.png b/docs/images/screenshots/cloud-foundry-space.png deleted file mode 100644 index 8abb51066f..0000000000 Binary files a/docs/images/screenshots/cloud-foundry-space.png and /dev/null differ diff --git a/docs/images/screenshots/cloud-foundry.png b/docs/images/screenshots/cloud-foundry.png deleted file mode 100644 index 0216e85707..0000000000 Binary files a/docs/images/screenshots/cloud-foundry.png and /dev/null differ diff --git a/docs/images/screenshots/endpoints.png b/docs/images/screenshots/endpoints.png deleted file mode 100644 index ef13b9147f..0000000000 Binary files a/docs/images/screenshots/endpoints.png and /dev/null differ diff --git a/docs/images/screenshots/login-page.png b/docs/images/screenshots/login-page.png deleted file mode 100644 index 46c8ab68c6..0000000000 Binary files a/docs/images/screenshots/login-page.png and /dev/null differ diff --git a/docs/roadmap.md b/docs/roadmap.md index d76bc297c0..25c55f2698 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -1,4 +1,4 @@ -# Stratos Roadmap +# Stratos Roadmap - Out of date Last Updated: 2 July 2018 diff --git a/examples/custom-src/frontend/loading.css b/examples/custom-src/frontend/loading.css new file mode 100644 index 0000000000..9633b127db --- /dev/null +++ b/examples/custom-src/frontend/loading.css @@ -0,0 +1,38 @@ +.stratos-initial-load-spinner-container { + align-items: center; + background-color: #0D2C40; + display: flex; + justify-content: center; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; +} + +.stratos-initial-load-spinner-logo { + position: absolute; + height: 60px; +} + +.stratos-initial-load-spinner { + animation: stratos-initial-load-animate 1s infinite linear; + box-sizing: border-box; + border: 5px solid rgba(86, 107, 121, 0.45); + border-radius: 50%; + border-top-color: #00B2E2; + display: inline-block; + height: 128px; + margin: 0 auto; + width: 128px; +} + +@keyframes stratos-initial-load-animate { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(359deg); + } +} diff --git a/examples/custom-src/frontend/loading.html b/examples/custom-src/frontend/loading.html new file mode 100644 index 0000000000..cf66894e7b --- /dev/null +++ b/examples/custom-src/frontend/loading.html @@ -0,0 +1,3 @@ +
+ +
\ No newline at end of file diff --git a/examples/custom-src/frontend/sass/custom.scss b/examples/custom-src/frontend/sass/custom.scss index 308b1ef362..e3eb84c38a 100644 --- a/examples/custom-src/frontend/sass/custom.scss +++ b/examples/custom-src/frontend/sass/custom.scss @@ -2,11 +2,17 @@ // ACME Primary Material Design pallette // From http://mcg.mbitson.com/#!?mcgpalette0=%233f51b5 -$acme-primary: (50: #e0f7f0, 100: #b3ecd9, 200: #80e0c0, 300: #4dd3a7, 400: #26c994, 500: #00c081, 600: #00ba79, 700: #00b26e, 800: #00aa64, 900: #009c51, A100: #c7ffe0, A200: #94ffc4, A400: #61ffa8, A700: #47ff9a, contrast: (50: #000, 100: #000, 200: #000, 300: #000, 400: #000, 500: #fff, 600: #fff, 700: #fff, 800: #fff, 900: #fff, A100: #000, A200: #000, A400: #000, A700: #000)); +$acme-primary: (50: #e8eaf6, 100: #c5cbe9, 200: #9fa8da, 300: #7985cb, 400: #5c6bc0, 500: #3f51b5, 600: #394aae, 700: #3140a5, 800: #29379d, 900: #1b278d, A100: #c6cbff, A200: #939dff, A400: #606eff, A700: #4757ff, contrast: ( 50: #000000, 100: #000000, 200: #000000, 300: #000000, 400: #ffffff, 500: #ffffff, 600: #ffffff, 700: #ffffff, 800: #ffffff, 900: #ffffff, A100: #000000, A200: #000000, A400: #ffffff, A700: #ffffff, )); $mat-red: ( 50: #ffebee, 100: #ffcdd2, 200: #ef9a9a, 300: #e57373, 400: #ef5350, 500: #f44336, 600: #e53935, 700: #d32f2f, 800: #c62828, 900: #b71c1c, A100: #ff8a80, A200: #ff5252, A400: #ff1744, A700: #d50000, contrast: ( 50: $black-87-opacity, 100: $black-87-opacity, 200: $black-87-opacity, 300: $black-87-opacity, 400: $black-87-opacity, 500: white, 600: white, 700: white, 800: $white-87-opacity, 900: $white-87-opacity, A100: $black-87-opacity, A200: white, A400: white, A700: white, )); +// Common $acme-theme-primary: mat-palette($acme-primary); $acme-theme-warn: mat-palette($mat-red); + +// Dark Theme +$stratos-dark-theme: mat-dark-theme($acme-theme-primary, $acme-theme-primary, $acme-theme-warn); + +// Default Theme $stratos-theme: mat-light-theme($acme-theme-primary, $acme-theme-primary, $acme-theme-warn); @import 'custom/acme'; diff --git a/examples/custom-src/frontend/sass/custom/acme.scss b/examples/custom-src/frontend/sass/custom/acme.scss index d153c4bc36..75794ebb6e 100644 --- a/examples/custom-src/frontend/sass/custom/acme.scss +++ b/examples/custom-src/frontend/sass/custom/acme.scss @@ -11,7 +11,7 @@ $acme-blue: #073155; $acme-side-nav: $acme-secondary; $acme-side-nav-active: #003358; -.stratos { +body.stratos { app-page-subheader { .page-subheader { background-color: #fff; diff --git a/manifest.yml b/manifest.yml index 9d229edd2b..9d22373b44 100644 --- a/manifest.yml +++ b/manifest.yml @@ -4,7 +4,7 @@ applications: disk_quota: 1024M host: console timeout: 180 - buildpack: https://github.com/cloudfoundry-incubator/stratos-buildpack#v2.4 + buildpack: https://github.com/cloudfoundry-incubator/stratos-buildpack#v3 health-check-type: port # env: # Override CF API endpoint URL inferred from VCAP_APPLICATION env @@ -13,6 +13,8 @@ applications: # CF_API_FORCE_SECURE: true # Turn on backend debugging # LOG_LEVEL: debug +# Turn on staging debugging in stratos-buildpack +# STRATOS_BP_DEBUG: true #Remove line to turn off debugging # User provided services can also be used to set environment properties: # env: diff --git a/package-lock.json b/package-lock.json index ce5b2d62f2..a548d0cc34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "stratos", - "version": "2.6.0", + "version": "3.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6f65152326..a32334580c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "stratos", - "version": "2.6.0", + "version": "3.0.0", "description": "Stratos Console", "main": "index.js", "scripts": { @@ -20,17 +20,19 @@ "start-dev-high-mem": "npm run customize && node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng serve --aot=false", "start-prod-high-mem": "npm run customize && node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng serve --prod", "start-dev": "ng serve --aot=false", - "test": "run-s test-frontend:* --continue-on-error", - "test-frontend:core": "ng test core --code-coverage --watch=false", - "test-frontend:store": "ng test store --code-coverage --watch=false", - "test-frontend:cloud-foundry": "ng test cloud-foundry --code-coverage --watch=false", - "test-frontend:cf-autoscaler": "ng test cf-autoscaler --code-coverage --watch=false", + "test-clean": "./build/clean-test-reports.sh", + "test-reports": "./build/show-test-reports.sh", + "test": "npm run test-clean && run-s test-frontend:* --continue-on-error || true && npm run test-reports", + "test-frontend:core": "NG_TEST_SUITE=core ng test core --code-coverage --watch=false", + "test-frontend:store": "NG_TEST_SUITE=store ng test store --code-coverage --watch=false", + "test-frontend:cloud-foundry": "NG_TEST_SUITE=cloud-foundry ng test cloud-foundry --code-coverage --watch=false", + "test-frontend:cf-autoscaler": "NG_TEST_SUITE=autoscaler ng test cf-autoscaler --code-coverage --watch=false", "posttest": "istanbul report json && node build/combine-coverage.js", "codecov": "codecov -f coverage/coverage-final.json", "lint": "ng lint --format stylish", "sass-lint": "sass-lint -v", "e2e": "ng e2e", - "e2e-dev": "STRATOS_E2E_BASE_URL=https://127.0.0.1:4300 ng e2e --dev-server-target= --base-url=https://127.0.0.1:4300", + "e2e-dev": "STRATOS_E2E_BASE_URL=https://127.0.0.1:4200 ng e2e --dev-server-target= --base-url=https://127.0.0.1:4200", "e2e-local": "STRATOS_E2E_BASE_URL=https://127.0.0.1 ng e2e --dev-server-target= --base-url=https://127.0.0.1", "headless-e2e": "xvfb-run --server-args='-screen 0 1920x1080x24' protractor ./protractor.conf.js", "climate": "codeclimate analyze $(git diff --name-only master)", @@ -92,7 +94,7 @@ "@nrwl/angular": "8.5.2" }, "engines": { - "node": "8.11.2" + "node": "12.13.0" }, "devDependencies": { "@angular-devkit/build-angular": "~0.803.7", @@ -149,4 +151,4 @@ "typescript": "<3.6.0", "@nrwl/workspace": "8.5.2" } -} +} \ No newline at end of file diff --git a/protractor.conf.js b/protractor.conf.js index d6ac473d8c..9f1e937efc 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -100,11 +100,16 @@ const coreSuite = globby.sync([ './src/test-e2e/metrics/metrics-registration-e2e.spec.ts', ]) +const autoscalerSuite = globby.sync([ + './src/test-e2e/application/application-autoscaler-e2e.spec.ts', +]) + const fullMinusOtherSuites = globby.sync([ ...fullSuite, ...longSuite.map(file => '!' + file), ...manageUsersSuite.map(file => '!' + file), ...coreSuite.map(file => '!' + file), + ...autoscalerSuite.map(file => '!' + file), ]) const config = { @@ -131,6 +136,10 @@ const config = { ...coreSuite, ...excludeTests ]), + autoscaler: globby.sync([ + ...autoscalerSuite, + ...excludeTests + ]), fullMinusOtherSuites: globby.sync([ ...fullMinusOtherSuites, ...excludeTests diff --git a/src/frontend/packages/cf-autoscaler/src/features/autoscaler-tab-extension/autoscaler-tab-extension.component.html b/src/frontend/packages/cf-autoscaler/src/features/autoscaler-tab-extension/autoscaler-tab-extension.component.html index 413228ea3d..8338842097 100644 --- a/src/frontend/packages/cf-autoscaler/src/features/autoscaler-tab-extension/autoscaler-tab-extension.component.html +++ b/src/frontend/packages/cf-autoscaler/src/features/autoscaler-tab-extension/autoscaler-tab-extension.component.html @@ -59,7 +59,7 @@
- + Scaling Rules @@ -91,7 +91,7 @@ - + @@ -102,7 +102,7 @@ - -
+ \ No newline at end of file diff --git a/src/frontend/packages/core/src/shared/components/list/list.component.spec.ts b/src/frontend/packages/core/src/shared/components/list/list.component.spec.ts index ea180f76a6..ab5406c996 100644 --- a/src/frontend/packages/core/src/shared/components/list/list.component.spec.ts +++ b/src/frontend/packages/core/src/shared/components/list/list.component.spec.ts @@ -6,6 +6,7 @@ import { BehaviorSubject, of as observableOf } from 'rxjs'; import { switchMap } from 'rxjs/operators'; import { ListView } from '../../../../../store/src/actions/list.actions'; +import { GeneralAppState } from '../../../../../store/src/app-state'; import { APIResource } from '../../../../../store/src/types/api.types'; import { EndpointModel } from '../../../../../store/src/types/endpoint.types'; import { CoreTestingModule } from '../../../../test-framework/core-test.modules'; @@ -20,7 +21,6 @@ import { EndpointListHelper } from './list-types/endpoint/endpoint-list.helpers' import { EndpointsListConfigService } from './list-types/endpoint/endpoints-list-config.service'; import { ListComponent } from './list.component'; import { ListConfig, ListViewTypes } from './list.component.types'; -import { InternalAppState, GeneralAppState } from '../../../../../store/src/app-state'; class MockedNgZone { run = fn => fn(); diff --git a/src/frontend/packages/core/src/shared/components/list/list.component.theme.scss b/src/frontend/packages/core/src/shared/components/list/list.component.theme.scss index 6c51012b83..c7e86ff821 100644 --- a/src/frontend/packages/core/src/shared/components/list/list.component.theme.scss +++ b/src/frontend/packages/core/src/shared/components/list/list.component.theme.scss @@ -4,10 +4,19 @@ $primary: map-get($theme, primary); $foreground-colors: map-get($theme, foreground); $background-colors: map-get($theme, background); + $is-dark: map-get($theme, is-dark); + + $header-selected-color: #fff; + @if $is-dark == true { + $header-selected-color: lighten(mat-color($background-colors, background), 20%); + } @else { + $header-selected-color: mat-color($primary, 50); + } + .list-component { &__header { &--selected { - background-color: mat-color($primary, 50); + background-color: $header-selected-color; } &__right, &__left--multi-filters { diff --git a/src/frontend/packages/core/src/shared/components/list/list.component.ts b/src/frontend/packages/core/src/shared/components/list/list.component.ts index f84a300d18..55b963f190 100644 --- a/src/frontend/packages/core/src/shared/components/list/list.component.ts +++ b/src/frontend/packages/core/src/shared/components/list/list.component.ts @@ -104,6 +104,8 @@ export class ListComponent implements OnInit, OnChanges, OnDestroy, AfterView @Input() addForm: NgForm; + @Input() customFilters: TemplateRef; + @Input() noEntries: TemplateRef; @Input() noEntriesForCurrentFilter: TemplateRef; diff --git a/src/frontend/packages/core/src/shared/components/list/simple-list/simple-list.component.spec.ts b/src/frontend/packages/core/src/shared/components/list/simple-list/simple-list.component.spec.ts index 3de9cf3725..67c87f35d7 100644 --- a/src/frontend/packages/core/src/shared/components/list/simple-list/simple-list.component.spec.ts +++ b/src/frontend/packages/core/src/shared/components/list/simple-list/simple-list.component.spec.ts @@ -9,6 +9,7 @@ import { StratosEndpointExtensionDefinition } from '../../../../core/entity-cata import { EntitySchema } from '../../../../../../store/src/helpers/entity-schema'; import { EntityCatalogueTestModule, TEST_CATALOGUE_ENTITIES } from '../../../../core/entity-catalogue-test.module'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { RouterTestingModule } from '@angular/router/testing'; describe('SimpleListComponent', () => { let component: SimpleListComponent; @@ -30,20 +31,20 @@ describe('SimpleListComponent', () => { schema: new EntitySchema('key', endpoint.type), endpoint, }, { - entityBuilder: { - getLines: () => ([]), - getMetadata: () => ({ name: 'test' }), - getGuid: () => 'test', - }, - actionBuilders: { - getMultiple: () => ({ - type: 'testAction', - paginationKey: 'testPagKey', - entityType: ceType, - endpointType: endpoint.type - }) - } - }); + entityBuilder: { + getLines: () => ([]), + getMetadata: () => ({ name: 'test' }), + getGuid: () => 'test', + }, + actionBuilders: { + getMultiple: () => ({ + type: 'testAction', + paginationKey: 'testPagKey', + entityType: ceType, + endpointType: endpoint.type + }) + } + }); beforeEach(async(() => { TestBed.configureTestingModule({ @@ -51,6 +52,8 @@ describe('SimpleListComponent', () => { SharedModule, CoreModule, AppReducersModule, + RouterTestingModule, + SharedModule, NoopAnimationsModule, { ngModule: EntityCatalogueTestModule, diff --git a/src/frontend/packages/core/src/shared/components/page-header/page-header-events/page-header-events.component.ts b/src/frontend/packages/core/src/shared/components/page-header/page-header-events/page-header-events.component.ts index 5deaff7a96..6020174c55 100644 --- a/src/frontend/packages/core/src/shared/components/page-header/page-header-events/page-header-events.component.ts +++ b/src/frontend/packages/core/src/shared/components/page-header/page-header-events/page-header-events.component.ts @@ -16,15 +16,15 @@ import { endpointEventKey, GlobalEventService, IGlobalEvent } from '../../../glo animations: [ trigger( 'eventEnter', [ - transition(':enter', [ - style({ opacity: 0 }), - animate('250ms ease-in', style({ opacity: 1 })) - ]), - transition(':leave', [ - style({ opacity: 1 }), - animate('250ms ease-out', style({ opacity: 0 })) - ]) - ] + transition(':enter', [ + style({ opacity: 0 }), + animate('250ms ease-in', style({ opacity: 1 })) + ]), + transition(':leave', [ + style({ opacity: 1 }), + animate('250ms ease-out', style({ opacity: 0 })) + ]) + ] ) ] }) @@ -89,7 +89,7 @@ export class PageHeaderEventsComponent implements OnInit { const endpointErrorKeys = events.reduce((endpointIds, event) => { return endpointIds.add(this.getEndpointId(event)); }, new Set()); - return endpointErrorKeys.size > 1 ? `We've been having trouble communicating with multiple endpoints` : events[0].message; + return endpointErrorKeys.size > 1 ? `There are multiple endpoints with errors` : events[0].message; }), share() ); diff --git a/src/frontend/packages/core/src/shared/components/page-header/page-header.component.theme.scss b/src/frontend/packages/core/src/shared/components/page-header/page-header.component.theme.scss index 736c50de6b..65ed55245f 100644 --- a/src/frontend/packages/core/src/shared/components/page-header/page-header.component.theme.scss +++ b/src/frontend/packages/core/src/shared/components/page-header/page-header.component.theme.scss @@ -7,6 +7,7 @@ $error: map-get($status-colors, danger); $warning: map-get($status-colors, warning); $info: lighten($primmary-color, 20%); + $subdued: map-get($app-theme, subdued-color); .page-header { &__warning-count { background-color: mat-color($primary); @@ -18,6 +19,12 @@ &__menu-separator { background-color: mat-color($foreground, divider); } + &__menu-inner { + color: mat-contrast($primary, 500); + } + &__history { + color: $subdued; + } &__underflow { background-color: mat-color($primary); } diff --git a/src/frontend/packages/core/src/shared/components/page-header/page-header.component.ts b/src/frontend/packages/core/src/shared/components/page-header/page-header.component.ts index af846d0efc..e929cfa0af 100644 --- a/src/frontend/packages/core/src/shared/components/page-header/page-header.component.ts +++ b/src/frontend/packages/core/src/shared/components/page-header/page-header.component.ts @@ -165,7 +165,7 @@ export class PageHeaderComponent implements OnDestroy, AfterViewInit { this.actionsKey = this.route.snapshot.data ? this.route.snapshot.data.extensionsActionsKey : null; this.breadcrumbKey = route.snapshot.queryParams[BREADCRUMB_URL_PARAM] || null; this.username$ = store.select(s => s.auth).pipe( - map((auth: AuthState) => auth && auth.sessionData ? auth.sessionData.user.name : 'Unknown') + map((auth: AuthState) => auth && auth.sessionData && auth.sessionData.user ? auth.sessionData.user.name : 'Unknown') ); this.userNameFirstLetter$ = this.username$.pipe( map(name => name[0].toLocaleUpperCase()) diff --git a/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.html b/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.html new file mode 100644 index 0000000000..33cc2b90cf --- /dev/null +++ b/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.html @@ -0,0 +1,14 @@ +
+
+ {{lo.type | titlecase }} + + + + + + ({{lo.description}}) +
+
{{ lo.updated_at | date:'medium' }}
+
\ No newline at end of file diff --git a/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.scss b/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.scss new file mode 100644 index 0000000000..4445e48872 --- /dev/null +++ b/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.scss @@ -0,0 +1,21 @@ +.last-op { + &--row1 { + align-items: center; + display: flex; + justify-content: flex-start; + padding-bottom: 5px; + } + &--item { + padding-right: 5px; + } +} + +.align-right { + .last-op--row1 { + justify-content: flex-end; + } + .last-op--item { + padding-left: 5px; + padding-right: 0; + } +} diff --git a/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.spec.ts b/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.spec.ts new file mode 100644 index 0000000000..08d78f240a --- /dev/null +++ b/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.spec.ts @@ -0,0 +1,51 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BaseTestModulesNoShared } from '../../../../test-framework/core-test.helper'; +import { BooleanIndicatorComponent } from '../boolean-indicator/boolean-indicator.component'; +import { ServiceInstanceLastOpComponent } from './service-instance-last-op.component'; + +describe('ServiceInstanceLastOpComponent', () => { + let component: ServiceInstanceLastOpComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ + ServiceInstanceLastOpComponent, + BooleanIndicatorComponent, + ], + imports: [...BaseTestModulesNoShared] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ServiceInstanceLastOpComponent); + component = fixture.componentInstance; + component.serviceInstance = { + entity: { + service_plan_guid: '', + space_guid: '', + dashboard_url: '', + type: '', + service_guid: '', + service_plan_url: '', + service_bindings_url: '', + service_keys_url: '', + routes_url: '', + service_url: '', + }, + metadata: { + created_at: '', + guid: '', + updated_at: '', + url: '' + } + }; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.ts b/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.ts new file mode 100644 index 0000000000..ba147899fb --- /dev/null +++ b/src/frontend/packages/core/src/shared/components/service-instance-last-op/service-instance-last-op.component.ts @@ -0,0 +1,17 @@ +import { Component, Input } from '@angular/core'; + +import { APIResource } from '../../../../../store/src/types/api.types'; +import { IServiceInstance } from '../../../core/cf-api-svc.types'; + +// TODO: Move CF code to CF Module #3769 + +@Component({ + selector: 'app-service-instance-last-op', + templateUrl: './service-instance-last-op.component.html', + styleUrls: ['./service-instance-last-op.component.scss'] +}) +export class ServiceInstanceLastOpComponent { + @Input() serviceInstance: APIResource; + @Input() alignRight = false; + +} diff --git a/src/frontend/packages/core/src/shared/components/ssh-viewer/ssh-viewer.component.ts b/src/frontend/packages/core/src/shared/components/ssh-viewer/ssh-viewer.component.ts index 5b9a10a535..b2162e00b7 100644 --- a/src/frontend/packages/core/src/shared/components/ssh-viewer/ssh-viewer.component.ts +++ b/src/frontend/packages/core/src/shared/components/ssh-viewer/ssh-viewer.component.ts @@ -1,20 +1,11 @@ -import { - ChangeDetectorRef, - Component, - ElementRef, - Input, - OnDestroy, - OnInit, - ViewChild, -} from '@angular/core'; - -// Import Xterm and Xterm Fit Addon +import { ChangeDetectorRef, Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core'; +import { Observable, Subject, Subscription } from 'rxjs'; import { Terminal } from 'xterm'; import { FitAddon } from 'xterm-addon-fit'; -import { Observable, Subject, Subscription } from 'rxjs'; import { EventWatcherService } from '../../../core/event-watcher/event-watcher.service'; +// Import Xterm and Xterm Fit Addon @Component({ selector: 'app-ssh-viewer', templateUrl: './ssh-viewer.component.html', @@ -56,7 +47,6 @@ export class SshViewerComponent implements OnInit, OnDestroy { this.resizeSubscription = this.resizer.resizeEvent$.subscribe(r => { if (this.xtermFitAddon) { - console.log('Window was resized'); this.resize(); } }); @@ -76,7 +66,7 @@ export class SshViewerComponent implements OnInit, OnDestroy { this.xterm = new Terminal(); this.xterm.loadAddon(this.xtermFitAddon); this.xterm.open(this.container.nativeElement); -// this.xtermFitAddon.fit(); + // this.xtermFitAddon.fit(); this.resize(); this.xterm.onKey(e => { diff --git a/src/frontend/packages/core/src/shared/components/stepper/steppers/steppers.component.scss b/src/frontend/packages/core/src/shared/components/stepper/steppers/steppers.component.scss index c899e137ca..45282e2dc8 100644 --- a/src/frontend/packages/core/src/shared/components/stepper/steppers/steppers.component.scss +++ b/src/frontend/packages/core/src/shared/components/stepper/steppers/steppers.component.scss @@ -67,6 +67,7 @@ } &__wrapper { display: flex; + flex: 1; min-height: 100%; } &__navigation { diff --git a/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.html b/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.html new file mode 100644 index 0000000000..155b4b7885 --- /dev/null +++ b/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.html @@ -0,0 +1,13 @@ +
+
+ {{ tile.graphic.matIcon }} + + + +
+
+

{{ tile.label }}

+
+
{{ tile.description }}
+
diff --git a/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.scss b/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.scss new file mode 100644 index 0000000000..68db7e8382 --- /dev/null +++ b/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.scss @@ -0,0 +1,74 @@ +.tile-selector { + $tile-height: 200px; + border-radius: 3px; + cursor: pointer; + display: flex; + flex-direction: column; + height: $tile-height; + opacity: .5; + transition: transform .2s ease; + user-select: none; + width: 100%; + + &__taller { + height: 260px; + } + &:hover { + opacity: 1; + transform: scale(1.02); + } + &__more { + align-items: center; + cursor: pointer; + display: flex; + font-size: 16px; + height: $tile-height; + justify-content: center; + } + + &:active { + transform: scale(.98); + } + + &__active { + opacity: 1; + } + + &__header { + align-items: center; + display: flex; + flex: 2; + justify-content: center; + width: 100%; + + img { + height: 100px; + } + } + + &__description { + flex: 0; + padding: 10px; + text-align: center; + } + + &__content { + display: flex; + flex: 0; + flex-direction: column; + justify-content: center; + opacity: .8; + padding: 0 1em; + position: relative; + text-align: center; + word-wrap: break-word; + } + + $icon-size: 80px; + &__icon { + font-size: $icon-size; + height: $icon-size; + opacity: .6; + width: $icon-size; + } +} diff --git a/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.spec.ts b/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.spec.ts new file mode 100644 index 0000000000..4032667bb6 --- /dev/null +++ b/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.spec.ts @@ -0,0 +1,30 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TileSelectorTileComponent } from './tile-selector-tile.component'; +import { ITileImgConfig } from '../tile/tile-selector.types'; +import { MDAppModule } from '../../../core/md.module'; + +describe('TileSelectorTileComponent', () => { + let component: TileSelectorTileComponent; + let fixture: ComponentFixture>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + imports: [ + MDAppModule + ], + declarations: [ TileSelectorTileComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(TileSelectorTileComponent) as ComponentFixture>; + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.theme.scss b/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.theme.scss similarity index 100% rename from src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.theme.scss rename to src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.theme.scss diff --git a/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.ts b/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.ts new file mode 100644 index 0000000000..f4f6a69ec7 --- /dev/null +++ b/src/frontend/packages/core/src/shared/components/tile-selector-tile/tile-selector-tile.component.ts @@ -0,0 +1,21 @@ +import { Component, Input, EventEmitter, Output } from '@angular/core'; +import { ITileConfig, ITileIconConfig, ITileImgConfig, ITileData } from '../tile/tile-selector.types'; + +@Component({ + selector: 'app-tile-selector-tile', + templateUrl: './tile-selector-tile.component.html', + styleUrls: ['./tile-selector-tile.component.scss'] +}) +export class TileSelectorTileComponent { + + @Input() tile: ITileConfig; + + @Input() active: boolean; + + @Output() tileSelect = new EventEmitter(); + + public onClick(tile: ITileConfig) { + this.tileSelect.emit(tile); + } + +} diff --git a/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.html b/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.html index 2afc52b34b..b3b0112dae 100644 --- a/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.html +++ b/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.html @@ -11,18 +11,7 @@ -
-
- {{ tile.graphic.matIcon }} - - - -
-
-

{{ tile.label }}

-
-
+ +
\ No newline at end of file diff --git a/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.scss b/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.scss index a45342aa65..c5a5ce6951 100644 --- a/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.scss +++ b/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.scss @@ -23,69 +23,3 @@ grid-template-columns: repeat(5, 1fr); } } - -.tile-selector { - $tile-height: 200px; - border-radius: 3px; - cursor: pointer; - display: flex; - flex-direction: column; - height: $tile-height; - opacity: .5; - transition: transform .2s ease; - user-select: none; - width: 100%; - &:hover { - opacity: 1; - transform: scale(1.02); - } - &__more { - align-items: center; - cursor: pointer; - display: flex; - font-size: 16px; - height: $tile-height; - justify-content: center; - } - - &:active { - transform: scale(.98); - } - - &__selected, - &__active { - opacity: 1; - } - - &__header { - align-items: center; - display: flex; - flex: 2; - justify-content: center; - width: 100%; - - img { - height: 100px; - } - } - - &__content { - display: flex; - flex: 1; - flex-direction: column; - justify-content: center; - opacity: .8; - padding: 0 1em; - position: relative; - text-align: center; - word-wrap: break-word; - } - - $icon-size: 80px; - &__icon { - font-size: $icon-size; - height: $icon-size; - opacity: .6; - width: $icon-size; - } -} diff --git a/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.spec.ts b/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.spec.ts index f4bb302e38..08d6648f88 100644 --- a/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.spec.ts +++ b/src/frontend/packages/core/src/shared/components/tile-selector/tile-selector.component.spec.ts @@ -1,7 +1,8 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { MDAppModule } from '../../../core/md.module'; import { TileSelectorComponent } from './tile-selector.component'; -import { MDAppModule } from '../../../core/md.module'; +import { TileSelectorTileComponent } from './../tile-selector-tile/tile-selector-tile.component'; describe('TileSelectorComponent', () => { let component: TileSelectorComponent; @@ -12,7 +13,7 @@ describe('TileSelectorComponent', () => { imports: [ MDAppModule ], - declarations: [TileSelectorComponent] + declarations: [TileSelectorComponent, TileSelectorTileComponent] }) .compileComponents(); })); diff --git a/src/frontend/packages/core/src/shared/components/tile/tile-selector.types.ts b/src/frontend/packages/core/src/shared/components/tile/tile-selector.types.ts index 23cf92df99..d443c03fcb 100644 --- a/src/frontend/packages/core/src/shared/components/tile/tile-selector.types.ts +++ b/src/frontend/packages/core/src/shared/components/tile/tile-selector.types.ts @@ -9,12 +9,13 @@ export interface ITileImgConfig { export type ITileGraphic = ITileIconConfig | ITileImgConfig; -export class ITileConfig { +export class ITileConfig { constructor( public label: string | number, - public graphic: ITileGraphic, + public graphic: Y, public data?: T, - public hidden = false + public hidden = false, + public description = '' ) { } } diff --git a/src/frontend/packages/core/src/shared/data-services/cf-user.service.ts b/src/frontend/packages/core/src/shared/data-services/cf-user.service.ts deleted file mode 100644 index 01ff83495a..0000000000 --- a/src/frontend/packages/core/src/shared/data-services/cf-user.service.ts +++ /dev/null @@ -1,401 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Store } from '@ngrx/store'; -import { Observable, of as observableOf } from 'rxjs'; -import { filter, first, map, publishReplay, refCount, switchMap } from 'rxjs/operators'; - -import { CF_ENDPOINT_TYPE } from '../../../../cloud-foundry/cf-types'; -import { CFAppState } from '../../../../cloud-foundry/src/cf-app-state'; -import { cfEntityFactory } from '../../../../cloud-foundry/src/cf-entity-factory'; -import { cfUserEntityType, organizationEntityType, spaceEntityType } from '../../../../cloud-foundry/src/cf-entity-types'; -import { createEntityRelationPaginationKey } from '../../../../cloud-foundry/src/entity-relations/entity-relations.types'; -import { ActiveRouteCfOrgSpace } from '../../../../cloud-foundry/src/features/cloud-foundry/cf-page.types'; -import { - fetchTotalResults, - filterEntitiesByGuid, - isOrgAuditor, - isOrgBillingManager, - isOrgManager, - isOrgUser, - isSpaceAuditor, - isSpaceDeveloper, - isSpaceManager, - waitForCFPermissions, -} from '../../../../cloud-foundry/src/features/cloud-foundry/cf.helpers'; -import { getCurrentUserCFGlobalStates } from '../../../../cloud-foundry/src/store/selectors/cf-current-user-role.selectors'; -import { - CfUser, - createUserRoleInOrg, - createUserRoleInSpace, - IUserPermissionInOrg, - IUserPermissionInSpace, - UserRoleInOrg, - UserRoleInSpace, -} from '../../../../cloud-foundry/src/store/types/user.types'; -import { - getPaginationObservables, - PaginationObservables, -} from '../../../../store/src/reducers/pagination-reducer/pagination-reducer.helper'; -import { APIResource } from '../../../../store/src/types/api.types'; -import { PaginatedAction } from '../../../../store/src/types/pagination.types'; -import { IOrganization, ISpace } from '../../core/cf-api.types'; -import { entityCatalogue } from '../../core/entity-catalogue/entity-catalogue.service'; -import { EntityServiceFactory } from '../../core/entity-service-factory.service'; -import { PaginationMonitorFactory } from '../monitors/pagination-monitor.factory'; - -@Injectable() -export class CfUserService { - private allUsers$: Observable>>; - - private userCatalogueEntity = entityCatalogue.getEntity(CF_ENDPOINT_TYPE, cfUserEntityType); - - users: { [guid: string]: Observable> } = {}; - - constructor( - private store: Store, - public paginationMonitorFactory: PaginationMonitorFactory, - public activeRouteCfOrgSpace: ActiveRouteCfOrgSpace, - private entityServiceFactory: EntityServiceFactory, - ) { } - - getUsers = (endpointGuid: string, filterEmpty = true): Observable[]> => - this.getAllUsers(endpointGuid).pipe( - switchMap(paginationObservables => paginationObservables.entities$), - publishReplay(1), - refCount(), - filter(p => { - return filterEmpty ? !!p : true; - }), - map(users => { - return filterEmpty ? users.filter(p => p.entity.cfGuid === endpointGuid) : null; - }), - filter(p => { - return filterEmpty ? p.length > 0 : true; - }), - ) - - getUser = (endpointGuid: string, userGuid: string): Observable => { - // Attempt to get user from all users first, this better covers case when a non-admin can't his /users - return this.getUsers(endpointGuid, false).pipe( - switchMap(users => { - // `users` will be null if we can't handle the fetch (connected as non-admin with lots of orgs). For those case fall back on the - // user entity. Why not just use the user entity? There's a lot of these requests.. in parallel if we're fetching a list of users - // at the same time - if (users) { - return observableOf(users.filter(o => o.metadata.guid === userGuid)[0]); - } - if (!this.users[userGuid]) { - const actionBuilder = this.userCatalogueEntity.actionOrchestrator.getActionBuilder('get'); - const getUserAction = actionBuilder(endpointGuid, userGuid); - this.users[userGuid] = this.entityServiceFactory.create>( - userGuid, - getUserAction - ).waitForEntity$.pipe( - filter(entity => !!entity), - map(entity => entity.entity) - ); - } - return this.users[userGuid]; - })); - } - - private parseOrgRole( - user: CfUser, - processedOrgs: Set, - orgsToProcess: APIResource[], - result: IUserPermissionInOrg[]) { - orgsToProcess.forEach(org => { - const orgGuid = org.entity.guid; - if (processedOrgs.has(orgGuid)) { - return; - } - result.push({ - name: org.entity.name as string, - orgGuid: org.metadata.guid, - permissions: createUserRoleInOrg( - isOrgManager(user, orgGuid), - isOrgBillingManager(user, orgGuid), - isOrgAuditor(user, orgGuid), - isOrgUser(user, orgGuid) - ) - }); - processedOrgs.add(orgGuid); - }); - } - - getOrgRolesFromUser(user: CfUser, org?: APIResource): IUserPermissionInOrg[] { - const res: IUserPermissionInOrg[] = []; - const orgGuids = new Set(); - if (org) { - // Discover user's roles in this specific org - this.parseOrgRole(user, orgGuids, [org], res); - } else { - // Discover user's roles for each org via each of the 4 org role types - this.parseOrgRole(user, orgGuids, user.organizations || [], res); - this.parseOrgRole(user, orgGuids, user.audited_organizations || [], res); - this.parseOrgRole(user, orgGuids, user.billing_managed_organizations || [], res); - this.parseOrgRole(user, orgGuids, user.managed_organizations || [], res); - } - return res; - } - - private parseSpaceRole( - user: CfUser, - processedSpaces: Set, - spacesToProcess: APIResource[], - result: IUserPermissionInSpace[]) { - spacesToProcess.forEach(space => { - const spaceGuid = space.entity.guid; - if (processedSpaces.has(spaceGuid)) { - return; - } - result.push({ - name: space.entity.name as string, - orgGuid: space.entity.organization_guid, - orgName: null, - spaceGuid, - permissions: createUserRoleInSpace( - isSpaceManager(user, spaceGuid), - isSpaceAuditor(user, spaceGuid), - isSpaceDeveloper(user, spaceGuid) - ) - }); - processedSpaces.add(spaceGuid); - }); - } - - /** - * Get the space roles for a user - * @param spaces Only fetch roles for these specific spaces. If missing fetch roles for all spaces - */ - getSpaceRolesFromUser(user: CfUser, spaces?: APIResource[]): IUserPermissionInSpace[] { - const res: IUserPermissionInSpace[] = []; - const spaceGuids = new Set(); - if (spaces) { - // Discover user's roles in this specific space - this.parseSpaceRole(user, spaceGuids, spaces, res); - } else { - // User might have unique spaces in any of the space role collections, so loop through each - this.parseSpaceRole(user, spaceGuids, user.spaces || [], res); - this.parseSpaceRole(user, spaceGuids, user.audited_spaces || [], res); - this.parseSpaceRole(user, spaceGuids, user.managed_spaces || [], res); - } - return res; - } - - private populatedArray(array?: Array): boolean { - return array && !!array.length; - } - - /** - * Helper to determine if user has roles other than Org User - */ - hasRolesInOrg(user: CfUser, orgGuid: string, excludeOrgUser = true): boolean { - - // Check org roles - if (this.populatedArray(filterEntitiesByGuid(orgGuid, user.audited_organizations)) || - this.populatedArray(filterEntitiesByGuid(orgGuid, user.billing_managed_organizations)) || - this.populatedArray(filterEntitiesByGuid(orgGuid, user.managed_organizations)) || - (!excludeOrgUser && this.populatedArray(filterEntitiesByGuid(orgGuid, user.organizations)))) { - return true; - } - - // Check space roles - return this.hasSpaceRolesInOrg(user, orgGuid); - } - - private filterByOrg(orgGuid: string, array?: Array>): Array> { - return array ? array.filter(space => space.entity.organization_guid === orgGuid) : null; - } - - /** - * Helper to determine if user has space roles in an organization - */ - hasSpaceRolesInOrg(user: CfUser, orgGuid: string): boolean { - return this.populatedArray(this.filterByOrg(orgGuid, user.audited_spaces)) || - this.populatedArray(this.filterByOrg(orgGuid, user.managed_spaces)) || - this.populatedArray(this.filterByOrg(orgGuid, user.spaces)); - } - - hasSpaceRoles(user: CfUser, spaceGuid: string): boolean { - return this.populatedArray(filterEntitiesByGuid(spaceGuid, user.audited_spaces)) || - this.populatedArray(filterEntitiesByGuid(spaceGuid, user.managed_spaces)) || - this.populatedArray(filterEntitiesByGuid(spaceGuid, user.spaces)); - } - - getUserRoleInOrg = ( - userGuid: string, - orgGuid: string, - cfGuid: string - ): Observable => { - return this.getUser(cfGuid, userGuid).pipe( - filter(user => !!user && !!user.metadata), - map(user => { - return createUserRoleInOrg( - isOrgManager(user.entity, orgGuid), - isOrgBillingManager(user.entity, orgGuid), - isOrgAuditor(user.entity, orgGuid), - isOrgUser(user.entity, orgGuid) - ); - }), - first() - ); - } - - getUserRoleInSpace = ( - userGuid: string, - spaceGuid: string, - cfGuid: string - ): Observable => { - return this.getUser(cfGuid, userGuid).pipe( - map(user => { - return createUserRoleInSpace( - isSpaceManager(user.entity, spaceGuid), - isSpaceAuditor(user.entity, spaceGuid), - isSpaceDeveloper(user.entity, spaceGuid) - ); - }) - ); - } - - fetchTotalUsers(cfGuid: string, orgGuid?: string, spaceGuid?: string): Observable { - return this.isConnectedUserAdmin(cfGuid).pipe( - switchMap(isAdmin => { - // Non-admins at the cf level cannot fetch a list of all users easily (non-admins cannot access /users list) - return (isAdmin || orgGuid || spaceGuid) ? fetchTotalResults( - this.createPaginationActionFromLevel(isAdmin, cfGuid, orgGuid, spaceGuid), - this.store, - this.paginationMonitorFactory - ) : observableOf(null); - }) - ); - } - - private getAllUsers(endpointGuid: string): Observable>> { - if (!this.allUsers$) { - this.allUsers$ = waitForCFPermissions(this.store, endpointGuid).pipe( - switchMap(cf => { - const isAdmin = cf.global.isAdmin; - // Note - This service is used at cf, org and space level of the cf pages. - // We shouldn't attempt to fetch all users if at the cf level - if ( - this.activeRouteCfOrgSpace.cfGuid && - ( - isAdmin || - this.activeRouteCfOrgSpace.orgGuid || - this.activeRouteCfOrgSpace.spaceGuid - ) - ) { - return this.createPaginationAction( - isAdmin, - this.activeRouteCfOrgSpace.cfGuid, - this.activeRouteCfOrgSpace.orgGuid, - this.activeRouteCfOrgSpace.spaceGuid - ).pipe( - map(allUsersAction => getPaginationObservables({ - store: this.store, - action: allUsersAction, - paginationMonitor: this.paginationMonitorFactory.create( - allUsersAction.paginationKey, - cfEntityFactory(cfUserEntityType) - ) - })) - ); - - } else { - return observableOf>>({ - pagination$: observableOf(null), - entities$: observableOf(null), - hasEntities$: observableOf(false), - totalEntities$: observableOf(0), - fetchingEntities$: observableOf(false), - }); - } - }), - publishReplay(1), - refCount() - ); - } - return this.allUsers$; - } - - /** - * Create a paginated action that will fetch a list of users. For admins attempt to fetch all users regardless of cf/org/space level if - * there's not too many, otherwise fetch list with respect to cf/org/level - * @param orgGuid Populated if user is at org level - * @param spaceGuid Populated if user is at space level - */ - public createPaginationAction(isAdmin: boolean, cfGuid: string, orgGuid?: string, spaceGuid?: string): Observable { - if (isAdmin) { - - const action = this.createCfGetUsersAction(cfGuid); - if (!orgGuid) { - return observableOf(action); - } - return this.fetchTotalUsers(cfGuid).pipe( - first(), - map(count => { - if (count < action.flattenPaginationMax) { - // We can safely show all users regardless of what cf/org/level list we're showing - return action; - } - // We can't fetch all users, fall back on org or space lists - return !spaceGuid ? - this.createOrgGetUsersAction(isAdmin, cfGuid, orgGuid) : - this.createSpaceGetUsersAction(isAdmin, cfGuid, spaceGuid); - }) - ); - } - return observableOf(this.createPaginationActionFromLevel(isAdmin, cfGuid, orgGuid, spaceGuid)); - } - - /** - * Create a paginated action that will fetch a list of users with respect to the level (cf, org or space) - * @param orgGuid Populated if user is at org level - * @param spaceGuid Populated if user is at space level - */ - private createPaginationActionFromLevel(isAdmin: boolean, cfGuid: string, orgGuid?: string, spaceGuid?: string): PaginatedAction { - if (!orgGuid) { - // Create an action to fetch all users across the entire cf - if (isAdmin) { - return this.createCfGetUsersAction(cfGuid); - } - // Non-admins at cf level should never reach here, this is a genuine issue that if we hit the extra feed back will help - throw new Error('Unsupported: Cloud Foundry non-administrators cannot access all users list'); - } else if (!spaceGuid) { - // Create an action to fetch all users in an organisation - return this.createOrgGetUsersAction(isAdmin, cfGuid, orgGuid); - } - - // Create an action to fetch all users in a space - return this.createSpaceGetUsersAction(isAdmin, cfGuid, spaceGuid); - } - - private createCfGetUsersAction = (cfGuid: string): PaginatedAction => { - return this.userCatalogueEntity.actionOrchestrator.getActionBuilder('getMultiple')(cfGuid, null); - } - - private createOrgGetUsersAction = (isAdmin: boolean, cfGuid: string, orgGuid: string): PaginatedAction => { - return this.userCatalogueEntity.actionOrchestrator.getActionBuilder('getAllInOrganization')( - orgGuid, - cfGuid, - createEntityRelationPaginationKey(organizationEntityType, orgGuid), - isAdmin - ) as PaginatedAction; - } - - private createSpaceGetUsersAction = (isAdmin: boolean, cfGuid: string, spaceGuid: string, ): PaginatedAction => { - return this.userCatalogueEntity.actionOrchestrator.getActionBuilder('getAllInSpace')( - spaceGuid, - cfGuid, - createEntityRelationPaginationKey(spaceEntityType, spaceGuid), - isAdmin - ) as PaginatedAction; - } - - public isConnectedUserAdmin = (cfGuid: string): Observable => - this.store.select(getCurrentUserCFGlobalStates(cfGuid)).pipe( - filter(state => !!state), - map(state => state.isAdmin), - first() - ) -} diff --git a/src/frontend/packages/core/src/shared/data-services/scm/github-scm.ts b/src/frontend/packages/core/src/shared/data-services/scm/github-scm.ts index 1e1c3e7efe..5de5a777ca 100644 --- a/src/frontend/packages/core/src/shared/data-services/scm/github-scm.ts +++ b/src/frontend/packages/core/src/shared/data-services/scm/github-scm.ts @@ -3,13 +3,13 @@ import { Observable } from 'rxjs'; import { filter, map } from 'rxjs/operators'; import { GitBranch, GitCommit, GitRepo } from '../../../../../cloud-foundry/src/store/types/git.types'; +import { getGitHubAPIURL } from '../../../core/github.helpers'; import { GitSCM, SCMIcon } from './scm'; import { GitSCMType } from './scm.service'; -import { getGitHubAPIURL } from '../../../core/github.helpers'; export class GitHubSCM implements GitSCM { - constructor(public httpClient: HttpClient, public gitHubURL: string) { + constructor(public gitHubURL: string) { this.gitHubURL = this.gitHubURL || getGitHubAPIURL(); } @@ -28,24 +28,24 @@ export class GitHubSCM implements GitSCM { }; } - getRepository(projectName: string): Observable { - return this.httpClient.get(`${this.gitHubURL}/repos/${projectName}`) as Observable; + getRepository(httpClient: HttpClient, projectName: string): Observable { + return httpClient.get(`${this.gitHubURL}/repos/${projectName}`) as Observable; } - getBranches(projectName: string): Observable { - return this.httpClient.get(`${this.gitHubURL}/repos/${projectName}/branches`) as Observable; + getBranches(httpClient: HttpClient, projectName: string): Observable { + return httpClient.get(`${this.gitHubURL}/repos/${projectName}/branches`) as Observable; } - getCommit(projectName: string, commitSha: string): Observable { - return this.httpClient.get(this.getCommitApiUrl(projectName, commitSha)) as Observable; + getCommit(httpClient: HttpClient, projectName: string, commitSha: string): Observable { + return httpClient.get(this.getCommitApiUrl(projectName, commitSha)) as Observable; } getCommitApiUrl(projectName: string, commitSha: string) { return `${this.gitHubURL}/repos/${projectName}/commits/${commitSha}`; } - getCommits(projectName: string, commitSha: string): Observable { - return this.httpClient.get(`${this.gitHubURL}/repos/${projectName}/commits?sha=${commitSha}`) as Observable; + getCommits(httpClient: HttpClient, projectName: string, commitSha: string): Observable { + return httpClient.get(`${this.gitHubURL}/repos/${projectName}/commits?sha=${commitSha}`) as Observable; } getCloneURL(projectName: string): string { @@ -60,13 +60,13 @@ export class GitHubSCM implements GitSCM { return `https://github.com/${projectName}/compare/${commitSha1}...${commitSha2}`; } - getMatchingRepositories(projectName: string): Observable { + getMatchingRepositories(httpClient: HttpClient, projectName: string): Observable { const prjParts = projectName.split('/'); let url = `${this.gitHubURL}/search/repositories?q=${projectName}+in:name+fork:true`; if (prjParts.length > 1) { url = `${this.gitHubURL}/search/repositories?q=${prjParts[1]}+in:name+fork:true+user:${prjParts[0]}`; } - return this.httpClient.get(url).pipe( + return httpClient.get(url).pipe( filter((repos: any) => !!repos.items), map(repos => { return repos.items.map(item => item.full_name); diff --git a/src/frontend/packages/core/src/shared/data-services/scm/gitlab-scm.ts b/src/frontend/packages/core/src/shared/data-services/scm/gitlab-scm.ts index 88e6e30884..2b6daa1931 100644 --- a/src/frontend/packages/core/src/shared/data-services/scm/gitlab-scm.ts +++ b/src/frontend/packages/core/src/shared/data-services/scm/gitlab-scm.ts @@ -11,8 +11,6 @@ const gitLabAPIUrl = 'https://gitlab.com/api/v4'; export class GitLabSCM implements GitSCM { - constructor(public httpClient: HttpClient) { } - getType(): GitSCMType { return 'gitlab'; } @@ -28,10 +26,10 @@ export class GitLabSCM implements GitSCM { }; } - getRepository(projectName: string): Observable { + getRepository(httpClient: HttpClient, projectName: string): Observable { const parts = projectName.split('/'); - let obs$ = this.httpClient.get(`${gitLabAPIUrl}/users/${parts[0]}/projects?search=${parts[1]}`); + let obs$ = httpClient.get(`${gitLabAPIUrl}/users/${parts[0]}/projects?search=${parts[1]}`); if (parts.length !== 2) { obs$ = observableOf(null); } @@ -48,9 +46,9 @@ export class GitLabSCM implements GitSCM { ); } - getBranches(projectName: string): Observable { + getBranches(httpClient: HttpClient, projectName: string): Observable { const prjNameEncoded = encodeURIComponent(projectName); - return this.httpClient.get(`${gitLabAPIUrl}/projects/${prjNameEncoded}/repository/branches`).pipe( + return httpClient.get(`${gitLabAPIUrl}/projects/${prjNameEncoded}/repository/branches`).pipe( map((data: any) => { const branches = []; data.forEach(b => { @@ -63,8 +61,8 @@ export class GitLabSCM implements GitSCM { ); } - getCommit(projectName: string, commitSha: string): Observable { - return this.httpClient.get(this.getCommitApiUrl(projectName, commitSha)).pipe( + getCommit(httpClient: HttpClient, projectName: string, commitSha: string): Observable { + return httpClient.get(this.getCommitApiUrl(projectName, commitSha)).pipe( map(data => { return this.convertCommit(projectName, data); }) @@ -76,9 +74,9 @@ export class GitLabSCM implements GitSCM { return `${gitLabAPIUrl}/projects/${prjNameEncoded}/repository/commits/${commitSha}`; } - getCommits(projectName: string, commitSha: string): Observable { + getCommits(httpClient: HttpClient, projectName: string, commitSha: string): Observable { const prjNameEncoded = encodeURIComponent(projectName); - return this.httpClient.get(`${gitLabAPIUrl}/projects/${prjNameEncoded}/repository/commits?ref_name=${commitSha}`).pipe( + return httpClient.get(`${gitLabAPIUrl}/projects/${prjNameEncoded}/repository/commits?ref_name=${commitSha}`).pipe( map((data: any) => { const commits = []; data.forEach(c => commits.push(this.convertCommit(projectName, c))); @@ -99,13 +97,13 @@ export class GitLabSCM implements GitSCM { return `https://gitlab.com/${projectName}/compare/${commitSha1}...${commitSha2}`; } - getMatchingRepositories(projectName: string): Observable { + getMatchingRepositories(httpClient: HttpClient, projectName: string): Observable { const prjParts = projectName.split('/'); let url = `${gitLabAPIUrl}/projects?search=${projectName}`; if (prjParts.length > 1) { url = `${gitLabAPIUrl}/users/${prjParts[0]}/projects?search=${prjParts[1]}`; } - return this.httpClient.get(url).pipe( + return httpClient.get(url).pipe( map((repos: any) => { return repos.map(item => item.path_with_namespace); }) diff --git a/src/frontend/packages/core/src/shared/data-services/scm/scm.service.ts b/src/frontend/packages/core/src/shared/data-services/scm/scm.service.ts index a200c31f39..82e87ed2c8 100644 --- a/src/frontend/packages/core/src/shared/data-services/scm/scm.service.ts +++ b/src/frontend/packages/core/src/shared/data-services/scm/scm.service.ts @@ -1,8 +1,8 @@ -import { Injectable, Inject } from '@angular/core'; -import { GitLabSCM } from './gitlab-scm'; -import { GitHubSCM } from './github-scm'; +import { Inject, Injectable } from '@angular/core'; + import { GITHUB_API_URL } from '../../../core/github.helpers'; -import { HttpClient } from '@angular/common/http'; +import { GitHubSCM } from './github-scm'; +import { GitLabSCM } from './gitlab-scm'; import { GitSCM } from './scm'; // Supported Git SCM providers @@ -19,12 +19,11 @@ export class GitSCMService { private scms: GitSCMs; constructor( - private httpClient: HttpClient, @Inject(GITHUB_API_URL) private gitHubURL: string ) { const scmArray = [ - new GitHubSCM(this.httpClient, gitHubURL), - new GitLabSCM(this.httpClient) + new GitHubSCM(gitHubURL), + new GitLabSCM() ]; this.scms = scmArray.reduce((obj, item) => { diff --git a/src/frontend/packages/core/src/shared/data-services/scm/scm.ts b/src/frontend/packages/core/src/shared/data-services/scm/scm.ts index 4ec26190d9..eb25e03cb9 100644 --- a/src/frontend/packages/core/src/shared/data-services/scm/scm.ts +++ b/src/frontend/packages/core/src/shared/data-services/scm/scm.ts @@ -1,3 +1,4 @@ +import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; import { GitBranch, GitCommit, GitRepo } from '../../../../../cloud-foundry/src/store/types/git.types'; @@ -13,13 +14,13 @@ export interface GitSCM { getType(): GitSCMType; getLabel(): string; getIcon(): SCMIcon; - getRepository(projectName: string): Observable; - getBranches(projectName: string): Observable; - getCommit(projectName: string, commitSha: string): Observable; - getCommits(projectName: string, commitSha: string): Observable; + getRepository(httpClient: HttpClient, projectName: string): Observable; + getBranches(httpClient: HttpClient, projectName: string): Observable; + getCommit(httpClient: HttpClient, projectName: string, commitSha: string): Observable; + getCommits(httpClient: HttpClient, projectName: string, commitSha: string): Observable; getCloneURL(projectName: string): string; getCommitURL(projectName: string, commitSha: string): string; getCommitApiUrl(projectName: string, commitSha: string): string; getCompareCommitURL(projectName: string, commitSha1: string, commitSha2: string): string; - getMatchingRepositories(projectName: string): Observable; + getMatchingRepositories(httpClient: HttpClient, projectName: string): Observable; } diff --git a/src/frontend/packages/core/src/shared/services/long-running-op.service.ts b/src/frontend/packages/core/src/shared/services/long-running-op.service.ts new file mode 100644 index 0000000000..bbfe30897b --- /dev/null +++ b/src/frontend/packages/core/src/shared/services/long-running-op.service.ts @@ -0,0 +1,15 @@ +import { Injectable } from '@angular/core'; +import { Store } from '@ngrx/store'; + +import { AppState } from '../../../../store/src/app-state'; + +@Injectable() +export class LongRunningOperationsService { + + constructor(protected store: Store) { } + + isLongRunning(request: Partial<{ message: string }>) { + return request.message.startsWith('Long Running Operation still active'); + } + +} diff --git a/src/frontend/packages/core/src/shared/services/metrics-range-selector-manager.service.ts b/src/frontend/packages/core/src/shared/services/metrics-range-selector-manager.service.ts index 0c8e42ffec..daf59f46d6 100644 --- a/src/frontend/packages/core/src/shared/services/metrics-range-selector-manager.service.ts +++ b/src/frontend/packages/core/src/shared/services/metrics-range-selector-manager.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import { Injectable, NgZone } from '@angular/core'; import * as moment from 'moment'; import { Subject, Subscription } from 'rxjs'; import { debounceTime, takeWhile, tap } from 'rxjs/operators'; @@ -44,7 +44,10 @@ export class MetricsRangeSelectorManagerService { public pollInterval = 10000; - constructor(public metricRangeService: MetricsRangeSelectorService) { } + constructor( + public metricRangeService: MetricsRangeSelectorService, + private ngZone: NgZone, + ) { } private commitDate(date: moment.Moment, type: 'start' | 'end') { const index = type === 'start' ? this.startIndex : this.endIndex; @@ -140,10 +143,12 @@ export class MetricsRangeSelectorManagerService { private startWindowPoll(timeWindow: ITimeRange) { this.endWindowPoll(); - this.pollIndex = window.setInterval( - () => this.commitAction(this.metricRangeService.getNewTimeWindowAction(this.baseAction, timeWindow.value)), - this.pollInterval - ); + this.ngZone.runOutsideAngular(() => { + this.pollIndex = window.setInterval( + () => this.commitAction(this.metricRangeService.getNewTimeWindowAction(this.baseAction, timeWindow.value)), + this.pollInterval + ); + }); } private endWindowPoll() { diff --git a/src/frontend/packages/core/src/shared/shared.module.ts b/src/frontend/packages/core/src/shared/shared.module.ts index 12aae65f83..740df8ab12 100644 --- a/src/frontend/packages/core/src/shared/shared.module.ts +++ b/src/frontend/packages/core/src/shared/shared.module.ts @@ -28,6 +28,7 @@ import { CfAuthModule } from './components/cf-auth/cf-auth.module'; import { AppChipsComponent } from './components/chips/chips.component'; import { CodeBlockComponent } from './components/code-block/code-block.component'; import { ConfirmationDialogService } from './components/confirmation-dialog.service'; +import { CopyToClipboardComponent } from './components/copy-to-clipboard/copy-to-clipboard.component'; import { DateTimeComponent } from './components/date-time/date-time.component'; import { DetailsCardComponent } from './components/details-card/details-card.component'; import { DialogConfirmComponent } from './components/dialog-confirm/dialog-confirm.component'; @@ -58,8 +59,12 @@ import { TableCellStatusDirective } from './components/list/list-table/table-cel import { TableComponent } from './components/list/list-table/table.component'; import { listTableComponents } from './components/list/list-table/table.types'; import { EndpointCardComponent } from './components/list/list-types/endpoint/endpoint-card/endpoint-card.component'; +import { EndpointListHelper } from './components/list/list-types/endpoint/endpoint-list.helpers'; +import { EndpointsListConfigService } from './components/list/list-types/endpoint/endpoints-list-config.service'; import { ListComponent } from './components/list/list.component'; import { ListConfig } from './components/list/list.component.types'; +import { ListHostDirective } from './components/list/simple-list/list-host.directive'; +import { SimpleListComponent } from './components/list/simple-list/simple-list.component'; import { LoadingPageComponent } from './components/loading-page/loading-page.component'; import { LogViewerComponent } from './components/log-viewer/log-viewer.component'; import { MarkdownContentObserverDirective } from './components/markdown-preview/markdown-content-observer.directive'; @@ -88,6 +93,7 @@ import { StackedInputActionsComponent } from './components/stacked-input-actions import { StartEndDateComponent } from './components/start-end-date/start-end-date.component'; import { SteppersModule } from './components/stepper/steppers.module'; import { StratosTitleComponent } from './components/stratos-title/stratos-title.component'; +import { TileSelectorTileComponent } from './components/tile-selector-tile/tile-selector-tile.component'; import { TileSelectorComponent } from './components/tile-selector/tile-selector.component'; import { TileGridComponent } from './components/tile/tile-grid/tile-grid.component'; import { TileGroupComponent } from './components/tile/tile-group/tile-group.component'; @@ -110,14 +116,10 @@ import { UptimePipe } from './pipes/uptime.pipe'; import { UsageBytesPipe } from './pipes/usage-bytes.pipe'; import { ValuesPipe } from './pipes/values.pipe'; import { CloudFoundryUserProvidedServicesService } from './services/cloud-foundry-user-provided-services.service'; +import { LongRunningOperationsService } from './services/long-running-op.service'; import { MetricsRangeSelectorService } from './services/metrics-range-selector.service'; import { UserPermissionDirective } from './user-permission.directive'; -import { SimpleListComponent } from './components/list/simple-list/simple-list.component'; -import { ListHostDirective } from './components/list/simple-list/list-host.directive'; -import { EndpointListHelper } from './components/list/list-types/endpoint/endpoint-list.helpers'; -import { EndpointsListConfigService } from './components/list/list-types/endpoint/endpoints-list-config.service'; -/* tslint:disable:max-line-length */ @NgModule({ imports: [ @@ -218,6 +220,8 @@ import { EndpointsListConfigService } from './components/list/list-types/endpoin UnlimitedInputComponent, SimpleListComponent, ListHostDirective, + CopyToClipboardComponent, + TileSelectorTileComponent, ], exports: [ ApplicationStateIconPipe, @@ -306,7 +310,9 @@ import { EndpointsListConfigService } from './components/list/list-types/endpoin PollingIndicatorComponent, UnlimitedInputComponent, SimpleListComponent, - ListHostDirective + ListHostDirective, + CopyToClipboardComponent, + TileSelectorTileComponent, ], entryComponents: [ DialogConfirmComponent, @@ -327,7 +333,7 @@ import { EndpointsListConfigService } from './components/list/list-types/endpoin // ServiceActionHelperService, MetricsRangeSelectorService, GitSCMService, - MetricsRangeSelectorService, + LongRunningOperationsService, CloudFoundryUserProvidedServicesService ] }) diff --git a/src/frontend/packages/core/src/styles.scss b/src/frontend/packages/core/src/styles.scss index 1fe35bd298..f6e062111e 100644 --- a/src/frontend/packages/core/src/styles.scss +++ b/src/frontend/packages/core/src/styles.scss @@ -65,3 +65,11 @@ button.mat-simple-snackbar-action { // flex: 1; // flex-direction: column; // } + + +// Add selector so that the UI can detect if a dark theme is available +@if $stratos-dark-theme-supported { + .dark-theme-supported { + margin: 0; + } +} diff --git a/src/frontend/packages/core/test-framework/store-test-helper.ts b/src/frontend/packages/core/test-framework/store-test-helper.ts index c2383e2937..3a6277b913 100644 --- a/src/frontend/packages/core/test-framework/store-test-helper.ts +++ b/src/frontend/packages/core/test-framework/store-test-helper.ts @@ -164,7 +164,8 @@ function getDefaultInitialTestStratosStoreState() { isMobile: false, isMobileNavOpen: false, sideNavPinned: false, - pollingEnabled: true + pollingEnabled: true, + themeKey: null }, actionHistory: [], lists: {}, diff --git a/src/frontend/packages/store-helpers/karma.conf.js b/src/frontend/packages/store-helpers/karma.conf.js deleted file mode 100644 index 6abf51f6e6..0000000000 --- a/src/frontend/packages/store-helpers/karma.conf.js +++ /dev/null @@ -1,8 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - ...require('../../../../build/karma.conf.creator.js')('store-helpers')(config) - }) -} diff --git a/src/frontend/packages/store-helpers/ng-package.json b/src/frontend/packages/store-helpers/ng-package.json deleted file mode 100644 index f82600ddd5..0000000000 --- a/src/frontend/packages/store-helpers/ng-package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "../../../../node_modules/ng-packagr/ng-package.schema.json", - "dest": "../../../../dist/store-helpers", - "lib": { - "entryFile": "src/public_api.ts" - } -} \ No newline at end of file diff --git a/src/frontend/packages/store-helpers/package.json b/src/frontend/packages/store-helpers/package.json deleted file mode 100644 index 862e6dd5f1..0000000000 --- a/src/frontend/packages/store-helpers/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "store-helpers", - "version": "0.0.1", - "peerDependencies": { - "@angular/common": "^6.0.0-rc.0 || ^6.0.0", - "@angular/core": "^6.0.0-rc.0 || ^6.0.0" - } -} \ No newline at end of file diff --git a/src/frontend/packages/store-helpers/src/public_api.ts b/src/frontend/packages/store-helpers/src/public_api.ts deleted file mode 100644 index d0a6970b98..0000000000 --- a/src/frontend/packages/store-helpers/src/public_api.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Public API Surface of store-helpers - */ - -export * from './lib/store-helpers.service'; -export * from './lib/store-helpers.component'; -export * from './lib/store-helpers.module'; diff --git a/src/frontend/packages/store-helpers/src/test.ts b/src/frontend/packages/store-helpers/src/test.ts deleted file mode 100644 index d0b441ad3d..0000000000 --- a/src/frontend/packages/store-helpers/src/test.ts +++ /dev/null @@ -1,39 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files -import 'zone.js/dist/long-stack-trace-zone'; -import 'zone.js/dist/proxy'; -import 'zone.js/dist/sync-test'; -import 'zone.js/dist/jasmine-patch'; -import 'zone.js/dist/async-test'; -import 'zone.js/dist/fake-async-test'; - -import { APP_BASE_HREF } from '@angular/common'; -import { getTestBed } from '@angular/core/testing'; -import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; - - -declare const require: any; - -// First, initialize the Angular testing environment. -const testBed = getTestBed(); -testBed.initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting() -); - -beforeEach(() => { - testBed.configureTestingModule({ - providers: [{ provide: APP_BASE_HREF, useValue: '/' }] - }); -}); - -/** - * Bump up the Jasmine timeout from 5 seconds - */ -beforeAll(() => { - jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; -}); - -// Then we find all the tests. -const context = require.context('./', true, /\.spec\.ts$/); -// And load the modules. -context.keys().map(context); diff --git a/src/frontend/packages/store-helpers/tsconfig.lib.json b/src/frontend/packages/store-helpers/tsconfig.lib.json deleted file mode 100644 index 1dc99824ea..0000000000 --- a/src/frontend/packages/store-helpers/tsconfig.lib.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../../tsconfig.lib.json", - "compilerOptions": { - "outDir": "../../../../out-tsc" - }, - "exclude": ["./src/test.ts", "**/*.spec.ts"] -} diff --git a/src/frontend/packages/store-helpers/tsconfig.spec.json b/src/frontend/packages/store-helpers/tsconfig.spec.json deleted file mode 100644 index f59718b85d..0000000000 --- a/src/frontend/packages/store-helpers/tsconfig.spec.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../../../tsconfig.spec.json", - "compilerOptions": { - "outDir": "../../../../out-tsc" - }, - "files": ["src/test.ts"], - "include": ["**/*.spec.ts", "**/*.d.ts"] -} diff --git a/src/frontend/packages/store-helpers/tslint.json b/src/frontend/packages/store-helpers/tslint.json deleted file mode 100644 index d182afb0e7..0000000000 --- a/src/frontend/packages/store-helpers/tslint.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../../../tslint.json", - "rules": { - "directive-selector": [ - true, - "attribute", - "lib", - "camelCase" - ], - "component-selector": [ - true, - "element", - "lib", - "kebab-case" - ] - } -} diff --git a/src/frontend/packages/store/src/actions/dashboard-actions.ts b/src/frontend/packages/store/src/actions/dashboard-actions.ts index 88c8f8019c..3918585f85 100644 --- a/src/frontend/packages/store/src/actions/dashboard-actions.ts +++ b/src/frontend/packages/store/src/actions/dashboard-actions.ts @@ -1,5 +1,6 @@ import { Action } from '@ngrx/store'; +import { StratosTheme } from '../../../core/src/core/theme.service'; import { DashboardState } from '../reducers/dashboard-reducer'; export const OPEN_SIDE_NAV = '[Dashboard] Open side nav'; @@ -16,6 +17,7 @@ export const CLOSE_SIDE_HELP = '[Dashboard] Close side help'; export const TIMEOUT_SESSION = '[Dashboard] Timeout Session'; export const ENABLE_POLLING = '[Dashboard] Enable Polling'; +export const SET_STRATOS_THEME = '[Dashboard] Set Theme'; export const HYDRATE_DASHBOARD_STATE = '[Dashboard] Hydrate dashboard state'; @@ -73,3 +75,7 @@ export class HydrateDashboardStateAction implements Action { type = HYDRATE_DASHBOARD_STATE; } +export class SetThemeAction implements Action { + constructor(public theme: StratosTheme) { } + type = SET_STRATOS_THEME; +} diff --git a/src/frontend/packages/store/src/actions/setup.actions.ts b/src/frontend/packages/store/src/actions/setup.actions.ts index 2bd72603a3..b23249f98a 100644 --- a/src/frontend/packages/store/src/actions/setup.actions.ts +++ b/src/frontend/packages/store/src/actions/setup.actions.ts @@ -1,29 +1,29 @@ import { Action } from '@ngrx/store'; -import { UaaSetupData } from '../types/uaa-setup.types'; +import { UaaSetupData, LocalAdminSetupData } from '../types/uaa-setup.types'; -export const SETUP_UAA = '[Setup] Setup UAA'; -export const SETUP_UAA_SAVE = '[Setup] Setup UAA save'; -export const SETUP_UAA_SUCCESS = '[Setup] Setup UAA success'; -export const SETUP_UAA_FAILED = '[Setup] Setup UAA failed'; +export const SETUP_GET_SCOPES = '[Setup] Setup get scopes'; +export const SETUP_SAVE_CONFIG = '[Setup] Setup save'; +export const SETUP_SUCCESS = '[Setup] Setup success'; +export const SETUP_FAILED = '[Setup] Setup failed'; -export class SetupUAA implements Action { +export class SetupConsoleGetScopes implements Action { constructor( - public setupData: UaaSetupData + public setupData: UaaSetupData | LocalAdminSetupData ) { } - type = SETUP_UAA; + type = SETUP_GET_SCOPES; } -export class SetupUAASave extends SetupUAA { - type = SETUP_UAA_SAVE; +export class SetupSaveConfig extends SetupConsoleGetScopes { + type = SETUP_SAVE_CONFIG; } -export class SetupUAASuccess implements Action { +export class SetupSuccess implements Action { constructor(public payload: {}) { } - type = SETUP_UAA_SUCCESS; + type = SETUP_SUCCESS; } -export class SetupUAAFailed implements Action { +export class SetupFailed implements Action { constructor(public message: string) { } - type = SETUP_UAA_FAILED; + type = SETUP_FAILED; } diff --git a/src/frontend/packages/store/src/effects/auth.effects.ts b/src/frontend/packages/store/src/effects/auth.effects.ts index 15966e03a5..38c8883ba8 100644 --- a/src/frontend/packages/store/src/effects/auth.effects.ts +++ b/src/frontend/packages/store/src/effects/auth.effects.ts @@ -1,4 +1,4 @@ -import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; +import { HttpClient, HttpParams } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Actions, Effect, ofType } from '@ngrx/effects'; import { Store } from '@ngrx/store'; @@ -28,9 +28,9 @@ import { import { HydrateDashboardStateAction } from '../actions/dashboard-actions'; import { GET_ENDPOINTS_SUCCESS, GetAllEndpointsSuccess } from '../actions/endpoint.actions'; import { GetSystemInfo } from '../actions/system.actions'; +import { DispatchOnlyAppState } from '../app-state'; import { getDashboardStateSessionId } from '../helpers/store-helpers'; import { SessionData } from '../types/auth.types'; -import { DispatchOnlyAppState } from '../app-state'; const SETUP_HEADER = 'stratos-setup-required'; const UPGRADE_HEADER = 'retry-after'; @@ -50,8 +50,6 @@ export class AuthEffect { @Effect() loginRequest$ = this.actions$.pipe( ofType(LOGIN), switchMap(({ username, password }) => { - const encoder = new BrowserStandardEncoder(); - const headers = new HttpHeaders(); const params = new HttpParams({ encoder: new BrowserStandardEncoder(), fromObject: { @@ -59,9 +57,10 @@ export class AuthEffect { password } }); + const headers = { + 'x-cap-request-date': (Math.floor(Date.now() / 1000)).toString() + }; - headers.set('Content-Type', 'application/x-www-form-urlencoded'); - headers.set('x-cap-request-date', (Math.floor(Date.now() / 1000)).toString()); return this.http.post('/pp/v1/auth/login/uaa', params, { headers, }).pipe( @@ -72,8 +71,10 @@ export class AuthEffect { @Effect() verifyAuth$ = this.actions$.pipe( ofType(VERIFY_SESSION), switchMap(action => { - const headers = new HttpHeaders(); - headers.set('x-cap-request-date', (Math.floor(Date.now() / 1000)).toString()); + const headers = { + 'x-cap-request-date': (Math.floor(Date.now() / 1000)).toString() + }; + return this.http.get('/pp/v1/auth/session/verify', { headers, observe: 'response', diff --git a/src/frontend/packages/store/src/effects/dashboard.effects.ts b/src/frontend/packages/store/src/effects/dashboard.effects.ts new file mode 100644 index 0000000000..2d34737508 --- /dev/null +++ b/src/frontend/packages/store/src/effects/dashboard.effects.ts @@ -0,0 +1,24 @@ +import { Injectable } from '@angular/core'; +import { Actions, Effect, ofType } from '@ngrx/effects'; +import { map } from 'rxjs/operators'; + +import { ThemeService } from '../../../core/src/core/theme.service'; +import { HYDRATE_DASHBOARD_STATE, HydrateDashboardStateAction } from '../actions/dashboard-actions'; + + +@Injectable() +export class DashboardEffect { + + constructor( + private actions$: Actions, + private themeService: ThemeService + ) { } + + @Effect({ dispatch: false }) hydrate$ = this.actions$.pipe( + ofType(HYDRATE_DASHBOARD_STATE), + map(() => { + // Ensure the previous theme is applied after dashboard is hydrated + this.themeService.initialize(); + }) + ); +} diff --git a/src/frontend/packages/store/src/effects/endpoint-api-errors.effects.ts b/src/frontend/packages/store/src/effects/endpoint-api-errors.effects.ts index 97f21bdea3..8aa64ed80f 100644 --- a/src/frontend/packages/store/src/effects/endpoint-api-errors.effects.ts +++ b/src/frontend/packages/store/src/effects/endpoint-api-errors.effects.ts @@ -5,16 +5,10 @@ import { map } from 'rxjs/operators'; import { SendEventAction } from '../actions/internal-events.actions'; import { RequestTypes } from '../actions/request.actions'; +import { InternalAppState } from '../app-state'; import { endpointSchemaKey } from '../helpers/entity-factory'; import { InternalEventSeverity } from '../types/internal-events.types'; import { WrapperRequestActionFailed } from '../types/request.types'; -import { InternalAppState } from '../app-state'; - - - -// RequestTypes.FAILED - - @Injectable() export class EndpointApiError { @@ -50,4 +44,3 @@ export class EndpointApiError { } })); } - diff --git a/src/frontend/packages/store/src/effects/endpoint.effects.ts b/src/frontend/packages/store/src/effects/endpoint.effects.ts index d5deac379f..ae60aeff15 100644 --- a/src/frontend/packages/store/src/effects/endpoint.effects.ts +++ b/src/frontend/packages/store/src/effects/endpoint.effects.ts @@ -1,4 +1,4 @@ -import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http'; +import { HttpClient, HttpErrorResponse, HttpParams } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Actions, Effect, ofType } from '@ngrx/effects'; import { Store } from '@ngrx/store'; @@ -274,11 +274,8 @@ export class EndpointsEffect { errorMessageHandler?: (e: any) => string, ) { const endpointEntityKey = entityCatalogue.getEntityKey(apiAction); - const headers = new HttpHeaders(); - headers.set('Content-Type', 'application/x-www-form-urlencoded'); this.store.dispatch(new StartRequestAction(apiAction, apiActionType)); return this.http.post(url, body || {}, { - headers, params }).pipe( mergeMap((endpoint: EndpointModel) => { diff --git a/src/frontend/packages/store/src/effects/uaa-setup.effects.ts b/src/frontend/packages/store/src/effects/uaa-setup.effects.ts index 5e425431e3..9e193e4380 100644 --- a/src/frontend/packages/store/src/effects/uaa-setup.effects.ts +++ b/src/frontend/packages/store/src/effects/uaa-setup.effects.ts @@ -1,16 +1,18 @@ +import { HttpClient, HttpParams } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Actions, Effect, ofType } from '@ngrx/effects'; import { catchError, map, switchMap } from 'rxjs/operators'; +import { isHttpErrorResponse } from '../../../core/src/jetstream.helpers'; import { - SETUP_UAA, - SetupUAA, - SetupUAAFailed, - SetupUAASuccess, - SETUP_UAA_SAVE, - SetupUAASave, + SETUP_GET_SCOPES, + SETUP_SAVE_CONFIG, + SetupConsoleGetScopes, + SetupFailed, + SetupSaveConfig, + SetupSuccess, } from './../actions/setup.actions'; -import { HttpClient } from '@angular/common/http'; +import { LocalAdminSetupData, UaaSetupData } from './../types/uaa-setup.types'; @Injectable() @@ -21,57 +23,69 @@ export class UAASetupEffect { private actions$: Actions ) { } - baseUrl = '/pp/v1/setup'; + getSetupScopesUrl = '/pp/v1/setup/check'; + saveSetupUrl = '/pp/v1/setup/save'; - @Effect() uaaSetupRequest$ = this.actions$.pipe( - ofType(SETUP_UAA), + @Effect() setupGetScopes$ = this.actions$.pipe( + ofType(SETUP_GET_SCOPES), switchMap(({ setupData }) => { - const params = { - console_client: setupData.console_client, - username: setupData.username, - password: setupData.password, - skip_ssl_validation: setupData.skip_ssl_validation.toString() || 'false', - uaa_endpoint: setupData.uaa_endpoint, - use_sso: setupData.use_sso.toString() || 'false', - console_client_secret: setupData.console_client_secret, - }; - return this.http.post(`${this.baseUrl}/check`, null, { - headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, - params + const params = this.getParams(setupData); + return this.http.post(this.getSetupScopesUrl, params, { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, }).pipe( - map(data => new SetupUAASuccess(data)), - catchError((err, caught) => [new SetupUAAFailed(`Failed to setup UAA endpoint. ${this.fetchError(err)}`)]) + map(data => new SetupSuccess(data)), + catchError((err, caught) => [new SetupFailed(`Failed to save configuration. ${this.fetchError(err)}`)]) ); })); - - @Effect() uassSetScope = this.actions$.pipe( - ofType(SETUP_UAA_SAVE), + @Effect() setupSaveConfiguration$ = this.actions$.pipe( + ofType(SETUP_SAVE_CONFIG), switchMap(({ setupData }) => { - const params = { - console_client: setupData.console_client, - username: setupData.username, - password: setupData.password, - skip_ssl_validation: setupData.skip_ssl_validation.toString() || 'false', - uaa_endpoint: setupData.uaa_endpoint, - use_sso: setupData.use_sso.toString() || 'false', - console_admin_scope: setupData.console_admin_scope, - - }; - return this.http.post(this.baseUrl, null, { - params, - headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, + const params = this.getParams(setupData); + return this.http.post(this.saveSetupUrl, params, { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, }).pipe( - map(data => new SetupUAASuccess({})), - catchError((err, caught) => [new SetupUAAFailed(`Failed to setup Administrator scope. ${this.fetchError(err)}`)]) + map(data => new SetupSuccess(data)), + catchError((err, caught) => [new SetupFailed(`Failed to setup Administrator scope. ${this.fetchError(err)}`)]) ); })); private fetchError(err): string { - try { - const body = JSON.parse(err._body); - return body.error; - } catch (err) { } + const httpResponse = isHttpErrorResponse(err); + if (httpResponse) { + if (httpResponse.error.error) { + return httpResponse.error.error; + } + try { + const body = JSON.parse(httpResponse.error); + return body; + } catch (err) { } + } return ''; } + + + private getParams(setupData: any): any { + let params = new HttpParams(); + if ((setupData as UaaSetupData).console_client) { + const uaaSetupData = setupData as UaaSetupData; + params = params + .set('console_client', uaaSetupData.console_client) + .set('username', uaaSetupData.username) + .set('password', uaaSetupData.password) + .set('skip_ssl_validation', uaaSetupData.skip_ssl_validation.toString() || 'false') + .set('uaa_endpoint', uaaSetupData.uaa_endpoint) + .set('use_sso', uaaSetupData.use_sso.toString() || 'false'); + if (uaaSetupData.console_client_secret) { + params = params.append('console_client_secret', uaaSetupData.console_client_secret); + } + if (uaaSetupData.console_admin_scope) { + params = params.set('console_admin_scope', uaaSetupData.console_admin_scope); + } + } else { + const localSetupData = setupData as LocalAdminSetupData; + params = params.set('local_admin_password', localSetupData.local_admin_password); + } + return params; + } } diff --git a/src/frontend/packages/store/src/entity-request-pipeline/entity-pagination-request-pipeline.ts b/src/frontend/packages/store/src/entity-request-pipeline/entity-pagination-request-pipeline.ts index 24170eb1e9..05a04fda33 100644 --- a/src/frontend/packages/store/src/entity-request-pipeline/entity-pagination-request-pipeline.ts +++ b/src/frontend/packages/store/src/entity-request-pipeline/entity-pagination-request-pipeline.ts @@ -11,10 +11,11 @@ import { entityCatalogue } from '../../../core/src/core/entity-catalogue/entity- import { IStratosEntityDefinition } from '../../../core/src/core/entity-catalogue/entity-catalogue.types'; import { AppState, InternalAppState } from '../app-state'; import { PaginationFlattenerConfig } from '../helpers/paginated-request-helpers'; +import { selectPaginationState } from '../selectors/pagination.selectors'; import { PaginatedAction, PaginationEntityState } from '../types/pagination.types'; import { handleJetstreamResponsePipeFactory, - handleNonJetstreamResponsePipeFactory + handleNonJetstreamResponsePipeFactory, } from './entity-request-base-handlers/handle-multi-endpoints.pipe'; import { makeRequestEntityPipe } from './entity-request-base-handlers/make-request-entity-request.pipe'; import { mapMultiEndpointResponses } from './entity-request-base-handlers/map-multi-endpoint.pipes'; @@ -26,9 +27,8 @@ import { } from './entity-request-pipeline.types'; import { getPaginationParamsPipe } from './pagination-request-base-handlers/get-params.pipe'; import { PaginationPageIterator } from './pagination-request-base-handlers/pagination-iterator.pipe'; -import { singleRequestToPaged, isJetstreamRequest } from './pipeline-helpers'; +import { isJetstreamRequest, singleRequestToPaged } from './pipeline-helpers'; import { PipelineHttpClient } from './pipline-http-client.service'; -import { selectPaginationState } from '../selectors/pagination.selectors'; function getRequestObjectObservable(request: HttpRequest | Observable>): Observable> { return isObservable(request) ? request : of(request); @@ -126,7 +126,7 @@ export const basePaginatedRequestPipeline: EntityRequestPipeline = ( ).pipe( // Convert { [endpointGuid]: } to { { errors: [], successes: [] } } map(handleMultiEndpointsPipe), - // Convert { { errors: [], successes: [] } } to { response: NoramlisedResponse, success: boolean } + // Convert { { errors: [], successes: [] } } to { response: NormalisedResponse, success: boolean } map(multiEndpointResponses => mapMultiEndpointResponses( completePaginationAction, catalogueEntity, diff --git a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/jetstream-error.handler.ts b/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/jetstream-error.handler.ts index 975423ad09..ec8ced4cda 100644 --- a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/jetstream-error.handler.ts +++ b/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/jetstream-error.handler.ts @@ -3,7 +3,7 @@ import { SendEventAction } from '../../actions/internal-events.actions'; import { RecursiveDeleteFailed } from '../../effects/recursive-entity-delete.effect'; import { endpointSchemaKey } from '../../helpers/entity-factory'; import { ApiRequestTypes, getFailApiRequestActions } from '../../reducers/api-request-reducer/request-helpers'; -import { InternalEventSeverity, InternalEventStateMetadata } from '../../types/internal-events.types'; +import { GLOBAL_EVENT, InternalEventSeverity, InternalEventStateMetadata } from '../../types/internal-events.types'; import { EntityRequestAction } from '../../types/request.types'; import { ActionDispatcher } from '../entity-request-pipeline.types'; import { PipelineHttpClient } from '../pipline-http-client.service'; @@ -17,11 +17,31 @@ export function jetstreamErrorHandler( actionDispatcher: ActionDispatcher, recursivelyDeleting: boolean ) { - const endpointString = action.options.headers ? action.options.headers.get(PipelineHttpClient.EndpointHeader) || '' : ''; - const endpointIds: string[] = endpointString.split(','); - endpointIds.forEach(endpoint => + // This will never work for calls where endpoint list is automatically generated (list is applied to request object not action) + // For those cases treat as a global error + const headerEndpointString = action.options.headers ? action.options.headers.get(PipelineHttpClient.EndpointHeader) : null; + const endpointString = headerEndpointString || action.endpointGuid || null; + const endpointIds: string[] = endpointString ? endpointString.split(',') : []; + + if (endpointString) { + endpointIds.forEach(endpoint => + actionDispatcher( + new SendEventAction(endpointSchemaKey, endpoint, { + eventCode: error.status ? error.status + '' : '500', + severity: InternalEventSeverity.ERROR, + message: 'Jetstream API request error', + metadata: { + httpMethod: action.options.method as string, + errorResponse: error, + url: error.url || action.options.url, + }, + }), + ), + ); + } else { + // See #4054, in theory we should never hit this as we always know the endpoint id's actionDispatcher( - new SendEventAction(endpointSchemaKey, endpoint, { + new SendEventAction(GLOBAL_EVENT, catalogueEntity.entityKey, { eventCode: error.status ? error.status + '' : '500', severity: InternalEventSeverity.ERROR, message: 'Jetstream API request error', @@ -31,8 +51,9 @@ export function jetstreamErrorHandler( url: error.url || action.options.url, }, }), - ), - ); + ); + } + const errorActions = getFailApiRequestActions(action, error, requestType, catalogueEntity, { endpointIds, url: error.url || action.options.url, diff --git a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/make-request-entity-request.pipe.ts b/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/make-request-entity-request.pipe.ts index 657afac20c..690a18abdc 100644 --- a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/make-request-entity-request.pipe.ts +++ b/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/make-request-entity-request.pipe.ts @@ -8,7 +8,7 @@ export const makeRequestEntityPipe: MakeEntityRequestPipe = ( httpClient, requestOrObservable, endpointConfig: StratosCatalogueEndpointEntity, - endpointGuids: string[], + endpointGuids: string | string[], externalRequest: boolean = false ) => { if (requestOrObservable instanceof HttpRequest) { diff --git a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/map-multi-endpoint.pipes.ts b/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/map-multi-endpoint.pipes.ts index 00a2a1f541..d08d04483d 100644 --- a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/map-multi-endpoint.pipes.ts +++ b/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/map-multi-endpoint.pipes.ts @@ -1,4 +1,5 @@ import { Action } from '@ngrx/store'; +import { normalize } from 'normalizr'; import { StratosBaseCatalogueEntity } from '../../../../core/src/core/entity-catalogue/entity-catalogue-entity'; import { entityCatalogue } from '../../../../core/src/core/entity-catalogue/entity-catalogue.service'; @@ -10,9 +11,8 @@ import { PipelineResult } from '../entity-request-pipeline.types'; import { getSuccessMapper } from '../pipeline-helpers'; import { endpointErrorsHandlerFactory } from './endpoint-errors.handler'; import { patchActionWithForcedConfig } from './forced-action-type.helpers'; -import { HandledMultiEndpointResponse, JetstreamError } from './handle-multi-endpoints.pipe'; +import { HandledMultiEndpointResponse, JetstreamError, MultiEndpointResponse } from './handle-multi-endpoints.pipe'; import { multiEndpointResponseMergePipe } from './merge-multi-endpoint-data.pipe'; -import { normalizeEntityPipeFactory } from './normalize-entity-request-response.pipe'; const baseErrorHandler = () => 'Api Request Failed'; @@ -56,6 +56,19 @@ function getEntities( }, {}); } +// TODO: Type the output of this pipe. #3976 +function getNormalizedEntityData( + entities: any[], + action: EntityRequestAction, + catalogueEntity: StratosBaseCatalogueEntity) { + // Can patchActionWithForcedConfig be done outside of the pipe? + // This pipe shouldn't have to worry about the multi entity lists. + const patchedAction = patchActionWithForcedConfig(action); + const schema = patchedAction.entity || catalogueEntity.getSchema(patchedAction.schemaKey); + const arraySafeSchema = Array.isArray(schema) ? schema[0] : schema; + return normalize(entities, Array.isArray(entities) ? [arraySafeSchema] : arraySafeSchema); +} + export function mapMultiEndpointResponses( action: EntityRequestAction, catalogueEntity: StratosBaseCatalogueEntity, @@ -63,12 +76,6 @@ export function mapMultiEndpointResponses( multiEndpointResponses: HandledMultiEndpointResponse, actionDispatcher: (actionToDispatch: Action) => void ): PipelineResult { - const normalizeEntityPipe = normalizeEntityPipeFactory( - catalogueEntity, - // Can this be done outside of the pipe? - // This pipe shouldn't have to worry about the multi entity lists. - patchActionWithForcedConfig(action).schemaKey - ); const endpointErrorHandler = endpointErrorsHandlerFactory(actionDispatcher); endpointErrorHandler( action, @@ -84,23 +91,28 @@ export function mapMultiEndpointResponses( errorMessage }; } else { - const responses = multiEndpointResponses.successes.map(normalizeEntityPipe); - const mapped = responses.map(endpointResponse => { - const entities = getEntities(endpointResponse, action); - const parentEntities = entities[catalogueEntity.entityKey]; - return { - response: { - entities, - // If we changed the guid of the entities then make sure this is reflected in the result array. - result: parentEntities ? Object.keys(parentEntities) : endpointResponse.normalizedEntities.result, - }, - totalPages: endpointResponse.totalPages, - totalResults: endpointResponse.totalResults, - success: null - }; - }); - // NormalizedResponse - const response = multiEndpointResponseMergePipe(mapped); + const responses = multiEndpointResponses.successes + .map((responseData: MultiEndpointResponse) => ({ + normalizedEntities: getNormalizedEntityData(responseData.entities, action, catalogueEntity), + endpointGuid: responseData.endpointGuid, + totalResults: responseData.totalResults, + totalPages: responseData.totalPages + })) + .map(endpointResponse => { + const entities = getEntities(endpointResponse, action); + const parentEntities = entities[catalogueEntity.entityKey]; + return { + response: { + entities, + // If we changed the guid of the entities then make sure this is reflected in the result array. + result: parentEntities ? Object.keys(parentEntities) : endpointResponse.normalizedEntities.result, + }, + totalPages: endpointResponse.totalPages, + totalResults: endpointResponse.totalResults, + success: null + }; + }); + const response = multiEndpointResponseMergePipe(responses); return { ...response, success: true, diff --git a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/normalize-entity-request-response.pipe.ts b/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/normalize-entity-request-response.pipe.ts deleted file mode 100644 index ee538455b8..0000000000 --- a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-base-handlers/normalize-entity-request-response.pipe.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { StratosBaseCatalogueEntity } from '../../../../core/src/core/entity-catalogue/entity-catalogue-entity'; -import { MultiEndpointResponse } from './handle-multi-endpoints.pipe'; - -// TODO: Type the output of this pipe. #3976 -export const normalizeEntityPipeFactory = (catalogueEntity: StratosBaseCatalogueEntity, schemaKey?: string) => { - return (responseData: MultiEndpointResponse) => { - return { - normalizedEntities: catalogueEntity.getNormalizedEntityData(responseData.entities, schemaKey), - endpointGuid: responseData.endpointGuid, - totalResults: responseData.totalResults, - totalPages: responseData.totalPages - }; - }; -}; diff --git a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-pipeline.ts b/src/frontend/packages/store/src/entity-request-pipeline/entity-request-pipeline.ts index 66c6106155..6ab5044543 100644 --- a/src/frontend/packages/store/src/entity-request-pipeline/entity-request-pipeline.ts +++ b/src/frontend/packages/store/src/entity-request-pipeline/entity-request-pipeline.ts @@ -78,11 +78,11 @@ export const apiRequestPipelineFactory = ( map(() => catalogueEntity.getRequestAction('complete', action, requestType)), catchError(error => { const httpResponse = isHttpErrorResponse(error); - const res: PipelineResult = { + const response: PipelineResult = { success: false, errorMessage: httpResponse ? httpResponse.error : null }; - failedEntityHandler(actionDispatcher, catalogueEntity, requestType, action, res, recursivelyDelete); + failedEntityHandler(actionDispatcher, catalogueEntity, requestType, action, response, recursivelyDelete); jetstreamErrorHandler( error, patchedAction, diff --git a/src/frontend/packages/store/src/helpers/reducer.helper.ts b/src/frontend/packages/store/src/helpers/reducer.helper.ts index 2a054ce483..077c8d4464 100644 --- a/src/frontend/packages/store/src/helpers/reducer.helper.ts +++ b/src/frontend/packages/store/src/helpers/reducer.helper.ts @@ -1,3 +1,5 @@ +import { stratosEndpointGuidKey } from '../entity-request-pipeline/pipeline.types'; + export const mergeState = (state, newState) => { const baseState = { ...state }; @@ -39,7 +41,7 @@ export const deepMergeState = (state, newState) => { export function mergeEntity(baseEntity, newEntity) { if (baseEntity && baseEntity.entity) { - return { + const merged = { entity: merge(baseEntity.entity, newEntity.entity), // Always apply the metadata regardless of whether it exists in the baseEntity or not // (for cases where we fetch missing inline data of an entity before the entity exists, for example fetch orgs and their spaces.. @@ -47,6 +49,10 @@ export function mergeEntity(baseEntity, newEntity) { // main org and mark it as fetched) metadata: baseEntity.metadata ? merge(baseEntity.metadata, newEntity.metadata) : newEntity.metadata }; + if (baseEntity[stratosEndpointGuidKey]) { + merged[stratosEndpointGuidKey] = baseEntity[stratosEndpointGuidKey]; + } + return merged; } else { return merge(baseEntity, newEntity); } diff --git a/src/frontend/packages/store/src/reducers/dashboard-reducer.ts b/src/frontend/packages/store/src/reducers/dashboard-reducer.ts index 5963b912b9..b5f606d521 100644 --- a/src/frontend/packages/store/src/reducers/dashboard-reducer.ts +++ b/src/frontend/packages/store/src/reducers/dashboard-reducer.ts @@ -7,8 +7,10 @@ import { HYDRATE_DASHBOARD_STATE, HydrateDashboardStateAction, OPEN_SIDE_NAV, + SET_STRATOS_THEME, SetPollingEnabledAction, SetSessionTimeoutAction, + SetThemeAction, SHOW_SIDE_HELP, TIMEOUT_SESSION, TOGGLE_SIDE_NAV, @@ -23,6 +25,7 @@ export interface DashboardState { sideNavPinned: boolean; sideHelpOpen: boolean; sideHelpDocument: string; + themeKey: string; } export const defaultDashboardState: DashboardState = { @@ -34,6 +37,7 @@ export const defaultDashboardState: DashboardState = { sideNavPinned: true, sideHelpOpen: false, sideHelpDocument: null, + themeKey: null }; export function dashboardReducer(state: DashboardState = defaultDashboardState, action): DashboardState { @@ -79,6 +83,12 @@ export function dashboardReducer(state: DashboardState = defaultDashboardState, ...state, ...hydrateDashboardStateAction.dashboardState }; + case SET_STRATOS_THEME: + const setThemeAction = action as SetThemeAction; + return { + ...state, + themeKey: setThemeAction.theme ? setThemeAction.theme.key : null + }; default: return state; } diff --git a/src/frontend/packages/store/src/reducers/pagination-reducer/pagination-reducer-remove-params.ts b/src/frontend/packages/store/src/reducers/pagination-reducer/pagination-reducer-remove-params.ts index 34a22ee4fb..92c22b42f2 100644 --- a/src/frontend/packages/store/src/reducers/pagination-reducer/pagination-reducer-remove-params.ts +++ b/src/frontend/packages/store/src/reducers/pagination-reducer/pagination-reducer-remove-params.ts @@ -1,6 +1,6 @@ import { RemoveParams } from '../../actions/pagination.actions'; -import { PaginationEntityState } from '../../types/pagination.types'; import { QParam } from '../../q-param'; +import { PaginationEntityState } from '../../types/pagination.types'; export function paginationRemoveParams(state: PaginationEntityState, action: RemoveParams) { @@ -11,10 +11,17 @@ export function paginationRemoveParams(state: PaginationEntityState, action: Rem } }; + if (state.params.q) { + removeParamsState.params.q = (state.params.q as string[]).filter((qs: string) => { + return !action.qs.find((removeParamKey: string) => QParam.keyFromString(qs) === removeParamKey); + }); + } + action.params.forEach((key) => { if (removeParamsState.params.hasOwnProperty(key)) { delete removeParamsState.params[key]; } }); + return removeParamsState; } diff --git a/src/frontend/packages/store/src/reducers/pagination-reducer/pagination-reducer-set-client-filter-key.ts b/src/frontend/packages/store/src/reducers/pagination-reducer/pagination-reducer-set-client-filter-key.ts index 5db751052d..75d31ac45f 100644 --- a/src/frontend/packages/store/src/reducers/pagination-reducer/pagination-reducer-set-client-filter-key.ts +++ b/src/frontend/packages/store/src/reducers/pagination-reducer/pagination-reducer-set-client-filter-key.ts @@ -1,19 +1,19 @@ -import { PaginationEntityState } from '../../types/pagination.types'; import { SetClientFilterKey } from '../../actions/pagination.actions'; +import { PaginationEntityState } from '../../types/pagination.types'; import { spreadClientPagination } from './pagination-reducer.helper'; export function paginationSetClientFilterKey(state: PaginationEntityState, action: SetClientFilterKey) { - const clientPagination = spreadClientPagination(state.clientPagination); + const clientPagination = spreadClientPagination(state.clientPagination); - return { - ...state, - error: false, - clientPagination: { - ...clientPagination, - filter: { - ...clientPagination.filter, - filterKey: action.filterKey, - } - } - }; + return { + ...state, + error: false, + clientPagination: { + ...clientPagination, + filter: { + ...clientPagination.filter, + filterKey: action.filterKey, + } + } + }; } diff --git a/src/frontend/packages/store/src/reducers/uaa-setup.reducers.ts b/src/frontend/packages/store/src/reducers/uaa-setup.reducers.ts index 6ca565f7b8..eee73abbf8 100644 --- a/src/frontend/packages/store/src/reducers/uaa-setup.reducers.ts +++ b/src/frontend/packages/store/src/reducers/uaa-setup.reducers.ts @@ -1,6 +1,6 @@ -import { SETUP_UAA, SETUP_UAA_FAILED, SETUP_UAA_SAVE, SETUP_UAA_SUCCESS } from './../actions/setup.actions'; -import { Action } from '@ngrx/store'; +import { SETUP_SUCCESS } from './../actions/setup.actions'; import { UAASetupState } from '../types/uaa-setup.types'; +import { SETUP_GET_SCOPES, SETUP_SAVE_CONFIG, SETUP_FAILED } from '../actions/setup.actions'; const defaultState = { payload: null, @@ -12,8 +12,8 @@ const defaultState = { export function uaaSetupReducer(state: UAASetupState = defaultState, action) { switch (action.type) { - case SETUP_UAA_SAVE: - case SETUP_UAA: + case SETUP_GET_SCOPES: + case SETUP_SAVE_CONFIG: return { ...state, settingUp: true, @@ -21,7 +21,7 @@ export function uaaSetupReducer(state: UAASetupState = defaultState, action) { message: 'Setting up UAA', error: false }; - case SETUP_UAA_SUCCESS: + case SETUP_SUCCESS: return { ...state, settingUp: false, @@ -30,7 +30,7 @@ export function uaaSetupReducer(state: UAASetupState = defaultState, action) { error: false, payload: { ...state.payload, ...action.payload } }; - case SETUP_UAA_FAILED: + case SETUP_FAILED: return { ...state, settingUp: false, diff --git a/src/frontend/packages/store/src/store.module.ts b/src/frontend/packages/store/src/store.module.ts index 386db19890..14c8160af6 100644 --- a/src/frontend/packages/store/src/store.module.ts +++ b/src/frontend/packages/store/src/store.module.ts @@ -6,6 +6,7 @@ import { ActionHistoryEffect } from './effects/action-history.effects'; import { APIEffect } from './effects/api.effects'; import { AppEffects } from './effects/app.effects'; import { AuthEffect } from './effects/auth.effects'; +import { DashboardEffect } from './effects/dashboard.effects'; import { EndpointApiError } from './effects/endpoint-api-errors.effects'; import { EndpointsEffect } from './effects/endpoint.effects'; import { MetricsEffect } from './effects/metrics.effects'; @@ -21,8 +22,8 @@ import { UpdateAppEffects } from './effects/update-app-effects'; import { UserFavoritesEffect } from './effects/user-favorites-effect'; import { UserProfileEffect } from './effects/user-profile.effects'; import { UsersRolesEffects } from './effects/users-roles.effects'; -import { AppReducersModule } from './reducers.module'; import { PipelineHttpClient } from './entity-request-pipeline/pipline-http-client.service'; +import { AppReducersModule } from './reducers.module'; @NgModule({ @@ -33,6 +34,7 @@ import { PipelineHttpClient } from './entity-request-pipeline/pipline-http-clien AppReducersModule, HttpClientModule, EffectsModule.forRoot([ + DashboardEffect, APIEffect, EndpointApiError, AuthEffect, diff --git a/src/frontend/packages/store/src/types/uaa-setup.types.ts b/src/frontend/packages/store/src/types/uaa-setup.types.ts index 3f5b756ef4..a74daef1e4 100644 --- a/src/frontend/packages/store/src/types/uaa-setup.types.ts +++ b/src/frontend/packages/store/src/types/uaa-setup.types.ts @@ -21,3 +21,7 @@ export interface UaaSetupData { use_sso: boolean; console_admin_scope?: string; } + +export interface LocalAdminSetupData { + local_admin_password: string; +} diff --git a/src/jetstream/auth.go b/src/jetstream/auth.go index 70881b43ad..7de23ba3e0 100644 --- a/src/jetstream/auth.go +++ b/src/jetstream/auth.go @@ -78,3 +78,11 @@ func (p *portalProxy) login(c echo.Context, skipSSLValidation bool, client strin return uaaRes, u, nil } + +func (p *portalProxy) consoleLogin(c echo.Context) error { + return p.StratosAuthService.Login(c) +} + +func (p *portalProxy) consoleLogout(c echo.Context) error { + return p.StratosAuthService.Logout(c) +} diff --git a/src/jetstream/auth_test.go b/src/jetstream/auth_test.go index 0b3d183154..b7657fbede 100644 --- a/src/jetstream/auth_test.go +++ b/src/jetstream/auth_test.go @@ -742,6 +742,10 @@ func TestVerifySession(t *testing.T) { res, _, ctx, pp, db, mock := setupHTTPTest(req) defer db.Close() + if e := pp.InitStratosAuthService(interfaces.Remote); e != nil { + log.Fatalf("Could not initialise auth service: %v", e) + } + // Set a dummy userid in session - normally the login to UAA would do this. sessionValues := make(map[string]interface{}) sessionValues["user_id"] = mockUserGUID @@ -850,6 +854,10 @@ func TestVerifySessionExpired(t *testing.T) { _, _, ctx, pp, db, mock := setupHTTPTest(req) defer db.Close() + if e := pp.InitStratosAuthService(interfaces.Remote); e != nil { + log.Fatalf("Could not initialise auth service: %v", e) + } + // Set a dummy userid in session - normally the login to UAA would do this. sessionValues := make(map[string]interface{}) sessionValues["user_id"] = mockUserGUID diff --git a/src/jetstream/authuaa.go b/src/jetstream/authuaa.go index f5d7ee3113..63b152eab4 100644 --- a/src/jetstream/authuaa.go +++ b/src/jetstream/authuaa.go @@ -151,11 +151,6 @@ func (a *uaaAuth) VerifySession(c echo.Context, sessionUser string, sessionExpir if err = a.p.setSessionValues(c, sessionValues); err != nil { return err } - } else { - // Still need to extend the expires_on of the Session - if err = a.p.setSessionValues(c, nil); err != nil { - return err - } } return nil diff --git a/src/jetstream/datastore/20191008121900_PrimaryKeys.go b/src/jetstream/datastore/20191008121900_PrimaryKeys.go new file mode 100644 index 0000000000..9e1210616f --- /dev/null +++ b/src/jetstream/datastore/20191008121900_PrimaryKeys.go @@ -0,0 +1,46 @@ +package datastore + +import ( + "database/sql" + "strings" + + "bitbucket.org/liamstask/goose/lib/goose" +) + +func init() { + RegisterMigration(20191008121900, "PrimaryKeys", func(txn *sql.Tx, conf *goose.DBConf) error { + + // Make sure all tokens have a CNSI guid + ensureTokensHaveCnsi := "UPDATE tokens SET cnsi_guid='STRATOS' WHERE token_type='uaa' and cnsi_guid IS NULL;" + _, err := txn.Exec(ensureTokensHaveCnsi) + if err != nil { + return err + } + + // Note: SQLite does not allow constraints to be added after table creation + if strings.Contains(conf.Driver.Name, "sqlite3") { + return nil + } + + // Need cnsi_guid to not be NULL in order to be able to create this primary key + addTokensPrimaryKey := "ALTER TABLE tokens ADD CONSTRAINT PK_Tokens PRIMARY KEY (user_guid, cnsi_guid, token_guid);" + _, err = txn.Exec(addTokensPrimaryKey) + if err != nil { + return err + } + + addSetupConfigPrimaryKey := "ALTER TABLE console_config ADD CONSTRAINT PK_ConsoleConfig PRIMARY KEY (uaa_endpoint, console_admin_scope);" + _, err = txn.Exec(addSetupConfigPrimaryKey) + if err != nil { + return err + } + + addConfigPrimaryKey := "ALTER TABLE config ADD CONSTRAINT PK_Config PRIMARY KEY (groupName, name);" + _, err = txn.Exec(addConfigPrimaryKey) + if err != nil { + return err + } + + return nil + }) +} diff --git a/src/jetstream/default.config.properties b/src/jetstream/default.config.properties index 8d6a68ddc0..da1f866c69 100644 --- a/src/jetstream/default.config.properties +++ b/src/jetstream/default.config.properties @@ -3,6 +3,7 @@ DATABASE_PROVIDER=sqlite HTTP_CONNECTION_TIMEOUT_IN_SECS=10 HTTP_CLIENT_TIMEOUT_IN_SECS=30 HTTP_CLIENT_TIMEOUT_MUTATING_IN_SECS=120 +HTTP_CLIENT_TIMEOUT_LONGRUNNING_IN_SECS=600 SKIP_SSL_VALIDATION=true CONSOLE_PROXY_TLS_ADDRESS=:5443 CONSOLE_CLIENT=console @@ -20,6 +21,8 @@ ENCRYPTION_KEY=B374A26A71490437AA024E4FADD5B497FDFF1A8EA6FF12F6FB65AF2720B59CCF SQLITE_KEEP_DB=true UI_PATH=../../dist +LOG_TO_JSON=false + SSO_LOGIN=false SSO_WHITELIST= diff --git a/src/jetstream/go.mod b/src/jetstream/go.mod index 46648a6e7f..79fe2a79ff 100644 --- a/src/jetstream/go.mod +++ b/src/jetstream/go.mod @@ -35,7 +35,7 @@ require ( github.com/gorilla/context v1.1.1 github.com/gorilla/securecookie v1.1.1 github.com/gorilla/sessions v1.1.3 - github.com/gorilla/websocket v1.4.0 + github.com/gorilla/websocket v1.4.1 github.com/govau/cf-common v0.0.7 github.com/jessevdk/go-flags v1.4.0 // indirect github.com/jtolds/gls v4.20.0+incompatible // indirect @@ -49,12 +49,15 @@ require ( github.com/mattn/go-colorable v0.1.4 // indirect github.com/mattn/go-isatty v0.0.10 // indirect github.com/mattn/go-runewidth v0.0.4 // indirect - github.com/mattn/go-sqlite3 v1.10.0 + github.com/mattn/go-sqlite3 v1.13.0 github.com/mholt/archiver v3.1.1+incompatible github.com/mitchellh/mapstructure v1.1.2 // indirect github.com/moby/moby v1.13.1 // indirect + github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d // indirect github.com/nwaples/rardecode v1.0.0 // indirect github.com/nwmac/sqlitestore v0.0.0-20180824125213-7d2ab221fb3f + github.com/onsi/ginkgo v1.11.0 // indirect + github.com/onsi/gomega v1.8.1 // indirect github.com/pierrec/lz4 v2.0.5+incompatible // indirect github.com/satori/go.uuid v1.2.0 github.com/sirupsen/logrus v1.3.0 @@ -69,7 +72,7 @@ require ( google.golang.org/appengine v1.5.0 // indirect gopkg.in/DATA-DOG/go-sqlmock.v1 v1.0.0-00010101000000-000000000000 gopkg.in/cheggaaa/pb.v1 v1.0.27 // indirect - gopkg.in/yaml.v2 v2.2.2 + gopkg.in/yaml.v2 v2.2.7 ) replace github.com/cloudfoundry-incubator/stratos/src/jetstream/plugins/kubernetes => ./plugins/kubernetes diff --git a/src/jetstream/go.sum b/src/jetstream/go.sum index ebbb9c968a..d8749d7492 100644 --- a/src/jetstream/go.sum +++ b/src/jetstream/go.sum @@ -88,6 +88,7 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwC github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8 h1:DujepqpGd1hyOd7aW59XpK7Qymp8iy83xq74fLr21is= @@ -137,6 +138,8 @@ github.com/gorilla/sessions v1.1.3 h1:uXoZdcdA5XdXF3QzuSlheVRUvjl+1rKY7zBXL68L9R github.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/govau/cf-common v0.0.7 h1:uhp1P6XM6GGzu1+A4C7LELLX/9mCmH6W5DpJZC0kWmo= github.com/govau/cf-common v0.0.7/go.mod h1:5xL/OfE7wxeyHlXb7iei0rAbdQ/5v6dF18BZknPv7NQ= github.com/gregjones/httpcache v0.0.0-20190212212710-3befbb6ad0cc h1:f8eY6cV/x1x+HLjOp4r72s/31/V2aTUtg5oKRRPf8/Q= @@ -149,6 +152,8 @@ github.com/helm/monocular v1.4.0/go.mod h1:PpkCN0v4zVVigsIHnsQdJytKFmaUkwfhxB7z3 github.com/heptio/authenticator v0.3.0/go.mod h1:Q86X8hc61JXhE5XxYLKmrSRWby/Oe8IIYZIBgmGVkTA= github.com/heptiolabs/healthcheck v0.0.0-20180807145615-6ff867650f40 h1:GT4RsKmHh1uZyhmTkWJTDALRjSHYQp6FRKrotf0zhAs= github.com/heptiolabs/healthcheck v0.0.0-20180807145615-6ff867650f40/go.mod h1:NtmN9h8vrTveVQRLHcX2HQ5wIPBDCsZ351TGbZWgg38= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.2.0 h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI= @@ -208,6 +213,8 @@ github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o= github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v1.13.0 h1:LnJI81JidiW9r7pS/hXe6cFeO5EXNq7KbfvoJLRI69c= +github.com/mattn/go-sqlite3 v1.13.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mholt/archiver v3.1.1+incompatible h1:1dCVxuqs0dJseYEhi5pl7MYPH9zDa1wBi7mF09cbNkU= @@ -224,10 +231,17 @@ github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9 github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ= +github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U= github.com/nwaples/rardecode v1.0.0 h1:r7vGuS5akxOnR4JQSkko62RJ1ReCMXxQRPtxsiFMBOs= github.com/nwaples/rardecode v1.0.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= github.com/nwmac/sqlitestore v0.0.0-20180824125213-7d2ab221fb3f h1:0U8+7akQEpWd5oaEgSKryzEEeI2oChQNc0ealKppMrk= github.com/nwmac/sqlitestore v0.0.0-20180824125213-7d2ab221fb3f/go.mod h1:GVvWHloj3TN6Mb3PH286FnNmEWPnn9VGEM8AhUUbdlw= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.8.1 h1:C5Dqfs/LeauYDX0jJXIe2SWmwCbGzx9yF8C8xy3Lh34= +github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= @@ -271,6 +285,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/technosophos/moniker v0.0.0-20180509230615-a5dbd03a2245/go.mod h1:O1c8HleITsZqzNZDjSNzirUGsMT0oGu9LhHKoJrqO+A= github.com/ulikunitz/xz v0.5.6 h1:jGHAfXawEGZQ3blwU5wnWKQJvAraT7Ftq9EXjnXYgt8= @@ -304,6 +319,7 @@ golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86h golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -319,6 +335,7 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -333,6 +350,8 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuA golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c= @@ -345,13 +364,20 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.27 h1:kJdccidYzt3CaHD1crCFTS1hxyhSi059NhOFUf03YFo= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/square/go-jose.v2 v2.2.2 h1:orlkJ3myw8CN1nVQHBFfloD+L3egixIa4FvUP6RosSA= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo= +gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/api v0.0.0-20190222213804-5cb15d344471 h1:MzQGt8qWQCR+39kbYRd0uQqsvSidpYqJLFeWiJ9l4OE= k8s.io/api v0.0.0-20190222213804-5cb15d344471/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= diff --git a/src/jetstream/main.go b/src/jetstream/main.go index 0b20cbac5e..2166e7eb38 100644 --- a/src/jetstream/main.go +++ b/src/jetstream/main.go @@ -50,6 +50,7 @@ const ( SessionExpiry = 20 * 60 // Session cookies expire after 20 minutes UpgradeVolume = "UPGRADE_VOLUME" UpgradeLockFileName = "UPGRADE_LOCK_FILENAME" + LogToJSON = "LOG_TO_JSON" VCapApplication = "VCAP_APPLICATION" defaultSessionSecret = "wheeee!" ) @@ -108,7 +109,22 @@ func getEnvironmentLookup() *env.VarSet { } func main() { + + // Register time.Time in gob + gob.Register(time.Time{}) + + // Create common method for looking up config + envLookup := getEnvironmentLookup() + log.SetFormatter(&log.TextFormatter{ForceColors: true, FullTimestamp: true, TimestampFormat: time.UnixDate}) + + // Change to JSON logging if configured + if logToJSON, ok := envLookup.Lookup(LogToJSON); ok { + if logToJSON == "true" { + log.SetFormatter(&log.JSONFormatter{TimestampFormat: time.UnixDate}) + } + } + log.SetOutput(os.Stdout) log.Info("========================================") @@ -117,12 +133,6 @@ func main() { log.Info("") log.Info("Initialization started.") - // Register time.Time in gob - gob.Register(time.Time{}) - - // Create common method for looking up config - envLookup := getEnvironmentLookup() - // Check to see if we are running as the database migrator if migrateDatabase(envLookup) { // End execution @@ -253,6 +263,16 @@ func main() { return } + // Init auth service + err = portalProxy.InitStratosAuthService(interfaces.AuthEndpointTypes[portalProxy.Config.AuthEndpointType]) + if err != nil { + log.Warnf("Defaulting to UAA authentication: %v", err) + err = portalProxy.InitStratosAuthService(interfaces.Remote) + if err != nil { + log.Fatalf("Could not initialise auth service. %v", err) + } + } + // Initialise Plugins portalProxy.loadPlugins() @@ -340,6 +360,7 @@ func initialiseConsoleConfiguration(portalProxy *portalProxy) error { if consoleConfig.IsSetupComplete() { portalProxy.Config.ConsoleConfig = consoleConfig portalProxy.Config.SSOLogin = consoleConfig.UseSSO + portalProxy.Config.AuthEndpointType = consoleConfig.AuthEndpointType } return nil @@ -614,15 +635,6 @@ func newPortalProxy(pc interfaces.PortalConfig, dcp *sql.DB, ss HttpSessionStore UserInfo: pp.GetCNSIUserFromBasicToken, }) - err := pp.InitStratosAuthService(interfaces.AuthEndpointTypes[pp.Config.AuthEndpointType]) - if err != nil { - log.Warnf("Defaulting to UAA authentication: %v", err) - err = pp.InitStratosAuthService(interfaces.Remote) - if err != nil { - log.Fatalf("Could not initialise auth service. %v", err) - } - } - // OIDC pp.AddAuthProvider(interfaces.AuthTypeOIDC, interfaces.AuthProvider{ Handler: pp.DoOidcFlowRequest, @@ -753,9 +765,20 @@ func (p *portalProxy) GetHttpClient(skipSSLValidation bool) http.Client { return p.getHttpClient(skipSSLValidation, false) } +// GetHttpClientForRequest returns an Http Client for the giving request func (p *portalProxy) GetHttpClientForRequest(req *http.Request, skipSSLValidation bool) http.Client { isMutating := req.Method != "GET" && req.Method != "HEAD" - return p.getHttpClient(skipSSLValidation, isMutating) + client := p.getHttpClient(skipSSLValidation, isMutating) + + // Is this is a long-running request, then use a different timeout + if req.Header.Get(longRunningTimeoutHeader) == "true" { + longRunningClient := http.Client{} + longRunningClient.Transport = client.Transport + longRunningClient.Timeout = time.Duration(p.GetConfig().HTTPClientTimeoutLongRunningInSecs) * time.Second + return longRunningClient + } + + return client } func (p *portalProxy) getHttpClient(skipSSLValidation bool, mutating bool) http.Client { @@ -798,13 +821,13 @@ func (p *portalProxy) registerRoutes(e *echo.Echo, needSetupMiddleware bool) { // Add middleware to block requests if unconfigured if needSetupMiddleware { e.Use(p.SetupMiddleware()) - pp.POST("/v1/setup", p.setupConsole) - pp.POST("/v1/setup/check", p.setupConsoleCheck) + pp.POST("/v1/setup/check", p.setupGetAvailableScopes) + pp.POST("/v1/setup/save", p.setupSaveConfig) } loginAuthGroup := pp.Group("/v1/auth") - loginAuthGroup.POST("/login/uaa", p.StratosAuthService.Login) - loginAuthGroup.POST("/logout", p.StratosAuthService.Logout) + loginAuthGroup.POST("/login/uaa", p.consoleLogin) + loginAuthGroup.POST("/logout", p.consoleLogout) // SSO Routes will only respond if SSO is enabled loginAuthGroup.GET("/sso_login", p.initSSOlogin) diff --git a/src/jetstream/main_test.go b/src/jetstream/main_test.go index 3e5f0d85f7..34e989f2af 100644 --- a/src/jetstream/main_test.go +++ b/src/jetstream/main_test.go @@ -63,17 +63,18 @@ func TestLoadPortalConfig(t *testing.T) { var pc interfaces.PortalConfig result, err := loadPortalConfig(pc, env.NewVarSet(env.WithMapLookup(map[string]string{ - "HTTP_CLIENT_TIMEOUT_IN_SECS": "10", - "HTTP_CLIENT_TIMEOUT_MUTATING_IN_SECS": "35", - "SKIP_SSL_VALIDATION": "true", - "CONSOLE_PROXY_TLS_ADDRESS": ":8080", - "CONSOLE_CLIENT": "portal-proxy", - "CONSOLE_CLIENT_SECRET": "ohsosecret!", - "CF_CLIENT": "portal-proxy", - "CF_CLIENT_SECRET": "ohsosecret!", - "UAA_ENDPOINT": "https://login.cf.org.com:443", - "ALLOWED_ORIGINS": "https://localhost,https://127.0.0.1", - "SESSION_STORE_SECRET": "cookiesecret", + "HTTP_CLIENT_TIMEOUT_IN_SECS": "10", + "HTTP_CLIENT_TIMEOUT_MUTATING_IN_SECS": "35", + "HTTP_CLIENT_TIMEOUT_LONGRUNNING_IN_SECS": "123", + "SKIP_SSL_VALIDATION": "true", + "CONSOLE_PROXY_TLS_ADDRESS": ":8080", + "CONSOLE_CLIENT": "portal-proxy", + "CONSOLE_CLIENT_SECRET": "ohsosecret!", + "CF_CLIENT": "portal-proxy", + "CF_CLIENT_SECRET": "ohsosecret!", + "UAA_ENDPOINT": "https://login.cf.org.com:443", + "ALLOWED_ORIGINS": "https://localhost,https://127.0.0.1", + "SESSION_STORE_SECRET": "cookiesecret", }))) if err != nil { diff --git a/src/jetstream/passthrough.go b/src/jetstream/passthrough.go index ea513b1daa..786a3bbf9a 100644 --- a/src/jetstream/passthrough.go +++ b/src/jetstream/passthrough.go @@ -10,6 +10,7 @@ import ( "net/http" "net/url" "strings" + "time" "github.com/labstack/echo" log "github.com/sirupsen/logrus" @@ -20,6 +21,12 @@ import ( // API Host Prefix to replace if the custom header is supplied const apiPrefix = "api." +const longRunningTimeoutHeader = "x-cap-long-running" + +// Timeout for long-running requests, after which we will return indicating request it still active +// to prevent hitting the 2 minute browser timeout +const longRunningRequestTimeout = 30 + type PassthroughErrorStatus struct { StatusCode int `json:"statusCode"` Status string `json:"status"` @@ -215,6 +222,7 @@ func (p *portalProxy) ProxyRequest(c echo.Context, uri *url.URL) (map[string]*in log.Debug("proxy") cnsiList := strings.Split(c.Request().Header.Get("x-cap-cnsi-list"), ",") shouldPassthrough := "true" == c.Request().Header.Get("x-cap-passthrough") + longRunning := "true" == c.Request().Header.Get(longRunningTimeoutHeader) if err := p.validateCNSIList(cnsiList); err != nil { return nil, echo.NewHTTPError(http.StatusBadRequest, err.Error()) @@ -240,6 +248,14 @@ func (p *portalProxy) ProxyRequest(c echo.Context, uri *url.URL) (map[string]*in } } + // Only support one endpoint for long running operation (due to way we do timeout with the response channel) + if longRunning { + if len(cnsiList) > 1 { + err := errors.New("Requested long-running proxy to multiple CNSIs. Only single CNSI is supported for long running passthrough") + return nil, echo.NewHTTPError(http.StatusBadRequest, err.Error()) + } + } + // send the request to each CNSI done := make(chan *interfaces.CNSIRequest) for _, cnsi := range cnsiList { @@ -247,6 +263,7 @@ func (p *portalProxy) ProxyRequest(c echo.Context, uri *url.URL) (map[string]*in if buildErr != nil { return nil, echo.NewHTTPError(http.StatusBadRequest, buildErr.Error()) } + cnsiRequest.LongRunning = longRunning // Allow the host part of the API URL to be overridden apiHost := c.Request().Header.Get("x-cap-api-host") // Don't allow any '.' chars in the api name @@ -265,15 +282,63 @@ func (p *portalProxy) ProxyRequest(c echo.Context, uri *url.URL) (map[string]*in go p.doRequest(&cnsiRequest, done) } + // Wait for all responses responses := make(map[string]*interfaces.CNSIRequest) - for range cnsiList { - res := <-done - responses[res.GUID] = res + + if !longRunning { + for range cnsiList { + res := <-done + responses[res.GUID] = res + } + } else { + // Long running has a timeout + for range cnsiList { + select { + case res := <-done: + responses[res.GUID] = res + case <-time.After(longRunningRequestTimeout * time.Second): + // For all those that have not completed, add a timeout response + for _, id := range cnsiList { + if _, ok := responses[id]; !ok { + // Did not get a response for the endpoint + responses[id] = &interfaces.CNSIRequest{ + GUID: id, + UserGUID: portalUserGUID, + Method: req.Method, + StatusCode: http.StatusAccepted, + Status: "Long Running Operation still active", + Response: makeLongRunningTimeoutError(), + Error: nil, + ResponseGUID: id, + } + } + } + break + } + } } return responses, nil } +func makeLongRunningTimeoutError() []byte { + description := "Long Running Operation still active" + var errorStatus = &PassthroughErrorStatus{ + StatusCode: http.StatusAccepted, + Status: description, + } + errorResponse := []byte(fmt.Sprint("{\"longRunningTimeout\": true, \"description\": \"" + description + "\", \"error_code\": \"longRunningTimeout\"}")) + passthroughError := &PassthroughError{} + passthroughError.Error = errorStatus + passthroughError.ErrorResponse = (*json.RawMessage)(&errorResponse) + res, e := json.Marshal(passthroughError) + if e != nil { + log.Errorf("makeLongRunningTimeoutError: could not marshal JSON: %+v", e) + } + return res +} + +// TODO: This should be used by the function above func (p *portalProxy) DoProxyRequest(requests []interfaces.ProxyRequestInfo) (map[string]*interfaces.CNSIRequest, error) { log.Debug("DoProxyRequest") @@ -401,7 +466,12 @@ func (p *portalProxy) doRequest(cnsiRequest *interfaces.CNSIRequest, done chan<- // Copy original headers through, except custom portal-proxy Headers fwdCNSIStandardHeaders(cnsiRequest, req) - // Find the auth provider for the auth type - default to oauthflow + // If this is a long running request, add a header which we can use at request time to change the timeout + if cnsiRequest.LongRunning { + req.Header.Set(longRunningTimeoutHeader, "true") + } + + // Find the auth provider for the auth type - default ot oauthflow authHandler := p.GetAuthProvider(tokenRec.AuthType) if authHandler.Handler != nil { res, err = authHandler.Handler(cnsiRequest, req) diff --git a/src/jetstream/plugins/cfapppush/deploy.go b/src/jetstream/plugins/cfapppush/deploy.go index 1065356565..c4a7595b5e 100644 --- a/src/jetstream/plugins/cfapppush/deploy.go +++ b/src/jetstream/plugins/cfapppush/deploy.go @@ -59,6 +59,7 @@ const ( SOURCE_FILE_ACK SOURCE_GITURL SOURCE_WAIT_ACK + SOURCE_DOCKER_IMG ) // Application Overrides messages @@ -125,6 +126,8 @@ func (cfAppPush *CFAppPush) deploy(echoContext echo.Context) error { stratosProject, appDir, err = getFolderSource(clientWebSocket, tempDir, msg) case SOURCE_GITURL: stratosProject, appDir, err = getGitURLSource(clientWebSocket, tempDir, msg) + case SOURCE_DOCKER_IMG: + stratosProject, appDir, err = getDockerURLSource(clientWebSocket, tempDir, msg) default: err = errors.New("Unsupported source type; don't know how to get the source for the application") } @@ -408,6 +411,47 @@ func getGitURLSource(clientWebSocket *websocket.Conn, tempDir string, msg Socket return stratosProject, tempDir, nil } +func getDockerURLSource(clientWebSocket *websocket.Conn, tempDir string, msg SocketMessage) (StratosProject, string, error) { + + var ( + err error + ) + + // The msg data is JSON for the docker info + info := DockerImageSourceInfo{} + + if err = json.Unmarshal([]byte(msg.Message), &info); err != nil { + return StratosProject{}, tempDir, err + } + + log.Debugf("Docker Image: '%s', Username '%s'", info.DockerImage, info.DockerUsername) + + // Create a manifest using the application name. This sets up the environment as if it were a git clone + applicationData := RawManifestApplication{ + Name: info.ApplicationName, + } + manifest := Applications{ + Applications: []RawManifestApplication{applicationData}, + } + marshalledYaml, err := yaml.Marshal(manifest) + manifestPath := fmt.Sprintf("%s/manifest.yml", tempDir) + err = ioutil.WriteFile(manifestPath, marshalledYaml, 0600) + if err != nil { + log.Warnf("Failed to write manifest in path %s", manifestPath) + return StratosProject{}, tempDir, err + } + + sendEvent(clientWebSocket, EVENT_CLONED) + + // Return a string that can be added to the manifest as an application env var to trace where the source originated + info.Timestamp = time.Now().Unix() + stratosProject := StratosProject{ + DeploySource: info, + } + + return stratosProject, tempDir, nil +} + func getMarshalledSocketMessage(data string, messageType MessageType) ([]byte, error) { messageStruct := SocketMessage{ @@ -523,8 +567,8 @@ func fetchManifest(repoPath string, stratosProject StratosProject, clientWebSock return manifest, err } - marshalledJson, _ := json.Marshal(stratosProject) - envVarMetaData := string(marshalledJson) + marshalledJSON, _ := json.Marshal(stratosProject) + envVarMetaData := string(marshalledJSON) // If we have metadata to indicate the source origin, add it to the manifest if len(envVarMetaData) > 0 { diff --git a/src/jetstream/plugins/cfapppush/pushapp/pushapp.go b/src/jetstream/plugins/cfapppush/pushapp/pushapp.go index 05fbd1b896..801b79751b 100644 --- a/src/jetstream/plugins/cfapppush/pushapp/pushapp.go +++ b/src/jetstream/plugins/cfapppush/pushapp/pushapp.go @@ -77,6 +77,8 @@ type CFPushAppOverrides struct { Host string `json:"host"` Domain string `json:"domain"` Path string `json:"path"` + DockerImage string `json:"dockerImage"` + DockerUsername string `json:"dockerUsername"` } // ErrorType default error returned @@ -268,9 +270,11 @@ func (c *CFPushApp) Init(appDir string, manifestPath string, overrides CFPushApp flags = append(flags, "--random-route", strconv.FormatBool(overrides.RandomRoute)) flags = appendFlag(flags, "--route-path", overrides.Path) flags = appendFlag(flags, "-s", overrides.Stack) - if overrides.Instances != nil { + if overrides.Time != nil { flags = append(flags, "-t", strconv.Itoa(*overrides.Time)) } + flags = appendFlag(flags, "--docker-image", overrides.DockerImage) + flags = appendFlag(flags, "--docker-username", overrides.DockerUsername) log.Debugf("Cf Push Overrides: %v", flags) diff --git a/src/jetstream/plugins/cfapppush/types.go b/src/jetstream/plugins/cfapppush/types.go index a945f76d40..53e21c6e51 100644 --- a/src/jetstream/plugins/cfapppush/types.go +++ b/src/jetstream/plugins/cfapppush/types.go @@ -56,6 +56,14 @@ type GitUrlSourceInfo struct { CommitHash string `json:"commit"` } +// DockerImageSourceInfo - Structure used to provide metadata about the docker source +type DockerImageSourceInfo struct { + DeploySource + ApplicationName string `json:"applicationName"` + DockerImage string `json:"dockerImage"` + DockerUsername string `json:"dockerUsername"` +} + type FolderSourceInfo struct { DeploySource WaitAfterUpload bool `json:"wait"` diff --git a/src/jetstream/plugins/metrics/cloud_foundry.go b/src/jetstream/plugins/metrics/cloud_foundry.go index f7fa8c8e84..7fd1e6e1e2 100644 --- a/src/jetstream/plugins/metrics/cloud_foundry.go +++ b/src/jetstream/plugins/metrics/cloud_foundry.go @@ -15,6 +15,7 @@ import ( var ( cellQueryWhiteList = []string{ "firehose_value_metric_rep_unhealthy_cell", + "firehose_value_metric_rep_garden_health_check_failed", "firehose_value_metric_rep_capacity_remaining_containers", "firehose_value_metric_rep_capacity_remaining_disk", "firehose_value_metric_rep_capacity_remaining_memory", @@ -205,6 +206,5 @@ func (m *MetricsSpecification) getCloudFoundryCellMetrics(c echo.Context) error } cnsiList := strings.Split(c.Request().Header.Get("x-cap-cnsi-list"), ",") - return m.makePrometheusRequest(c, cnsiList, "") } diff --git a/src/jetstream/repository/console_config/env_lookup.go b/src/jetstream/repository/console_config/env_lookup.go index 8c87844b34..d5d3997200 100644 --- a/src/jetstream/repository/console_config/env_lookup.go +++ b/src/jetstream/repository/console_config/env_lookup.go @@ -104,8 +104,14 @@ func MigrateSetupData(portal interfaces.PortalProxy, configStore Repository) err return err } - if err := migrateConfigSetting(portal.Env(), configStore, "SSO_LOGIN", strconv.FormatBool(config.UseSSO), "false"); err != nil { - return err + // Don't store previous SSO_LOGIN value if it's false. + // SSO_LOGIN was incorrectly being set in previous console config table, this was then transferred over here where the console expects + // previous values to have been explicitly set by user (and as such should take precedents over env vars) + // See https://github.com/cloudfoundry/stratos/issues/4013 + if config.UseSSO == true { + if err := migrateConfigSetting(portal.Env(), configStore, "SSO_LOGIN", strconv.FormatBool(config.UseSSO), "false"); err != nil { + return err + } } // Delete the content form the legacy table diff --git a/src/jetstream/repository/interfaces/structs.go b/src/jetstream/repository/interfaces/structs.go index dc337edf21..d6d1ca5f87 100644 --- a/src/jetstream/repository/interfaces/structs.go +++ b/src/jetstream/repository/interfaces/structs.go @@ -307,6 +307,7 @@ type CNSIRequest struct { StatusCode int `json:"statusCode"` Status string `json:"status"` PassThrough bool `json:"-"` + LongRunning bool `json:"-"` Response []byte `json:"-"` Error error `json:"-"` @@ -314,39 +315,40 @@ type CNSIRequest struct { } type PortalConfig struct { - HTTPClientTimeoutInSecs int64 `configName:"HTTP_CLIENT_TIMEOUT_IN_SECS"` - HTTPClientTimeoutMutatingInSecs int64 `configName:"HTTP_CLIENT_TIMEOUT_MUTATING_IN_SECS"` - HTTPConnectionTimeoutInSecs int64 `configName:"HTTP_CONNECTION_TIMEOUT_IN_SECS"` - TLSAddress string `configName:"CONSOLE_PROXY_TLS_ADDRESS"` - TLSCert string `configName:"CONSOLE_PROXY_CERT"` - TLSCertKey string `configName:"CONSOLE_PROXY_CERT_KEY"` - TLSCertPath string `configName:"CONSOLE_PROXY_CERT_PATH"` - TLSCertKeyPath string `configName:"CONSOLE_PROXY_CERT_KEY_PATH"` - CFClient string `configName:"CF_CLIENT"` - CFClientSecret string `configName:"CF_CLIENT_SECRET"` - AllowedOrigins []string `configName:"ALLOWED_ORIGINS"` - SessionStoreSecret string `configName:"SESSION_STORE_SECRET"` - EncryptionKeyVolume string `configName:"ENCRYPTION_KEY_VOLUME"` - EncryptionKeyFilename string `configName:"ENCRYPTION_KEY_FILENAME"` - EncryptionKey string `configName:"ENCRYPTION_KEY"` - AutoRegisterCFUrl string `configName:"AUTO_REG_CF_URL"` - AutoRegisterCFName string `configName:"AUTO_REG_CF_NAME"` - SSOLogin bool `configName:"SSO_LOGIN"` - SSOOptions string `configName:"SSO_OPTIONS"` - SSOWhiteList string `configName:"SSO_WHITELIST"` - AuthEndpointType string `configName:"AUTH_ENDPOINT_TYPE"` - CookieDomain string `configName:"COOKIE_DOMAIN"` - LogLevel string `configName:"LOG_LEVEL"` - CFAdminIdentifier string - CloudFoundryInfo *CFInfo - HTTPS bool - EncryptionKeyInBytes []byte - ConsoleVersion string - IsCloudFoundry bool - LoginHooks []LoginHook - SessionStore SessionStorer - ConsoleConfig *ConsoleConfig - PluginConfig map[string]string - DatabaseProviderName string - EnableTechPreview bool `configName:"ENABLE_TECH_PREVIEW"` + HTTPClientTimeoutInSecs int64 `configName:"HTTP_CLIENT_TIMEOUT_IN_SECS"` + HTTPClientTimeoutMutatingInSecs int64 `configName:"HTTP_CLIENT_TIMEOUT_MUTATING_IN_SECS"` + HTTPClientTimeoutLongRunningInSecs int64 `configName:"HTTP_CLIENT_TIMEOUT_LONGRUNNING_IN_SECS"` + HTTPConnectionTimeoutInSecs int64 `configName:"HTTP_CONNECTION_TIMEOUT_IN_SECS"` + TLSAddress string `configName:"CONSOLE_PROXY_TLS_ADDRESS"` + TLSCert string `configName:"CONSOLE_PROXY_CERT"` + TLSCertKey string `configName:"CONSOLE_PROXY_CERT_KEY"` + TLSCertPath string `configName:"CONSOLE_PROXY_CERT_PATH"` + TLSCertKeyPath string `configName:"CONSOLE_PROXY_CERT_KEY_PATH"` + CFClient string `configName:"CF_CLIENT"` + CFClientSecret string `configName:"CF_CLIENT_SECRET"` + AllowedOrigins []string `configName:"ALLOWED_ORIGINS"` + SessionStoreSecret string `configName:"SESSION_STORE_SECRET"` + EncryptionKeyVolume string `configName:"ENCRYPTION_KEY_VOLUME"` + EncryptionKeyFilename string `configName:"ENCRYPTION_KEY_FILENAME"` + EncryptionKey string `configName:"ENCRYPTION_KEY"` + AutoRegisterCFUrl string `configName:"AUTO_REG_CF_URL"` + AutoRegisterCFName string `configName:"AUTO_REG_CF_NAME"` + SSOLogin bool `configName:"SSO_LOGIN"` + SSOOptions string `configName:"SSO_OPTIONS"` + SSOWhiteList string `configName:"SSO_WHITELIST"` + AuthEndpointType string `configName:"AUTH_ENDPOINT_TYPE"` + CookieDomain string `configName:"COOKIE_DOMAIN"` + LogLevel string `configName:"LOG_LEVEL"` + CFAdminIdentifier string + CloudFoundryInfo *CFInfo + HTTPS bool + EncryptionKeyInBytes []byte + ConsoleVersion string + IsCloudFoundry bool + LoginHooks []LoginHook + SessionStore SessionStorer + ConsoleConfig *ConsoleConfig + PluginConfig map[string]string + DatabaseProviderName string + EnableTechPreview bool `configName:"ENABLE_TECH_PREVIEW"` } diff --git a/src/jetstream/repository/tokens/pgsql_tokens.go b/src/jetstream/repository/tokens/pgsql_tokens.go index 427323ef83..37e715551c 100644 --- a/src/jetstream/repository/tokens/pgsql_tokens.go +++ b/src/jetstream/repository/tokens/pgsql_tokens.go @@ -14,18 +14,18 @@ import ( var findAuthToken = `SELECT token_guid, auth_token, refresh_token, token_expiry, auth_type, meta_data FROM tokens - WHERE token_type = 'uaa' AND user_guid = $1` + WHERE token_type = 'uaa' AND cnsi_guid = 'STRATOS' AND user_guid = $1` var countAuthTokens = `SELECT COUNT(*) FROM tokens - WHERE token_type = 'uaa' AND user_guid = $1` + WHERE token_type = 'uaa' AND cnsi_guid = 'STRATOS' AND user_guid = $1 ` -var insertAuthToken = `INSERT INTO tokens (token_guid, user_guid, token_type, auth_token, refresh_token, token_expiry) - VALUES ($1, $2, $3, $4, $5, $6)` +var insertAuthToken = `INSERT INTO tokens (cnsi_guid, token_guid, user_guid, token_type, auth_token, refresh_token, token_expiry) + VALUES ('STRATOS', $1, $2, $3, $4, $5, $6)` var updateAuthToken = `UPDATE tokens SET auth_token = $1, refresh_token = $2, token_expiry = $3 - WHERE user_guid = $4 AND token_type = $5` + WHERE cnsi_guid = 'STRATOS' AND user_guid = $4 AND token_type = $5` var getToken = `SELECT token_guid, auth_token, refresh_token, token_expiry, disconnected, auth_type, meta_data, user_guid, linked_token FROM tokens diff --git a/src/jetstream/session.go b/src/jetstream/session.go index 0564099004..79c331614a 100644 --- a/src/jetstream/session.go +++ b/src/jetstream/session.go @@ -16,7 +16,6 @@ import ( const ( - // XSRFTokenHeader - XSRF Token Header name XSRFTokenHeader = "X-Xsrf-Token" // XSRFTokenSessionName - XSRF Token Session name @@ -32,13 +31,8 @@ const ( jetstreamSessionName = "console-session" jetStreamSessionContextKey = "jetstream-session" jetStreamSessionContextUpdatedKey = "jetstream-session-updated" - ) - - - - // SessionValueNotFound - Error returned when a requested key was not found in the session type SessionValueNotFound struct { msg string @@ -254,6 +248,11 @@ func (p *portalProxy) verifySession(c echo.Context) error { } else { + // Still need to extend the expires_on of the Session (set session will save session, in save we update `expires_on`) + if err = p.setSessionValues(c, nil); err != nil { + return err + } + err = p.handleSessionExpiryHeader(c) if err != nil { return err @@ -272,6 +271,6 @@ func (p *portalProxy) verifySession(c echo.Context) error { return err } } - + return err } diff --git a/src/jetstream/setup_console.go b/src/jetstream/setup_console.go index 9a67fff3e3..f73df07729 100644 --- a/src/jetstream/setup_console.go +++ b/src/jetstream/setup_console.go @@ -22,7 +22,7 @@ import ( ) const ( - setupRequestRegex = "^/pp/v1/setup$" + setupRequestRegex = "^/pp/v1/setup/save$" setupCheckRequestRegex = "^/pp/v1/setup/check$" versionRequestRegex = "^/pp/v1/version$" backendRequestRegex = "^/pp/v1/" @@ -31,6 +31,15 @@ const ( func parseConsoleConfigFromForm(c echo.Context) (*interfaces.ConsoleConfig, error) { consoleConfig := new(interfaces.ConsoleConfig) + + // Local admin user configuration? + password := c.FormValue("local_admin_password") + if len(password) > 0 { + consoleConfig.LocalUserPassword = password + consoleConfig.AuthEndpointType = "local" + return consoleConfig, nil + } + url, err := url.Parse(c.FormValue("uaa_endpoint")) if err != nil { return nil, echo.NewHTTPError(http.StatusBadRequest, "Invalid UAA Endpoint value") @@ -60,7 +69,7 @@ func parseConsoleConfigFromForm(c echo.Context) (*interfaces.ConsoleConfig, erro // Check the initial parameter set and fetch the list of available scopes // This does not persist the configuration to the database at this stage -func (p *portalProxy) setupConsoleCheck(c echo.Context) error { +func (p *portalProxy) setupGetAvailableScopes(c echo.Context) error { // Check if already set up if p.GetConfig().ConsoleConfig.IsSetupComplete() { @@ -113,6 +122,41 @@ func (p *portalProxy) setupConsoleCheck(c echo.Context) error { } func saveConsoleConfig(consoleRepo console_config.Repository, consoleConfig *interfaces.ConsoleConfig) error { + if interfaces.AuthEndpointTypes[consoleConfig.AuthEndpointType] == interfaces.Local { + return saveLocalUserConsoleConfig(consoleRepo, consoleConfig) + } + + return saveUAAConsoleConfig(consoleRepo, consoleConfig) +} + +func saveLocalUserConsoleConfig(consoleRepo console_config.Repository, consoleConfig *interfaces.ConsoleConfig) error { + + log.Debug("saveLocalUserConsoleConfig") + + if err := consoleRepo.SetValue(systemGroupName, "AUTH_ENDPOINT_TYPE", "local"); err != nil { + return err + } + + if err := consoleRepo.SetValue(systemGroupName, "CONSOLE_ADMIN_SCOPE", "stratos.admin"); err != nil { + return err + } + + if err := consoleRepo.SetValue(systemGroupName, "LOCAL_USER", "admin"); err != nil { + return err + } + + if err := consoleRepo.SetValue(systemGroupName, "LOCAL_USER_SCOPE", "stratos.admin"); err != nil { + return err + } + + if err := consoleRepo.SetValue(systemGroupName, "LOCAL_USER_PASSWORD", consoleConfig.LocalUserPassword); err != nil { + return err + } + + return nil +} + +func saveUAAConsoleConfig(consoleRepo console_config.Repository, consoleConfig *interfaces.ConsoleConfig) error { log.Debugf("Saving ConsoleConfig: %+v", consoleConfig) if err := consoleRepo.SetValue(systemGroupName, "UAA_ENDPOINT", consoleConfig.UAAEndpoint.String()); err != nil { @@ -146,8 +190,10 @@ func saveConsoleConfig(consoleRepo console_config.Repository, consoleConfig *int return nil } -// Save the console setup -func (p *portalProxy) setupConsole(c echo.Context) error { +// Save the console setup data to the database +func (p *portalProxy) setupSaveConfig(c echo.Context) error { + + log.Debug("setupSaveConfig") consoleRepo, err := console_config.NewPostgresConsoleConfigRepository(p.DatabaseConnectionPool) if err != nil { @@ -173,7 +219,6 @@ func (p *portalProxy) setupConsole(c echo.Context) error { } c.NoContent(http.StatusOK) - log.Infof("Updated Stratos setup") return nil } @@ -344,6 +389,8 @@ func checkSetupComplete(portalProxy *portalProxy) bool { showStratosConfig(consoleConfig) portalProxy.Config.ConsoleConfig = consoleConfig portalProxy.Config.SSOLogin = consoleConfig.UseSSO + portalProxy.Config.AuthEndpointType = consoleConfig.AuthEndpointType + portalProxy.InitStratosAuthService(interfaces.AuthEndpointTypes[consoleConfig.AuthEndpointType]) } return consoleConfig.IsSetupComplete() diff --git a/src/test-e2e/application/application-autoscaler-e2e.spec.ts b/src/test-e2e/application/application-autoscaler-e2e.spec.ts new file mode 100644 index 0000000000..93d21fe785 --- /dev/null +++ b/src/test-e2e/application/application-autoscaler-e2e.spec.ts @@ -0,0 +1,581 @@ +import * as moment from 'moment-timezone'; +import { browser, promise } from 'protractor'; +import { timer } from 'rxjs'; +import { switchMap } from 'rxjs/operators'; + +import { e2e } from '../e2e'; +import { ConsoleUserType } from '../helpers/e2e-helpers'; +import { extendE2ETestTime } from '../helpers/extend-test-helpers'; +import { LocaleHelper } from '../locale.helper'; +import { CFPage } from '../po/cf-page.po'; +import { ConfirmDialogComponent } from '../po/confirm-dialog'; +import { CREATE_APP_DEPLOY_TEST_TYPE, createApplicationDeployTests } from './application-deploy-helper'; +import { ApplicationE2eHelper } from './application-e2e-helpers'; +import { ApplicationPageAutoscalerTab } from './po/application-page-autoscaler.po'; +import { ApplicationBasePage } from './po/application-page.po'; +import { CreateAutoscalerPolicy } from './po/create-autoscaler-policy.po'; +import { PageAutoscalerEventBase } from './po/page-autoscaler-event-base.po'; +import { PageAutoscalerMetricBase } from './po/page-autoscaler-metric-base.po'; + +let applicationE2eHelper: ApplicationE2eHelper; + +describe('Autoscaler -', () => { + + beforeAll(() => { + const setup = e2e.setup(ConsoleUserType.user) + .clearAllEndpoints() + .registerDefaultCloudFoundry() + .connectAllEndpoints(ConsoleUserType.user) + .connectAllEndpoints(ConsoleUserType.admin) + .getInfo(ConsoleUserType.admin); + applicationE2eHelper = new ApplicationE2eHelper(setup); + }); + + beforeAll(() => applicationE2eHelper.cfHelper.updateDefaultCfOrgSpace()); + + afterAll(() => { + browser.waitForAngularEnabled(true); + }); + + const { testAppName, appDetails } = createApplicationDeployTests(CREATE_APP_DEPLOY_TEST_TYPE.GIT_URL); + + describe('Tab Tests -', () => { + beforeAll(() => { + // Should be deployed, no web-socket open, so we can wait for angular again + browser.waitForAngularEnabled(true); + + expect(appDetails.cfGuid).toBeDefined(); + expect(appDetails.appGuid).toBeDefined(); + // Fresh reload so that we know the app status is correct + const appBasePage = new ApplicationBasePage(appDetails.cfGuid, appDetails.appGuid); + return appBasePage.navigateTo(); + }); + + it('Autoscale Tab -- Disabled', () => { + // Does app to be fully started + const appAutoscaler = new ApplicationPageAutoscalerTab(appDetails.cfGuid, appDetails.appGuid); + appAutoscaler.waitForAutoscalerTab(); + appAutoscaler.goToAutoscalerTab(); + appAutoscaler.waitForPage(); + expect(appAutoscaler.bannerAutoscalerTab.getButtonsCount()).toBe(1); + expect(appAutoscaler.bannerAutoscalerTab.getCreateButtonExistence()).toBe(true); + expect(appAutoscaler.messageNoPolicy.getTitleText()).toBe('This application has no Autoscaler Policy'); + }); + }); + + describe('Autoscaler Attach Policy -', () => { + const loggingPrefix = 'Edit AutoScaler Policy:'; + let createPolicy: CreateAutoscalerPolicy; + let scheduleEndDate1: moment.Moment; + + let scheduleStartDate2: moment.Moment; + let scheduleEndDate2: moment.Moment; + + let timeFormat: string; + let dateAndTimeFormat: string; + + extendE2ETestTime(80000); + + beforeAll(() => new LocaleHelper().getWindowDateTimeFormats().then(formats => { + timeFormat = formats.timeFormat; + dateAndTimeFormat = `${formats.dateFormat},${timeFormat}`; + })); + + beforeAll(() => { + const appAutoscaler = new ApplicationPageAutoscalerTab(appDetails.cfGuid, appDetails.appGuid); + appAutoscaler.goToAutoscalerTab(); + createPolicy = appAutoscaler.bannerAutoscalerTab.clickCreatePolicy(); + }); + + it('Check edit steps', () => { + expect(createPolicy.header.getTitleText()).toBe('Create AutoScaler Policy: ' + testAppName); + // Check the steps + e2e.debugLog(`${loggingPrefix} Checking Steps`); + createPolicy.stepper.getStepNames().then(steps => { + expect(steps.length).toBe(4); + expect(steps[0]).toBe('Default Instance Limits'); + expect(steps[1]).toBe('Scaling Rules'); + expect(steps[2]).toBe('Recurring Schedules'); + expect(steps[3]).toBe('Specific Dates'); + }); + }); + + it('Should pass DefaultInstanceLimits Step', () => { + e2e.debugLog(`${loggingPrefix} DefaultInstanceLimits Step`); + expect(createPolicy.stepper.getActiveStepName()).toBe('Default Instance Limits'); + // Fill in form + createPolicy.stepper.getStepperForm().fill({ instance_min_count: '1' }); + createPolicy.stepper.getStepperForm().fill({ instance_max_count: '8' }); + createPolicy.stepper.getStepperForm().fill({ timezone: 'UTC' }); + expect(createPolicy.stepper.canNext()).toBeTruthy(); + // Press next to get to source step + createPolicy.stepper.next(); + }); + + it('Should pass ScalingRules Step', () => { + e2e.debugLog(`${loggingPrefix} ScalingRules Step`); + expect(createPolicy.stepper.getActiveStepName()).toBe('Scaling Rules'); + expect(createPolicy.stepper.getRuleTilesCount()).toBe(0); + + // Click [Add] button + createPolicy.stepper.clickAddButton(); + expect(createPolicy.stepper.getRuleTilesCount()).toBe(1); + expect(createPolicy.stepper.canNext()).toBeFalsy(); + // Fill in form -- valid inputs + createPolicy.stepper.getStepperForm().fill({ metric_type: 'memoryutil' }); + createPolicy.stepper.getStepperForm().fill({ operator: '>=' }); + createPolicy.stepper.getStepperForm().fill({ threshold: '60' }); + createPolicy.stepper.getStepperForm().fill({ breach_duration_secs: '60' }); + expect(createPolicy.stepper.getMatErrorsCount()).toBe(0); + expect(createPolicy.stepper.getDoneButtonDisabledStatus()).toBe(null); + // Fill in form -- invalid inputs + createPolicy.stepper.getStepperForm().fill({ adjustment: '10' }); + createPolicy.stepper.getStepperForm().fill({ cool_down_secs: '10' }); + expect(createPolicy.stepper.getMatErrorsCount()).toBe(2); + expect(createPolicy.stepper.getDoneButtonDisabledStatus()).toBe('true'); + // Fill in form -- fix invalid inputs + createPolicy.stepper.getStepperForm().fill({ adjustment: '2' }); + createPolicy.stepper.getStepperForm().fill({ cool_down_secs: '60' }); + expect(createPolicy.stepper.getMatErrorsCount()).toBe(0); + expect(createPolicy.stepper.getDoneButtonDisabledStatus()).toBe(null); + createPolicy.stepper.clickDoneButton(); + + // Click [Add] button + createPolicy.stepper.clickAddButton(); + expect(createPolicy.stepper.getRuleTilesCount()).toBe(2); + expect(createPolicy.stepper.canNext()).toBeFalsy(); + // Fill in form -- valid inputs + createPolicy.stepper.getStepperForm().fill({ metric_type: 'throughput' }); + expect(createPolicy.stepper.getMatErrorsCount()).toBe(0); + expect(createPolicy.stepper.getDoneButtonDisabledStatus()).toBe(null); + // Fill in form -- invalid inputs + createPolicy.stepper.getStepperForm().fill({ adjustment: '10' }); + expect(createPolicy.stepper.getMatErrorsCount()).toBe(1); + expect(createPolicy.stepper.getDoneButtonDisabledStatus()).toBe('true'); + // Fill in form -- fix invalid inputs + createPolicy.stepper.getStepperForm().fill({ adjustment_type: '% instances' }); + expect(createPolicy.stepper.getMatErrorsCount()).toBe(0); + expect(createPolicy.stepper.getDoneButtonDisabledStatus()).toBe(null); + createPolicy.stepper.clickDoneButton(); + + // Click [Add] button + createPolicy.stepper.clickAddButton(); + createPolicy.stepper.clickDoneButton(); + expect(createPolicy.stepper.getRuleTilesCount()).toBe(3); + // Click [Delete] button + createPolicy.stepper.clickDeleteButton(2); + expect(createPolicy.stepper.getRuleTilesCount()).toBe(2); + + expect(createPolicy.stepper.canNext()).toBeTruthy(); + createPolicy.stepper.next(); + }); + + it('Should pass RecurringSchedules Step', () => { + e2e.debugLog(`${loggingPrefix} RecurringSchedules Step`); + expect(createPolicy.stepper.getActiveStepName()).toBe('Recurring Schedules'); + expect(createPolicy.stepper.getRuleTilesCount()).toBe(0); + + // Click [Add] button + createPolicy.stepper.clickAddButton(); + expect(createPolicy.stepper.getRuleTilesCount()).toBe(1); + expect(createPolicy.stepper.canNext()).toBeFalsy(); + // Fill in form -- valid inputs + // createPolicy.stepper.getStepperForm().fill({ effective_type: 'custom' }); + // createPolicy.stepper.getStepperForm().fill({ start_date: '2100/01/01' }); + // createPolicy.stepper.getStepperForm().fill({ end_date: '2101/01/01' }); + // createPolicy.stepper.getStepperForm().fill({ repeat_type: 'month' }); + // createPolicy.stepper.getStepperForm().fill({ days_of_month: [2, 3] }); + const startTime = moment().set('hours', 8).set('minutes', 0); + const endTime = moment().set('hours', 20).set('minutes', 0); + createPolicy.stepper.getStepperForm().fill({ days_of_week: [1, 2, 3] }); // unselect the previous options + createPolicy.stepper.getStepperForm().fill({ days_of_week: [3, 4, 5] }); // select the new options + createPolicy.stepper.getStepperForm().fill({ start_time: startTime.format(timeFormat) }); + createPolicy.stepper.getStepperForm().fill({ end_time: endTime.format(timeFormat) }); + createPolicy.stepper.getStepperForm().fill({ instance_min_count: '2' }); + createPolicy.stepper.getStepperForm().fill({ initial_min_instance_count: '5' }); + createPolicy.stepper.getStepperForm().fill({ instance_max_count: '10' }); + expect(createPolicy.stepper.getMatErrorsCount()).toBe(0); + expect(createPolicy.stepper.getDoneButtonDisabledStatus()).toBe(null); + createPolicy.stepper.clickDoneButton(); + + expect(createPolicy.stepper.canNext()).toBeTruthy(); + createPolicy.stepper.next(); + }); + + it('Should pass SpecificDates Step', () => { + e2e.debugLog(`${loggingPrefix} SpecificDates Step`); + expect(createPolicy.stepper.getActiveStepName()).toBe('Specific Dates'); + expect(createPolicy.stepper.getRuleTilesCount()).toBe(0); + + // Click [Add] button + createPolicy.stepper.clickAddButton(); + expect(createPolicy.stepper.getRuleTilesCount()).toBe(1); + expect(createPolicy.stepper.canNext()).toBeFalsy(); + + // Schedule dates should not overlap + // scheduleStartDate1 should be set close to time it's entered, this is what triggers the scaling event tested below + const scheduleStartDate1 = moment().tz('UTC').add(1, 'minutes').add(30, 'seconds'); + scheduleEndDate1 = moment().tz('UTC').add(2, 'days'); + scheduleStartDate2 = moment().tz('UTC').add(3, 'days'); + scheduleEndDate2 = moment().tz('UTC').add(4, 'days'); + + // Fill in form -- valid inputs + createPolicy.stepper.getStepperForm().fill({ start_date_time: scheduleStartDate1.format(dateAndTimeFormat) }); + createPolicy.stepper.getStepperForm().fill({ end_date_time: scheduleEndDate1.format(dateAndTimeFormat) }); + createPolicy.stepper.getStepperForm().fill({ instance_min_count: '2' }); + createPolicy.stepper.getStepperForm().fill({ initial_min_instance_count: '2' }); + createPolicy.stepper.getStepperForm().fill({ instance_max_count: '10' }); + expect(createPolicy.stepper.getMatErrorsCount()).toBe(0); + expect(createPolicy.stepper.getDoneButtonDisabledStatus()).toBe(null); + createPolicy.stepper.clickDoneButton(); + + // Bad form, have seen errors where the first schedule isn't shown in ux but is submitted. When submitted the start time is already + // in the past and the create policy request fails. Needs a better solution + e2e.sleep(1000); + + // Click [Add] button + createPolicy.stepper.clickAddButton(); + expect(createPolicy.stepper.getRuleTilesCount()).toBe(2); + expect(createPolicy.stepper.canNext()).toBeFalsy(); + // Fill in form -- invalid inputs + createPolicy.stepper.getStepperForm().fill({ instance_min_count: '20' }); + expect(createPolicy.stepper.getMatErrorsCount()).toBe(4); + // Fill in form -- fix invalid inputs + createPolicy.stepper.getStepperForm().fill({ instance_min_count: '2' }); + // Fill in form -- valid inputs + createPolicy.stepper.getStepperForm().fill({ start_date_time: scheduleStartDate2.format(dateAndTimeFormat) }); + createPolicy.stepper.getStepperForm().fill({ end_date_time: scheduleEndDate2.format(dateAndTimeFormat) }); + expect(createPolicy.stepper.getMatErrorsCount()).toBe(0); + createPolicy.stepper.clickDoneButton(); + + expect(createPolicy.stepper.canNext()).toBeTruthy(); + createPolicy.stepper.next(); + }); + + it('Should go to App Autoscaler Tab', () => { + e2e.sleep(1000); + e2e.debugLog(`${loggingPrefix} Waiting For App Autoscaler Tab`); + // Should be app autoscaler tab + const appSummaryPage = new CFPage('/applications/'); + appSummaryPage.waitForPageOrChildPage(); + appSummaryPage.header.waitForTitleText(testAppName); + browser.wait(ApplicationPageAutoscalerTab.detect() + .then(appAutoscaler => { + appDetails.cfGuid = appAutoscaler.cfGuid; + appDetails.appGuid = appAutoscaler.appGuid; + expect(appAutoscaler.bannerAutoscalerTab.getButtonsCount()).toBe(2); + expect(appAutoscaler.bannerAutoscalerTab.getEditButtonExistence()).toBe(true); + expect(appAutoscaler.bannerAutoscalerTab.getDeleteButtonExistence()).toBe(true); + + expect(appAutoscaler.cardDefault.getRunningInstancesText()).toBe('1 / 1'); + expect(appAutoscaler.cardDefault.getDefaultMinText()).toBe('1'); + expect(appAutoscaler.cardDefault.getDefaultMaxText()).toBe('8'); + + appAutoscaler.cardMetric.waitUntilShown(); + appAutoscaler.cardMetric.waitForMetricsChartContainer(); + appAutoscaler.cardMetric.waitForMetricsChart(0); + appAutoscaler.cardMetric.waitForMetricsChart(1); + expect(appAutoscaler.cardMetric.getMetricChartsCount()).toBe(2); + expect(appAutoscaler.cardMetric.getMetricChartTitleText(0)).toContain('memoryutil'); + expect(appAutoscaler.cardMetric.getMetricChartTitleText(1)).toContain('throughput'); + + expect(appAutoscaler.tableTriggers.getTableRowsCount()).toBe(2); + expect(appAutoscaler.tableTriggers.getTableRowCellContent(0, 0)).toBe('memoryutil'); + expect(appAutoscaler.tableTriggers.getTableRowCellContent(0, 1)).toBe('>=60 % for 60 secs.'); + expect(appAutoscaler.tableTriggers.getTableRowCellContent(0, 2)).toBe('+2 instances'); + expect(appAutoscaler.tableTriggers.getTableRowCellContent(1, 0)).toBe('throughput'); + expect(appAutoscaler.tableTriggers.getTableRowCellContent(1, 1)).toBe('<=10rps for 120 secs.'); + expect(appAutoscaler.tableTriggers.getTableRowCellContent(1, 2)).toBe('-10% instances'); + + expect(appAutoscaler.tableSchedules.getScheduleTableTitleText()).toBe('Scheduled Limit Rules in UTC'); + expect(appAutoscaler.tableSchedules.getRecurringTableRowsCount()).toBe(1); + expect(appAutoscaler.tableSchedules.getRecurringTableRowCellContent(0, 0)).toBe('Always'); + expect(appAutoscaler.tableSchedules.getRecurringTableRowCellContent(0, 1)).toBe('3,4,5 of the week'); + expect(appAutoscaler.tableSchedules.getRecurringTableRowCellContent(0, 2)).toBe('08:00'); + expect(appAutoscaler.tableSchedules.getRecurringTableRowCellContent(0, 3)).toBe('20:00'); + expect(appAutoscaler.tableSchedules.getRecurringTableRowCellContent(0, 4)).toBe('5'); + expect(appAutoscaler.tableSchedules.getRecurringTableRowCellContent(0, 5)).toBe('2'); + expect(appAutoscaler.tableSchedules.getRecurringTableRowCellContent(0, 6)).toBe('10'); + expect(appAutoscaler.tableSchedules.getSpecificTableRowsCount()).toBe(2); + const dateFormat2 = 'YYYY-MM-DDTHH:mm'; + expect(appAutoscaler.tableSchedules.getSpecificTableRowCellContent(0, 1)).toBe(scheduleEndDate1.format(dateFormat2)); + expect(appAutoscaler.tableSchedules.getSpecificTableRowCellContent(0, 2)).toBe('2'); + expect(appAutoscaler.tableSchedules.getSpecificTableRowCellContent(0, 3)).toBe('2'); + expect(appAutoscaler.tableSchedules.getSpecificTableRowCellContent(0, 4)).toBe('10'); + expect(appAutoscaler.tableSchedules.getSpecificTableRowCellContent(1, 0)).toBe(scheduleStartDate2.format(dateFormat2)); + expect(appAutoscaler.tableSchedules.getSpecificTableRowCellContent(1, 1)).toBe(scheduleEndDate2.format(dateFormat2)); + expect(appAutoscaler.tableSchedules.getSpecificTableRowCellContent(1, 2)).toBe('5'); + expect(appAutoscaler.tableSchedules.getSpecificTableRowCellContent(1, 3)).toBe('2'); + expect(appAutoscaler.tableSchedules.getSpecificTableRowCellContent(1, 4)).toBe('10'); + }), 10000, 'Failed to wait for App Autoscaler Tab after attach policy' + ); + }); + }); + + describe('Autoscaler Edit Policy -', () => { + const loggingPrefix = 'Edit AutoScaler Policy:'; + let createPolicy: CreateAutoscalerPolicy; + + extendE2ETestTime(60000); + + let dateAndTimeFormat; + + beforeAll(() => new LocaleHelper().getWindowDateTimeFormats().then(formats => { + const timeFormat = formats.timeFormat; + dateAndTimeFormat = `${formats.dateFormat},${timeFormat}`; + })); + + beforeAll(() => { + const appAutoscaler = new ApplicationPageAutoscalerTab(appDetails.cfGuid, appDetails.appGuid); + appAutoscaler.goToAutoscalerTab(); + createPolicy = appAutoscaler.bannerAutoscalerTab.clickEditPolicy(); + }); + + it('Check edit steps', () => { + expect(createPolicy.header.getTitleText()).toBe('Edit AutoScaler Policy: ' + testAppName); + // Check the steps + e2e.debugLog(`${loggingPrefix} Checking Steps`); + createPolicy.stepper.getStepNames().then(steps => { + expect(steps.length).toBe(4); + expect(steps[0]).toBe('Default Instance Limits'); + }); + }); + + it('Should pass DefaultInstanceLimits Step', () => { + createPolicy.stepper.getStepperForm().fill({ instance_max_count: '2' }); + expect(createPolicy.stepper.canNext()).toBeTruthy(); + createPolicy.stepper.next(); + }); + + it('Should pass ScalingRules Step', () => { + createPolicy.stepper.clickAddButton(); + createPolicy.stepper.clickDoneButton(); + expect(createPolicy.stepper.canNext()).toBeTruthy(); + createPolicy.stepper.next(); + }); + + it('Should pass RecurringSchedules Step', () => { + createPolicy.stepper.clickDeleteButton(0); + expect(createPolicy.stepper.canNext()).toBeTruthy(); + createPolicy.stepper.next(); + }); + + it('Should pass SpecificDates Step', () => { + createPolicy.stepper.clickDeleteButton(1); + expect(createPolicy.stepper.canNext()).toBeTruthy(); + + createPolicy.stepper.clickEditButton(); + createPolicy.stepper.getScheduleStartTime().then((startTime: moment.Moment) => { + + const now = moment(); + const diff = moment.duration(now.diff(startTime)); + + console.log('Testing schedule start time. Should be at least a minute into future'); + console.log(`Now: ${now.toString()}. StartTime: ${startTime.toString()}. Diff (ms): ${diff.asMilliseconds()}`); + if (diff.asMinutes() > -1) { + const scheduleStartDate1 = moment().tz('UTC').add(1, 'minutes').add(15, 'seconds'); + const scheduleEndDate1 = moment().tz('UTC').add(2, 'days'); + console.log(`Updating schedule. Start: ${scheduleStartDate1.toString()}. End ${scheduleEndDate1.toString()}`); + createPolicy.stepper.getStepperForm().waitUntilShown(); + createPolicy.stepper.getStepperForm().fill({ start_date_time: scheduleStartDate1.format(dateAndTimeFormat) }); + return createPolicy.stepper.getStepperForm().fill({ end_date_time: scheduleEndDate1.format(dateAndTimeFormat) }); + } + }); + createPolicy.stepper.clickDoneButton(); + + expect(createPolicy.stepper.canNext()).toBeTruthy(); + createPolicy.stepper.next(); + }); + + it('Should go to App Autoscaler Tab', () => { + e2e.sleep(1000); + e2e.debugLog(`${loggingPrefix} Waiting For App Autoscaler Tab`); + // Should be app autoscaler tab + const appSummaryPage = new CFPage('/applications/'); + appSummaryPage.waitForPageOrChildPage(); + appSummaryPage.header.waitForTitleText(testAppName); + browser.wait(ApplicationPageAutoscalerTab.detect() + .then(appAutoscaler => { + expect(appAutoscaler.cardDefault.getDefaultMaxText()).toBe('2'); + + expect(appAutoscaler.cardMetric.getMetricChartsCount()).toBe(3); + expect(appAutoscaler.cardMetric.getMetricChartTitleText(2)).toContain('memoryused'); + expect(appAutoscaler.tableTriggers.getTableRowsCount()).toBe(3); + expect(appAutoscaler.tableTriggers.getTableRowCellContent(2, 0)).toBe('memoryused'); + expect(appAutoscaler.tableTriggers.getTableRowCellContent(2, 1)).toBe('<=10MB for 120 secs.'); + expect(appAutoscaler.tableTriggers.getTableRowCellContent(2, 2)).toBe('-1 instances'); + + expect(appAutoscaler.tableSchedules.getRecurringTableRowsCount()).toBe(0); + expect(appAutoscaler.tableSchedules.getEmptyRecurringTableWarningText()).toBe('No recurring schedule.'); + expect(appAutoscaler.tableSchedules.getSpecificTableRowsCount()).toBe(1); + }), 10000, 'Failed to wait for App Autoscaler Tab after edit policy' + ); + }); + + }); + + describe('Autoscaler Metric Page -', () => { + const loggingPrefix = 'AutoScaler Metric Charts:'; + let metricPageBase: PageAutoscalerMetricBase; + describe('From autoscaler metric card', () => { + beforeAll(() => { + const appAutoscaler = new ApplicationPageAutoscalerTab(appDetails.cfGuid, appDetails.appGuid); + appAutoscaler.goToAutoscalerTab(); + metricPageBase = appAutoscaler.cardMetric.clickGotoMetricDashboard(); + }); + + it('Go to metric page', () => { + e2e.sleep(1000); + e2e.debugLog(`${loggingPrefix} Waiting For Autoscale Metric Page`); + metricPageBase.waitForPage(); + expect(metricPageBase.header.getTitleText()).toBe('AutoScaler Metric Charts: ' + testAppName); + expect(metricPageBase.list.cards.getCardCount()).toBe(3); + metricPageBase.header.clickIconButton('clear'); + }); + + it('Should go to App Autoscaler Tab', () => { + e2e.sleep(1000); + e2e.debugLog(`${loggingPrefix} Waiting For App Autoscaler Tab`); + // Should be app autoscaler tab + const appSummaryPage = new CFPage('/applications/'); + appSummaryPage.waitForPageOrChildPage(); + appSummaryPage.header.waitForTitleText(testAppName); + browser.wait(ApplicationPageAutoscalerTab.detect() + .then(appAutoscaler => { + // expect(appAutoscaler.cardStatus.getStatusToggleInput()).toBe('true'); + // expect(appAutoscaler.cardStatus.getStatusText()).toBe('Enabled'); + }), 10000, 'Failed to wait for App Autoscaler Tab after view metric charts' + ); + }); + }); + }); + + describe('Autoscaler Event Page - ', () => { + const loggingPrefix = 'AutoScaler Event Table:'; + let eventPageBase: PageAutoscalerEventBase; + describe('From autoscaler event card', () => { + beforeAll(() => { + const appAutoscaler = new ApplicationPageAutoscalerTab(appDetails.cfGuid, appDetails.appGuid); + appAutoscaler.goToAutoscalerTab(); + eventPageBase = appAutoscaler.tableEvents.clickGotoEventPage(); + }); + + // This depends on scheduleStartDate1 + extendE2ETestTime(120000); + + /** + * Find the required scaling event row via row count and row content + * Row count is not enough on it's own as this can sometimes contain empty content + */ + function findRow(): promise.Promise { + return eventPageBase.list.table.getRowCount().then(rowCount => { + if (rowCount < 1) { + return false; + } + eventPageBase.list.table.getTableDataRaw().then(e2e.debugLog); + + // Sometimes the first row can be full of empty values, so also confirm content + return promise.all([ + eventPageBase.list.table.getCell(0, 2).getText(), + eventPageBase.list.table.getCell(0, 4).getText() + ]).then(([type, action]) => { + e2e.debugLog(''); + return type === 'schedule' && action === '+1 instance(s) because limited by min instances 2'; + }); + }); + } + + function waitForRow() { + const sub = timer(5000, 5000).pipe( + switchMap(() => promise.all([ + findRow(), + eventPageBase.list.header.isRefreshing() + ])) + ).subscribe(([foundRow, isRefreshing]) => { + e2e.debugLog('Waiting for event row: Checking'); + if (isRefreshing) { + e2e.debugLog('Waiting for event row: Skip actions... list is refreshing'); + return; + } + if (foundRow) { + e2e.debugLog('Waiting for event row: Found row!'); + sub.unsubscribe(); + } else { + e2e.debugLog('Waiting for event row: manually refreshing list'); + eventPageBase.list.header.refresh(); + } + }); + browser.wait(() => sub.closed); + } + + it('Go to events page', () => { + e2e.debugLog(`${loggingPrefix} Waiting For Autoscale Event Page`); + eventPageBase.waitForPage(); + expect(eventPageBase.header.getTitleText()).toBe('AutoScaler Scaling Events: ' + testAppName); + + browser.waitForAngularEnabled().then(res => e2e.debugLog('browser.waitForAngularEnabled: ' + res)); + waitForRow(); + + eventPageBase.header.clickIconButton('clear'); + }); + + it('Should go to App Autoscaler Tab', () => { + e2e.debugLog(`${loggingPrefix} Waiting For App Autoscaler Tab`); + // Should be app autoscaler tab + const appSummaryPage = new CFPage('/applications/'); + appSummaryPage.waitForPageOrChildPage(); + appSummaryPage.header.waitForTitleText(testAppName); + browser.wait(ApplicationPageAutoscalerTab.detect() + .then(appAutoscaler => { + appAutoscaler.tableEvents.clickRefreshButton(); + expect(appAutoscaler.tableEvents.getTableRowsCount()).toBe(1); + expect(appAutoscaler.tableEvents.getTableRowCellContent(0, 0)).toBe('Instances scaled up from 1 to 2'); + expect(appAutoscaler.tableEvents.getTableRowCellContent(0, 1)) + .toBe('schedule starts with instance min 2, instance max 10 and instance min initial 2 limited by min instances 2'); + }), 10000, 'Failed to wait for App Autoscaler Tab after view scaling events' + ); + }); + }); + }); + + describe('Autoscaler Detach Policy -', () => { + let appAutoscaler: ApplicationPageAutoscalerTab; + + beforeAll(() => { + appAutoscaler = new ApplicationPageAutoscalerTab(appDetails.cfGuid, appDetails.appGuid); + appAutoscaler.goToAutoscalerTab(); + }); + + it('Cancel detach action', () => { + appAutoscaler.bannerAutoscalerTab.clickDeletePolicy(); + const confirm = new ConfirmDialogComponent(); + confirm.getMessage().then(message => { + expect(message).toBeTruthy(); + expect(message).toBe('Are you sure you want to delete the policy?'); + }); + confirm.cancel(); + confirm.waitUntilNotShown(); + expect(appAutoscaler.bannerAutoscalerTab.getButtonsCount()).toBe(2); + expect(appAutoscaler.bannerAutoscalerTab.getEditButtonExistence()).toBe(true); + expect(appAutoscaler.bannerAutoscalerTab.getDeleteButtonExistence()).toBe(true); + }); + + it('Confirm detach action', () => { + appAutoscaler.bannerAutoscalerTab.clickDeletePolicy(); + const confirm = new ConfirmDialogComponent(); + confirm.getMessage().then(message => { + expect(message).toBeTruthy(); + expect(message).toBe('Are you sure you want to delete the policy?'); + }); + confirm.confirm(); + confirm.waitUntilNotShown(); + expect(appAutoscaler.bannerAutoscalerTab.getButtonsCount()).toBe(1); + expect(appAutoscaler.bannerAutoscalerTab.getCreateButtonExistence()).toBe(true); + expect(appAutoscaler.tableEvents.isDisplayed()).toBe(true); + expect(appAutoscaler.tableEvents.getTableRowsCount()).toBe(1); + }); + }); + + afterAll(() => applicationE2eHelper.deleteApplication(null, { appName: testAppName })); + +}); diff --git a/src/test-e2e/application/application-create-e2e.spec.ts b/src/test-e2e/application/application-create-e2e.spec.ts index 53c2d9a0c9..8b3fa56b78 100644 --- a/src/test-e2e/application/application-create-e2e.spec.ts +++ b/src/test-e2e/application/application-create-e2e.spec.ts @@ -8,13 +8,17 @@ import { ConsoleUserType } from '../helpers/e2e-helpers'; import { SideNavigation, SideNavMenuItem } from '../po/side-nav.po'; import { ApplicationE2eHelper } from './application-e2e-helpers'; import { ApplicationBasePage } from './po/application-page.po'; +import { CreateApplicationShellStepper } from './po/create-application-shell-stepper.po'; -describe('Application Create', function () { +describe('Application Create', () => { let nav: SideNavigation; let appWall: ApplicationsPage; let applicationE2eHelper: ApplicationE2eHelper; - let cfGuid, app: APIResource; + let cfGuid; + let testAppName; + let app: APIResource; + let createAppStepper: CreateApplicationShellStepper; beforeAll(() => { nav = new SideNavigation(); @@ -31,18 +35,20 @@ describe('Application Create', function () { // Fetch the default cf, org and space up front. This saves time later beforeAll(() => applicationE2eHelper.cfHelper.updateDefaultCfOrgSpace()); - beforeEach(() => nav.goto(SideNavMenuItem.Applications)); + it('Should reach applications tab', () => nav.goto(SideNavMenuItem.Applications)); it('Should create app', () => { const testTime = (new Date()).toISOString(); - const testAppName = ApplicationE2eHelper.createApplicationName(testTime); + testAppName = ApplicationE2eHelper.createApplicationName(testTime); // Press '+' button const baseCreateAppStep = appWall.clickCreateApp(); baseCreateAppStep.waitForPage(); - const createAppStepper = baseCreateAppStep.selectShell(); + createAppStepper = baseCreateAppStep.selectShell(); createAppStepper.waitUntilShown(); + }); + it('Should create app', () => { // Expect cf step createAppStepper.waitForStepCloudFoundry(); @@ -71,18 +77,25 @@ describe('Application Create', function () { // Finish stepper expect(createAppStepper.canNext()).toBeTruthy(); createAppStepper.next(); + }); + it('Should close stepper', () => { // Wait for the stepper to exit createAppStepper.waitUntilNotShown(); + }); + it('Should reach application summary page', () => { // Determine the app guid and confirm we're on the app summary page - browser.wait(applicationE2eHelper.fetchAppInDefaultOrgSpace(testAppName).then((res) => { - expect(res.app).not.toBe(null); - app = res.app; - cfGuid = res.cfGuid; - const appSummaryPage = new ApplicationBasePage(res.cfGuid, app.metadata.guid); - appSummaryPage.waitForPage(); - })); + browser.wait( + applicationE2eHelper.fetchAppInDefaultOrgSpace(testAppName).then((res) => { + expect(res.app).not.toBe(null); + // Need these later on, so wait is important + app = res.app; + cfGuid = res.cfGuid; + const appSummaryPage = new ApplicationBasePage(res.cfGuid, app.metadata.guid); + appSummaryPage.waitForPage(); + }) + ); }); diff --git a/src/test-e2e/application/application-delete-e2e.spec.ts b/src/test-e2e/application/application-delete-e2e.spec.ts index e866920677..c6e6b74ffb 100644 --- a/src/test-e2e/application/application-delete-e2e.spec.ts +++ b/src/test-e2e/application/application-delete-e2e.spec.ts @@ -58,7 +58,7 @@ describe('Application Delete', () => { appSummaryPage.navigateTo(); appSummaryPage.waitForPage(40000); // Open delete app dialog - const deleteApp = appSummaryPage.delete(testAppName); + const deleteApp = appSummaryPage.delete(); // App did not have a route, so there should be no routes step expect(deleteApp.hasRouteStep()).toBeFalsy(); // 1 step - np header shown @@ -71,7 +71,7 @@ describe('Application Delete', () => { }); describe('Long running tests', () => { - const timeout = 100000; + const timeout = 120000; extendE2ETestTime(timeout); beforeAll(() => { @@ -93,7 +93,7 @@ describe('Application Delete', () => { const appSummaryPage = new ApplicationBasePage(cfGuid, app.metadata.guid); appSummaryPage.navigateTo(); appSummaryPage.waitForPage(); - const deleteApp = appSummaryPage.delete(testAppName); + const deleteApp = appSummaryPage.delete(); // App did not have a route, so there should be no routes step expect(deleteApp.hasRouteStep()).toBeFalsy(); diff --git a/src/test-e2e/application/application-deploy-docker-e2e.spec.ts b/src/test-e2e/application/application-deploy-docker-e2e.spec.ts new file mode 100644 index 0000000000..8215178373 --- /dev/null +++ b/src/test-e2e/application/application-deploy-docker-e2e.spec.ts @@ -0,0 +1,88 @@ +import { browser } from 'protractor'; + +import { e2e } from '../e2e'; +import { CFHelpers } from '../helpers/cf-helpers'; +import { ConsoleUserType } from '../helpers/e2e-helpers'; +import { CREATE_APP_DEPLOY_TEST_TYPE, createApplicationDeployTests } from './application-deploy-helper'; +import { ApplicationE2eHelper } from './application-e2e-helpers'; +import { ApplicationPageSummaryTab } from './po/application-page-summary.po'; + +let applicationE2eHelper: ApplicationE2eHelper; +let cfHelper: CFHelpers; + +describe('Application Deploy Docker -', () => { + + const testAppStack = e2e.secrets.getDefaultCFEndpoint().testDeployAppStack; + let defaultStack = ''; + + beforeAll(() => { + const setup = e2e.setup(ConsoleUserType.user) + .clearAllEndpoints() + .registerDefaultCloudFoundry() + .connectAllEndpoints(ConsoleUserType.user) + .connectAllEndpoints(ConsoleUserType.admin) + .getInfo(ConsoleUserType.admin); + applicationE2eHelper = new ApplicationE2eHelper(setup); + cfHelper = new CFHelpers(setup); + }); + + beforeAll(() => { + return cfHelper.fetchDefaultCFEndpointStack().then(stack => defaultStack = stack); + }); + + afterAll(() => { + browser.waitForAngularEnabled(true); + }); + + const deployRes = createApplicationDeployTests(CREATE_APP_DEPLOY_TEST_TYPE.DOCKER); + const { testAppName, appDetails, dockerUrl } = deployRes; + + + describe('Tab Tests (app status dependent) -', () => { + + it('App Summary', () => { + // Expects app to be fully started + const appSummary = new ApplicationPageSummaryTab(appDetails.cfGuid, appDetails.appGuid); + appSummary.goToSummaryTab(); + appSummary.cardStatus.waitForStatus('Deployed'); + appSummary.cardStatus.waitForSubStatus('Online'); + + appSummary.cardInstances.waitForRunningInstancesText('1 / 1'); + + const cfName = e2e.secrets.getDefaultCFEndpoint().name; + const orgName = e2e.secrets.getDefaultCFEndpoint().testOrg; + const spaceName = e2e.secrets.getDefaultCFEndpoint().testSpace; + + expect(appSummary.cardCfInfo.cf.getValue()).toBe(cfName); + expect(appSummary.cardCfInfo.org.getValue()).toBe(orgName); + expect(appSummary.cardCfInfo.space.getValue()).toBe(spaceName); + + expect(appSummary.cardUptime.getTitle()).not.toBe('Application is not running'); + expect(appSummary.cardUptime.getUptime().isDisplayed()).toBeTruthy(); + expect(appSummary.cardUptime.getUptimeText()).not.toBeNull(); + + expect(appSummary.cardInfo.memQuota.getValue()).toBe('1 GB'); + expect(appSummary.cardInfo.diskQuota.getValue()).toBe('1 GB'); + expect(appSummary.cardInfo.appState.getValue()).toBe('STARTED'); + expect(appSummary.cardInfo.packageState.getValue()).toBe('STAGED'); + expect(appSummary.cardInfo.services.getValue()).toBe('0'); + expect(appSummary.cardInfo.routes.getValue()).toBe('1'); + + expect(appSummary.cardBuildInfo.buildPack.getValue()).toBe('-'); + expect(appSummary.cardBuildInfo.stack.getValue()).toBe(testAppStack || defaultStack); + + appSummary.cardDeployInfo.waitForTitle('Deployment Info'); + expect(appSummary.cardDeployInfo.docker.isDisplayed()).toBeTruthy(); + appSummary.cardDeployInfo.docker.getValue().then(uiDockerUrl => { + expect(uiDockerUrl).toBeDefined(); + expect(uiDockerUrl).toEqual(dockerUrl); + }); + }); + + + }); + + + afterAll(() => applicationE2eHelper.deleteApplication(null, { appName: testAppName })); + +}); diff --git a/src/test-e2e/application/application-deploy-e2e.spec.ts b/src/test-e2e/application/application-deploy-e2e.spec.ts index 1c8e349a74..52a2b2dc5d 100644 --- a/src/test-e2e/application/application-deploy-e2e.spec.ts +++ b/src/test-e2e/application/application-deploy-e2e.spec.ts @@ -1,13 +1,10 @@ -import { browser, promise } from 'protractor'; +import { browser } from 'protractor'; -import { ApplicationsPage } from '../applications/applications.po'; import { e2e } from '../e2e'; import { CFHelpers } from '../helpers/cf-helpers'; import { ConsoleUserType } from '../helpers/e2e-helpers'; -import { extendE2ETestTime } from '../helpers/extend-test-helpers'; -import { CFPage } from '../po/cf-page.po'; import { ConfirmDialogComponent } from '../po/confirm-dialog'; -import { SideNavigation, SideNavMenuItem } from '../po/side-nav.po'; +import { createApplicationDeployTests } from './application-deploy-helper'; import { ApplicationE2eHelper } from './application-e2e-helpers'; import { ApplicationPageEventsTab } from './po/application-page-events.po'; import { ApplicationPageGithubTab } from './po/application-page-github.po'; @@ -16,32 +13,16 @@ import { ApplicationPageRoutesTab } from './po/application-page-routes.po'; import { ApplicationPageSummaryTab } from './po/application-page-summary.po'; import { ApplicationPageVariablesTab } from './po/application-page-variables.po'; import { ApplicationBasePage } from './po/application-page.po'; -import { DeployApplication } from './po/deploy-app.po'; -let nav: SideNavigation; -let appWall: ApplicationsPage; let applicationE2eHelper: ApplicationE2eHelper; let cfHelper: CFHelpers; -const cfName = e2e.secrets.getDefaultCFEndpoint().name; -const orgName = e2e.secrets.getDefaultCFEndpoint().testOrg; -const spaceName = e2e.secrets.getDefaultCFEndpoint().testSpace; - describe('Application Deploy -', () => { - const testApp = e2e.secrets.getDefaultCFEndpoint().testDeployApp || 'nwmac/cf-quick-app'; - const testAppName = ApplicationE2eHelper.createApplicationName(); const testAppStack = e2e.secrets.getDefaultCFEndpoint().testDeployAppStack; - let deployedCommit: promise.Promise; let defaultStack = ''; - const appDetails = { - cfGuid: '', - appGuid: '' - }; beforeAll(() => { - nav = new SideNavigation(); - appWall = new ApplicationsPage(); const setup = e2e.setup(ConsoleUserType.user) .clearAllEndpoints() .registerDefaultCloudFoundry() @@ -60,151 +41,11 @@ describe('Application Deploy -', () => { browser.waitForAngularEnabled(true); }); - describe('Deploy process - ', () => { - - beforeAll(() => nav.goto(SideNavMenuItem.Applications)); - - // Might take a bit longer to deploy the app than the global default timeout allows - extendE2ETestTime(120000); - - // Allow up to 2 minutes for the application to be deployed - describe('Should deploy app from GitHub', () => { - - const loggingPrefix = 'Application Deploy: Deploy from Github:'; - let deployApp: DeployApplication; - - beforeAll(() => { - // Should be on deploy app modal - expect(appWall.isActivePage()).toBeTruthy(); - appWall.waitForPage(); - const baseCreateAppStep = appWall.clickCreateApp(); - baseCreateAppStep.waitForPage(); - deployApp = baseCreateAppStep.selectDeploy(); - }); - - it('Check deploy steps', () => { - expect(deployApp.header.getTitleText()).toBe('Deploy from Public GitHub'); - // Check the steps - e2e.debugLog(`${loggingPrefix} Checking Steps`); - deployApp.stepper.getStepNames().then(steps => { - expect(steps.length).toBe(5); - expect(steps[0]).toBe('Cloud Foundry'); - expect(steps[1]).toBe('Source'); - expect(steps[2]).toBe('Source Config'); - expect(steps[3]).toBe('Overrides (Optional)'); - expect(steps[4]).toBe('Deploy'); - }); - }); - - it('Should pass CF/Org/Space Step', () => { - e2e.debugLog(`${loggingPrefix} Cf/Org/Space Step`); - expect(deployApp.stepper.getActiveStepName()).toBe('Cloud Foundry'); - promise.all([ - deployApp.stepper.getStepperForm().getText('cf'), - deployApp.stepper.getStepperForm().getText('org'), - deployApp.stepper.getStepperForm().getText('space') - ]).then(([cf, org, space]) => { - if (cf !== 'Cloud Foundry' && org !== 'Organization' && space !== 'Space') { - expect(deployApp.stepper.canNext()).toBeTruthy(); - } else { - expect(deployApp.stepper.canNext()).toBeFalsy(); - } - }); - - // Fill in form - deployApp.stepper.getStepperForm().fill({ cf: cfName }); - deployApp.stepper.getStepperForm().fill({ org: orgName }); - deployApp.stepper.getStepperForm().fill({ space: spaceName }); - expect(deployApp.stepper.canNext()).toBeTruthy(); - - // Press next to get to source step - deployApp.stepper.next(); - }); - - it('Should pass Source step', () => { - e2e.debugLog(`${loggingPrefix} Source Step`); - expect(deployApp.stepper.getActiveStepName()).toBe('Source'); - expect(deployApp.stepper.canNext()).toBeFalsy(); - deployApp.stepper.getStepperForm().fill({ projectname: testApp }); - - // Press next to get to source config step - deployApp.stepper.waitUntilCanNext('Next'); - deployApp.stepper.next(); - }); - - it('Should pass Source Config step', () => { - e2e.debugLog(`${loggingPrefix} Source Config Step`); - expect(deployApp.stepper.getActiveStepName()).toBe('Source Config'); - const commits = deployApp.getCommitList(); - expect(commits.getHeaderText()).toBe('Select a commit'); - - expect(deployApp.stepper.canNext()).toBeFalsy(); - - commits.getTableData().then(data => { - expect(data.length).toBeGreaterThan(0); - }); - - commits.selectRow(0); - e2e.debugLog(`${loggingPrefix} Select a commit (selected)`); - - deployedCommit = commits.getCell(0, 2).getText(); - expect(deployApp.stepper.canNext()).toBeTruthy(); - - // Press next to get to overrides step - deployApp.stepper.next(); - }); - - it('Should pass Overrides step', () => { - e2e.debugLog(`${loggingPrefix} Overrides Step`); - expect(deployApp.stepper.canNext()).toBeTruthy(); - - const overrides = deployApp.getOverridesForm(); - overrides.waitUntilShown(); - overrides.fill({ name: testAppName, random_route: true }); - - e2e.debugLog(`${loggingPrefix} Overrides Step - overrides set`); - }); - - it('Should Deploy Application', () => { - // Turn off waiting for Angular - the web socket connection is kept open which means the tests will timeout - // waiting for angular if we don't turn off. - browser.waitForAngularEnabled(false); - - // Press next to deploy the app - deployApp.stepper.next(); - - e2e.debugLog(`${loggingPrefix} Deploying Step (wait)`); - - // Wait for the application to be fully deployed - so we see any errors that occur - deployApp.waitUntilDeployed(); - - // Wait until app summary button can be pressed - deployApp.stepper.waitUntilCanNext('Go to App Summary'); - - e2e.debugLog(`${loggingPrefix} Deploying Step (after wait)`); - }, 120000); - - it('Should go to App Summary Page', () => { - // Click next - deployApp.stepper.next(); - - e2e.sleep(1000); - e2e.debugLog(`${loggingPrefix} Waiting For Application Summary Page`); - // Should be app summary - const appSummaryPage = new CFPage('/applications/'); - appSummaryPage.waitForPageOrChildPage(); - appSummaryPage.header.waitForTitleText(testAppName); - browser.wait(ApplicationBasePage.detect() - .then(appSummary => { - appDetails.cfGuid = appSummary.cfGuid; - appDetails.appGuid = appSummary.appGuid; - }), 10000, 'Failed to wait for Application Summary page after deploying application' - ); - }); - }); - }); + const deployRes = createApplicationDeployTests(); + const { testApp, testAppName, appDetails } = deployRes; - describe('Tab Tests -', () => { + describe('Tab Tests (app status independent) -', () => { + // These tests don't rely on the app status beforeAll(() => { // Should be deployed, no web-socket open, so we can wait for angular again @@ -252,9 +93,9 @@ describe('Application Deploy -', () => { expect(appGithub.commits.empty.getCustom().isPresent()).toBeFalsy(); // Check that whatever the sha we selected earlier matches the sha in the deploy info, commit details and highlighted table row - expect(deployedCommit).toBeTruthy('deployedCommit info is missing (has the deploy test run?)'); - if (deployedCommit) { - deployedCommit.then(commitSha => { + expect(deployRes.deployedCommit).toBeTruthy('deployedCommit info is missing (has the deploy test run?)'); + if (deployRes.deployedCommit) { + deployRes.deployedCommit.then(commitSha => { expect(appGithub.cardDeploymentInfo.commit.getValue()).toBe(commitSha); expect(appGithub.cardCommitInfo.sha.getValue()).toBe(commitSha); @@ -267,105 +108,117 @@ describe('Application Deploy -', () => { }); }); - it('App Summary', () => { - // Does app to be fully started - const appSummary = new ApplicationPageSummaryTab(appDetails.cfGuid, appDetails.appGuid); - appSummary.goToSummaryTab(); + describe('Tab Tests (app status dependent) -', () => { - appSummary.cardStatus.getStatus().then(res => { - expect(res.status).toBe('Deployed'); - expect(res.subStatus).toBe('Online'); - }); + it('App Summary', () => { + // Does app to be fully started + const appSummary = new ApplicationPageSummaryTab(appDetails.cfGuid, appDetails.appGuid); + appSummary.goToSummaryTab(); - appSummary.cardInstances.waitForRunningInstancesText('1 / 1'); + appSummary.cardStatus.getStatus().then(res => { + expect(res.status).toBe('Deployed'); + expect(res.subStatus).toBe('Online'); + }); - expect(appSummary.cardUptime.getTitle()).not.toBe('Application is not running'); - expect(appSummary.cardUptime.getUptime().isDisplayed()).toBeTruthy(); - expect(appSummary.cardUptime.getUptimeText()).not.toBeNull(); + appSummary.cardInstances.waitForRunningInstancesText('1 / 1'); - expect(appSummary.cardInfo.memQuota.getValue()).toBe('16 MB'); - expect(appSummary.cardInfo.diskQuota.getValue()).toBe('64 MB'); - expect(appSummary.cardInfo.appState.getValue()).toBe('STARTED'); - expect(appSummary.cardInfo.packageState.getValue()).toBe('STAGED'); - expect(appSummary.cardInfo.services.getValue()).toBe('0'); - expect(appSummary.cardInfo.routes.getValue()).toBe('1'); + const cfName = e2e.secrets.getDefaultCFEndpoint().name; + const orgName = e2e.secrets.getDefaultCFEndpoint().testOrg; + const spaceName = e2e.secrets.getDefaultCFEndpoint().testSpace; - expect(appSummary.cardCfInfo.cf.getValue()).toBe(cfName); - expect(appSummary.cardCfInfo.org.getValue()).toBe(orgName); - expect(appSummary.cardCfInfo.space.getValue()).toBe(spaceName); + expect(appSummary.cardCfInfo.cf.getValue()).toBe(cfName); + expect(appSummary.cardCfInfo.org.getValue()).toBe(orgName); + expect(appSummary.cardCfInfo.space.getValue()).toBe(spaceName); - expect(appSummary.cardBuildInfo.buildPack.getValue()).toBe('binary_buildpack'); - expect(appSummary.cardBuildInfo.stack.getValue()).toBe(testAppStack || defaultStack); + expect(appSummary.cardUptime.getTitle()).not.toBe('Application is not running'); + expect(appSummary.cardUptime.getUptime().isDisplayed()).toBeTruthy(); + expect(appSummary.cardUptime.getUptimeText()).not.toBeNull(); - appSummary.cardDeployInfo.waitForTitle('Deployment Info'); - appSummary.cardDeployInfo.github.waitUntilShown('Waiting for GitHub deployment information'); - expect(appSummary.cardDeployInfo.github.isDisplayed()).toBeTruthy(); - appSummary.cardDeployInfo.github.getValue().then(commitHash => { - expect(commitHash).toBeDefined(); - expect(commitHash.length).toBe(8); - }); + expect(appSummary.cardInfo.memQuota.getValue()).toBe('16 MB'); + expect(appSummary.cardInfo.diskQuota.getValue()).toBe('64 MB'); + expect(appSummary.cardInfo.appState.getValue()).toBe('STARTED'); + expect(appSummary.cardInfo.packageState.getValue()).toBe('STAGED'); + expect(appSummary.cardInfo.services.getValue()).toBe('0'); + expect(appSummary.cardInfo.routes.getValue()).toBe('1'); - }); + expect(appSummary.cardCfInfo.cf.getValue()).toBe(cfName); + expect(appSummary.cardCfInfo.org.getValue()).toBe(orgName); + expect(appSummary.cardCfInfo.space.getValue()).toBe(spaceName); - it('Instances Tab', () => { - // Does app to be fully started - const appInstances = new ApplicationPageInstancesTab(appDetails.cfGuid, appDetails.appGuid); - appInstances.goToInstancesTab(); + expect(appSummary.cardBuildInfo.buildPack.getValue()).toBe('binary_buildpack'); + expect(appSummary.cardBuildInfo.stack.getValue()).toBe(testAppStack || defaultStack); + + appSummary.cardDeployInfo.waitForTitle('Deployment Info'); + appSummary.cardDeployInfo.github.waitUntilShown('Waiting for GitHub deployment information'); + expect(appSummary.cardDeployInfo.github.isDisplayed()).toBeTruthy(); + appSummary.cardDeployInfo.github.getValue().then(commitHash => { + expect(commitHash).toBeDefined(); + expect(commitHash.length).toBe(8); + }); - appInstances.cardStatus.getStatus().then(res => { - expect(res.status).toBe('Deployed'); - expect(res.subStatus).toBe('Online'); }); - appInstances.cardInstances.waitForRunningInstancesText('1 / 1'); + it('Instances Tab', () => { + // Does app to be fully started + const appInstances = new ApplicationPageInstancesTab(appDetails.cfGuid, appDetails.appGuid); + appInstances.goToInstancesTab(); - expect(appInstances.cardUsage.getTitleElement().isPresent()).toBeFalsy(); - expect(appInstances.cardUsage.getUsageTable().isDisplayed()).toBeTruthy(); + appInstances.cardStatus.getStatus().then(res => { + expect(res.status).toBe('Deployed'); + expect(res.subStatus).toBe('Online'); + }); - expect(appInstances.list.empty.getDefault().isPresent()).toBeFalsy(); - expect(appInstances.list.table.getCell(0, 1).getText()).toBe('RUNNING'); + appInstances.cardInstances.waitForRunningInstancesText('1 / 1'); - }); + expect(appInstances.cardUsage.getTitleElement().isPresent()).toBeFalsy(); + expect(appInstances.cardUsage.getUsageTable().isDisplayed()).toBeTruthy(); - it('Routes Tab', () => { - const appRoutes = new ApplicationPageRoutesTab(appDetails.cfGuid, appDetails.appGuid); - appRoutes.goToRoutesTab(); - - expect(appRoutes.list.empty.getDefault().isPresent()).toBeFalsy(); - expect(appRoutes.list.empty.getCustom().getComponent().isPresent()).toBeFalsy(); - appRoutes.list.table.getCell(0, 1).getText().then((route: string) => { - expect(route).not.toBeNull(); - expect(route.length).toBeGreaterThan(testAppName.length); - const randomRouteStyleAppName = testAppName.replace(/[\.:]/g, ''); - expect(route.startsWith(randomRouteStyleAppName.substring(0, randomRouteStyleAppName.length - 11), 7)).toBeTruthy(); + expect(appInstances.list.empty.getDefault().isPresent()).toBeFalsy(); + expect(appInstances.list.table.getCell(0, 1).getText()).toBe('RUNNING'); + + }); + + it('Routes Tab', () => { + const appRoutes = new ApplicationPageRoutesTab(appDetails.cfGuid, appDetails.appGuid); + appRoutes.goToRoutesTab(); + + expect(appRoutes.list.empty.getDefault().isPresent()).toBeFalsy(); + expect(appRoutes.list.empty.getCustom().getComponent().isPresent()).toBeFalsy(); + appRoutes.list.table.getCell(0, 1).getText().then((route: string) => { + expect(route).not.toBeNull(); + expect(route.length).toBeGreaterThan(testAppName.length); + const randomRouteStyleAppName = testAppName.replace(/[\.:]/g, ''); + expect(route.startsWith(randomRouteStyleAppName.substring(0, randomRouteStyleAppName.length - 11), 7)).toBeTruthy(); + }); + appRoutes.list.table.getCell(0, 2).getText().then((tcpRoute: string) => { + expect(tcpRoute).not.toBeNull(); + expect(tcpRoute).toBe('highlight_off'); + }); }); - appRoutes.list.table.getCell(0, 2).getText().then((tcpRoute: string) => { - expect(tcpRoute).not.toBeNull(); - expect(tcpRoute).toBe('highlight_off'); + + it('Events Tab', () => { + // Does app to be fully started + const appEvents = new ApplicationPageEventsTab(appDetails.cfGuid, appDetails.appGuid); + appEvents.goToEventsTab(); + + expect(appEvents.list.empty.isDisplayed()).toBeFalsy(); + expect(appEvents.list.isTableView()).toBeTruthy(); + expect(appEvents.list.getTotalResults()).toBeGreaterThanOrEqual(3); + // Ensure that the earliest events are at the top + appEvents.list.table.toggleSort('Timestamp'); + + const currentUser = e2e.secrets.getDefaultCFEndpoint().creds.nonAdmin.username; + // Create + expect(appEvents.list.table.getCell(0, 1).getText()).toBe('audit\napp\ncreate'); + expect(appEvents.list.table.getCell(0, 0).getText()).toBe(`person\n${currentUser}`); + // Map Route + expect(appEvents.list.table.getCell(1, 1).getText()).toBe('audit\napp\nmap-route'); + expect(appEvents.list.table.getCell(1, 0).getText()).toBe(`person\n${currentUser}`); + // Update (route) + expect(appEvents.list.table.getCell(2, 1).getText()).toBe('audit\napp\nupdate'); + expect(appEvents.list.table.getCell(2, 0).getText()).toBe(`person\n${currentUser}`); }); - }); - it('Events Tab', () => { - // Does app to be fully started - const appEvents = new ApplicationPageEventsTab(appDetails.cfGuid, appDetails.appGuid); - appEvents.goToEventsTab(); - - expect(appEvents.list.empty.isDisplayed()).toBeFalsy(); - expect(appEvents.list.isTableView()).toBeTruthy(); - expect(appEvents.list.getTotalResults()).toBeGreaterThanOrEqual(2); - // Ensure that the earliest events are at the top - appEvents.list.table.toggleSort('Timestamp'); - - const currentUser = e2e.secrets.getDefaultCFEndpoint().creds.nonAdmin.username; - // Create - expect(appEvents.list.table.getCell(0, 1).getText()).toBe('audit\napp\ncreate'); - expect(appEvents.list.table.getCell(0, 2).getText()).toBe(`person\n${currentUser}`); - // Map Route - expect(appEvents.list.table.getCell(1, 1).getText()).toBe('audit\napp\nmap-route'); - expect(appEvents.list.table.getCell(1, 2).getText()).toBe(`person\n${currentUser}`); - // Update (route) - expect(appEvents.list.table.getCell(2, 1).getText()).toBe('audit\napp\nupdate'); - expect(appEvents.list.table.getCell(2, 2).getText()).toBe(`person\n${currentUser}`); }); describe('Instance scaling', () => { diff --git a/src/test-e2e/application/application-deploy-helper.ts b/src/test-e2e/application/application-deploy-helper.ts new file mode 100644 index 0000000000..6f7c55b422 --- /dev/null +++ b/src/test-e2e/application/application-deploy-helper.ts @@ -0,0 +1,255 @@ +import { browser, promise } from 'protractor'; + +import { ApplicationsPage } from '../applications/applications.po'; +import { e2e } from '../e2e'; +import { extendE2ETestTime } from '../helpers/extend-test-helpers'; +import { CFPage } from '../po/cf-page.po'; +import { SideNavigation, SideNavMenuItem } from '../po/side-nav.po'; +import { ApplicationE2eHelper } from './application-e2e-helpers'; +import { ApplicationBasePage } from './po/application-page.po'; +import { DeployApplication } from './po/deploy-app.po'; + +export enum CREATE_APP_DEPLOY_TEST_TYPE { + GIT_CLONE = 'GitHub', + GIT_URL = 'Git URL', + DOCKER = 'Docker Image', +} + +export function createApplicationDeployTests(type = CREATE_APP_DEPLOY_TEST_TYPE.GIT_CLONE): { + testApp: string, + testAppName: string, + deployedCommit: promise.Promise, + appDetails: { + cfGuid: string, + appGuid: string + }, + dockerUrl: string +} { + const res = { + testApp: e2e.secrets.getDefaultCFEndpoint().testDeployApp || 'nwmac/cf-quick-app', + testAppName: ApplicationE2eHelper.createApplicationName(), + deployedCommit: null, + appDetails: { + cfGuid: '', + appGuid + : '' + }, + dockerUrl: 'nginxdemos/hello' + }; + const testAppUrl = 'https://github.com/' + res.testApp; + const sourceText = type.toString(); // appUrl ? 'Git URL' : 'GitHub'; + + const cfName = e2e.secrets.getDefaultCFEndpoint().name; + const orgName = e2e.secrets.getDefaultCFEndpoint().testOrg; + const spaceName = e2e.secrets.getDefaultCFEndpoint().testSpace; + + + const nav = new SideNavigation(); + const appWall = new ApplicationsPage(); + + beforeAll(() => nav.goto(SideNavMenuItem.Applications)); + + // Might take a bit longer to deploy the app than the global default timeout allows + extendE2ETestTime(120000); + + describe(`Should deploy app from ${sourceText}`, () => { + + const loggingPrefix = `Application Deploy: Deploy from ${sourceText}:`; + let deployApp: DeployApplication; + + beforeAll(() => { + // Should move to deploy app modal + expect(appWall.isActivePage()).toBeTruthy(); + appWall.waitForPage(); + const baseCreateAppStep = appWall.clickCreateApp(); + baseCreateAppStep.waitForPage(); + switch (type) { + case CREATE_APP_DEPLOY_TEST_TYPE.GIT_CLONE: + deployApp = baseCreateAppStep.selectDeploy(); + break; + case CREATE_APP_DEPLOY_TEST_TYPE.GIT_URL: + deployApp = baseCreateAppStep.selectDeployUrl(); + break; + case CREATE_APP_DEPLOY_TEST_TYPE.DOCKER: + deployApp = baseCreateAppStep.selectDeployDocker(); + break; + } + + }); + + it('Check deploy steps', () => { + switch (type) { + case CREATE_APP_DEPLOY_TEST_TYPE.GIT_CLONE: + expect(deployApp.header.getTitleText()).toBe(`Deploy from Public ${sourceText}`); + break; + case CREATE_APP_DEPLOY_TEST_TYPE.GIT_URL: + expect(deployApp.header.getTitleText()).toBe(`Deploy from Public ${sourceText}`); + break; + case CREATE_APP_DEPLOY_TEST_TYPE.DOCKER: + expect(deployApp.header.getTitleText()).toBe(`Deploy from Docker Image`); + + break; + } + + // Check the steps + e2e.debugLog(`${loggingPrefix} Checking Steps`); + deployApp.stepper.getStepNames().then(steps => { + switch (type) { + case CREATE_APP_DEPLOY_TEST_TYPE.GIT_CLONE: + expect(steps.length).toBe(5); + expect(steps[0]).toBe('Cloud Foundry'); + expect(steps[1]).toBe('Source'); + expect(steps[2]).toBe('Source Config'); + expect(steps[3]).toBe('Overrides (Optional)'); + expect(steps[4]).toBe('Deploy'); + break; + case CREATE_APP_DEPLOY_TEST_TYPE.GIT_URL: + expect(steps.length).toBe(4); + expect(steps[0]).toBe('Cloud Foundry'); + expect(steps[1]).toBe('Source'); + expect(steps[2]).toBe('Overrides (Optional)'); + expect(steps[3]).toBe('Deploy'); + break; + case CREATE_APP_DEPLOY_TEST_TYPE.DOCKER: + expect(steps.length).toBe(4); + expect(steps[0]).toBe('Cloud Foundry'); + expect(steps[1]).toBe('Source'); + expect(steps[2]).toBe('Overrides (Optional)'); + expect(steps[3]).toBe('Deploy'); + break; + } + }); + }); + + it('Should pass CF/Org/Space Step', () => { + e2e.debugLog(`${loggingPrefix} Cf/Org/Space Step`); + expect(deployApp.stepper.getActiveStepName()).toBe('Cloud Foundry'); + promise.all([ + deployApp.stepper.getStepperForm().getText('cf'), + deployApp.stepper.getStepperForm().getText('org'), + deployApp.stepper.getStepperForm().getText('space') + ]).then(([cf, org, space]) => { + if (cf !== 'Cloud Foundry' && org !== 'Organization' && space !== 'Space') { + expect(deployApp.stepper.canNext()).toBeTruthy(); + } else { + expect(deployApp.stepper.canNext()).toBeFalsy(); + } + }); + + // Fill in form + deployApp.stepper.getStepperForm().fill({ cf: cfName }); + deployApp.stepper.getStepperForm().fill({ org: orgName }); + deployApp.stepper.getStepperForm().fill({ space: spaceName }); + expect(deployApp.stepper.canNext()).toBeTruthy(); + + // Press next to get to source step + deployApp.stepper.next(); + }); + + it('Should pass Source step', () => { + e2e.debugLog(`${loggingPrefix} Source Step`); + expect(deployApp.stepper.getActiveStepName()).toBe('Source'); + expect(deployApp.stepper.canNext()).toBeFalsy(); + + switch (type) { + case CREATE_APP_DEPLOY_TEST_TYPE.GIT_CLONE: + deployApp.stepper.getStepperForm().fill({ projectname: res.testApp }); + break; + case CREATE_APP_DEPLOY_TEST_TYPE.GIT_URL: + deployApp.stepper.getStepperForm().fill({ giturl: testAppUrl }); + deployApp.stepper.getStepperForm().fill({ urlbranchname: 'master' }); + break; + case CREATE_APP_DEPLOY_TEST_TYPE.DOCKER: + deployApp.stepper.getStepperForm().fill({ dockerappname: res.testAppName }); + deployApp.stepper.getStepperForm().fill({ dockerimg: res.dockerUrl }); + break; + } + + + // Press next to get to source config step + deployApp.stepper.waitUntilCanNext('Next'); + deployApp.stepper.next(); + }); + + it('Should pass Source Config step', () => { + if (type !== CREATE_APP_DEPLOY_TEST_TYPE.GIT_CLONE) { + // Skip + return; + } + + e2e.debugLog(`${loggingPrefix} Source Config Step`); + expect(deployApp.stepper.getActiveStepName()).toBe('Source Config'); + const commits = deployApp.getCommitList(); + expect(commits.getHeaderText()).toBe('Select a commit'); + + expect(deployApp.stepper.canNext()).toBeFalsy(); + + commits.getTableData().then(data => { + expect(data.length).toBeGreaterThan(0); + }); + + commits.selectRow(0); + e2e.debugLog(`${loggingPrefix} Select a commit (selected)`); + + res.deployedCommit = commits.getCell(0, 2).getText(); + expect(deployApp.stepper.canNext()).toBeTruthy(); + + // Press next to get to overrides step + deployApp.stepper.next(); + }); + + + it('Should pass Overrides step', () => { + e2e.debugLog(`${loggingPrefix} Overrides Step`); + expect(deployApp.stepper.canNext()).toBeTruthy(); + + const overrides = deployApp.getOverridesForm(); + overrides.waitUntilShown(); + + if (type !== CREATE_APP_DEPLOY_TEST_TYPE.DOCKER) { + overrides.fill({ name: res.testAppName, random_route: true }); + } + + e2e.debugLog(`${loggingPrefix} Overrides Step - overrides set`); + }); + + it('Should Deploy Application', () => { + // Turn off waiting for Angular - the web socket connection is kept open which means the tests will timeout + // waiting for angular if we don't turn off. + browser.waitForAngularEnabled(false); + + // Press next to deploy the app + deployApp.stepper.next(); + + e2e.debugLog(`${loggingPrefix} Deploying Step (wait)`); + + // Wait for the application to be fully deployed - so we see any errors that occur + deployApp.waitUntilDeployed(); + + // Wait until app summary button can be pressed + deployApp.stepper.waitUntilCanNext('Go to App Summary'); + + e2e.debugLog(`${loggingPrefix} Deploying Step (after wait)`); + }, 120000); + + it('Should go to App Summary Page', () => { + // Click next + deployApp.stepper.next(); + + e2e.sleep(1000); + e2e.debugLog(`${loggingPrefix} Waiting For Application Summary Page`); + // Should be app summary + const appSummaryPage = new CFPage('/applications/'); + appSummaryPage.waitForPageOrChildPage(); + appSummaryPage.header.waitForTitleText(res.testAppName); + browser.wait(ApplicationBasePage.detect() + .then(appSummary => { + res.appDetails.cfGuid = appSummary.cfGuid; + res.appDetails.appGuid = appSummary.appGuid; + }), 10000, 'Failed to wait for Application Summary page after deploying application' + ); + }); + }); + + return res; +} diff --git a/src/test-e2e/application/application-routes-e2e.spec.ts b/src/test-e2e/application/application-routes-e2e.spec.ts index 707c590d6f..c3a0df34c4 100644 --- a/src/test-e2e/application/application-routes-e2e.spec.ts +++ b/src/test-e2e/application/application-routes-e2e.spec.ts @@ -3,6 +3,7 @@ import { browser, promise, protractor } from 'protractor'; import { IApp } from '../../frontend/packages/core/src/core/cf-api.types'; import { APIResource } from '../../frontend/packages/store/src/types/api.types'; import { e2e } from '../e2e'; +import { CFHelpers } from '../helpers/cf-helpers'; import { ConsoleUserType } from '../helpers/e2e-helpers'; import { ConfirmDialogComponent } from '../po/confirm-dialog'; import { ApplicationE2eHelper } from './application-e2e-helpers'; @@ -10,11 +11,13 @@ import { ApplicationPageRoutesTab } from './po/application-page-routes.po'; import { CreateRoutesPage } from './po/routes-create-page.po'; describe('Application Routes -', () => { - + let cfHelper: CFHelpers; let applicationE2eHelper: ApplicationE2eHelper; - let cfGuid, app: APIResource; + let cfGuid; + let app: APIResource; let appRoutes; - let routeHostName, routePath; + let routeHostName; + let routePath; beforeAll(() => { const setup = e2e.setup(ConsoleUserType.user) @@ -24,18 +27,9 @@ describe('Application Routes -', () => { .connectAllEndpoints(ConsoleUserType.admin) .getInfo(); applicationE2eHelper = new ApplicationE2eHelper(setup); - protractor.promise.controlFlow().execute(() => { - const defaultCf = e2e.secrets.getDefaultCFEndpoint(); - // Only available until after `info` call has completed as part of setup - cfGuid = e2e.helper.getEndpointGuid(e2e.info, defaultCf.name); - return applicationE2eHelper.createApp( - cfGuid, - e2e.secrets.getDefaultCFEndpoint().testOrg, - e2e.secrets.getDefaultCFEndpoint().testSpace, - ApplicationE2eHelper.createApplicationName(), - defaultCf - ).then(appl => app = appl); - }); + cfHelper = applicationE2eHelper.cfHelper; + protractor.promise.controlFlow().execute(() => cfHelper.updateDefaultCfOrgSpace()); + }); function spaceContainsRoute(spaceGuid: string, host: string, path: string): promise.Promise { @@ -59,6 +53,15 @@ describe('Application Routes -', () => { // All of these tests assume that they run after each other + it('Create skeleton app in default org/space', done => { + // Needs browser.wait OR done + cfHelper.createTestAppAndNav(ApplicationE2eHelper.createApplicationName(), false).then(pApp => { + app = pApp.app; + cfGuid = pApp.cfGuid; + done(); + }); + }); + it('Go to Application Routes Tab', () => { appRoutes = new ApplicationPageRoutesTab(cfGuid, app.metadata.guid); appRoutes.navigateTo(); @@ -152,7 +155,7 @@ describe('Application Routes -', () => { // Find the row index of the route that's just been unbound mapExistingRoutesList.header.setSearchText(routeHostName); const rowIndexP = mapExistingRoutesList.table.getTableData().then(rows => - rows.findIndex(row => row['route'].startsWith(routeHostName, 7) && row['route'].endsWith('/' + routePath)) + rows.findIndex(row => row.route.startsWith(routeHostName, 7) && row.route.endsWith('/' + routePath)) ); expect(rowIndexP).toBeGreaterThanOrEqual(0); diff --git a/src/test-e2e/application/application-view-e2e.spec.ts b/src/test-e2e/application/application-view-e2e.spec.ts index 94eb553f1e..a947956d90 100644 --- a/src/test-e2e/application/application-view-e2e.spec.ts +++ b/src/test-e2e/application/application-view-e2e.spec.ts @@ -1,4 +1,4 @@ -import { promise, protractor } from 'protractor'; +import { protractor } from 'protractor'; import { IApp } from '../../frontend/packages/core/src/core/cf-api.types'; import { APIResource } from '../../frontend/packages/store/src/types/api.types'; @@ -21,20 +21,7 @@ describe('Application View -', () => { let app: APIResource; let appSummary: ApplicationPageSummaryTab; let defaultStack = ''; - - function createTestAppAndNav(): promise.Promise { - return cfHelper.basicCreateApp( - CFHelpers.cachedDefaultCfGuid, - CFHelpers.cachedDefaultSpaceGuid, - appName - ) - .then(pApp => app = pApp) - .then(() => { - appSummary = new ApplicationPageSummaryTab(CFHelpers.cachedDefaultCfGuid, app.metadata.guid); - appSummary.navigateTo(); - appSummary.waitForPage(); - }); - } + let cfGuid: string; beforeAll(() => { const setup = e2e.setup(ConsoleUserType.user) @@ -47,7 +34,6 @@ describe('Application View -', () => { cfHelper = applicationE2eHelper.cfHelper; protractor.promise.controlFlow().execute(() => cfHelper.updateDefaultCfOrgSpace()); - return protractor.promise.controlFlow().execute(() => createTestAppAndNav()); }); beforeAll(() => { @@ -60,30 +46,46 @@ describe('Application View -', () => { } }); + it('Create skeleton app in default org/space', done => { + // Needs browser.wait OR done + cfHelper.createTestAppAndNav(appName).then(pApp => { + app = pApp.app; + cfGuid = pApp.cfGuid; + appSummary = new ApplicationPageSummaryTab(cfGuid, app.metadata.guid); + done(); + }); + }); + describe('Breadcrumbs', () => { function testApplicationsBreadcrumb() { + appSummary.breadcrumbs.waitUntilShown(); appSummary.breadcrumbs.getBreadcrumbs().then(breadcrumbs => { expect(breadcrumbs.length).toBe(1); expect(breadcrumbs[0].label).toBe('Applications'); }); } - it('Fresh load', testApplicationsBreadcrumb); + it('Fresh load', () => { + // Should be on the app summary page already + appSummary.waitForPage(); + testApplicationsBreadcrumb(); + }); it('From App Wall', () => { + // Start at app wall const appWall = new ApplicationsPage(); appWall.navigateTo(); appWall.waitForPage(); - appSummary.navigateTo(); - appSummary.waitForPage(); + // Nav to app summary via app wall + ApplicationsPage.goToAppSummary(app.entity.name, cfGuid, app.metadata.guid); testApplicationsBreadcrumb(); }); }); describe('Tabs', () => { beforeAll(() => { - ApplicationsPage.goToAppSummary(appName, CFHelpers.cachedDefaultCfGuid, app.metadata.guid); + ApplicationsPage.goToAppSummary(appName, cfGuid, app.metadata.guid); }); it('Walk tabs', () => { @@ -142,7 +144,7 @@ describe('Application View -', () => { let appInstances: ApplicationPageInstancesTab; beforeAll(() => { - appInstances = new ApplicationPageInstancesTab(CFHelpers.cachedDefaultCfGuid, app.metadata.guid); + appInstances = new ApplicationPageInstancesTab(cfGuid, app.metadata.guid); appInstances.goToInstancesTab(); appInstances.waitForPage(); }); @@ -170,7 +172,7 @@ describe('Application View -', () => { let appRoutes: ApplicationPageRoutesTab; beforeAll(() => { - appRoutes = new ApplicationPageRoutesTab(CFHelpers.cachedDefaultCfGuid, app.metadata.guid); + appRoutes = new ApplicationPageRoutesTab(cfGuid, app.metadata.guid); appRoutes.goToRoutesTab(); appRoutes.waitForPage(); }); @@ -186,7 +188,7 @@ describe('Application View -', () => { expect(appRoutes.list.header.getAdd().isDisplayed()).toBeTruthy(); appRoutes.list.header.getAdd().click(); - const addRoutePage = new CreateRoutesPage(CFHelpers.cachedDefaultCfGuid, app.metadata.guid, app.entity.space_guid); + const addRoutePage = new CreateRoutesPage(cfGuid, app.metadata.guid, app.entity.space_guid); expect(addRoutePage.isActivePage()).toBeTruthy(); expect(addRoutePage.header.getTitleText()).toBe('Create Route'); expect(addRoutePage.type.getSelected().getText()).toBe('Create and map new route'); @@ -204,7 +206,7 @@ describe('Application View -', () => { let appEvents: ApplicationPageEventsTab; beforeAll(() => { - appEvents = new ApplicationPageEventsTab(CFHelpers.cachedDefaultCfGuid, app.metadata.guid); + appEvents = new ApplicationPageEventsTab(cfGuid, app.metadata.guid); appEvents.goToEventsTab(); appEvents.waitForPage(); }); @@ -214,7 +216,7 @@ describe('Application View -', () => { expect(appEvents.list.isTableView()).toBeTruthy(); expect(appEvents.list.getTotalResults()).toBe(1); expect(appEvents.list.table.getCell(0, 1).getText()).toBe('audit\napp\ncreate'); - expect(appEvents.list.table.getCell(0, 2).getText()).toBe('person\nadmin'); + expect(appEvents.list.table.getCell(0, 0).getText()).toBe('person\nadmin'); }); }); @@ -222,8 +224,8 @@ describe('Application View -', () => { describe('Variables Tab -', () => { let appVariables: ApplicationPageVariablesTab; - beforeAll(() => { - appVariables = new ApplicationPageVariablesTab(CFHelpers.cachedDefaultCfGuid, app.metadata.guid); + it('Navigate to variables tab', () => { + appVariables = new ApplicationPageVariablesTab(cfGuid, app.metadata.guid); appVariables.goToVariablesTab(); appVariables.waitForPage(); }); diff --git a/src/test-e2e/application/po/application-page-autoscaler.po.ts b/src/test-e2e/application/po/application-page-autoscaler.po.ts new file mode 100644 index 0000000000..b887b1e1ca --- /dev/null +++ b/src/test-e2e/application/po/application-page-autoscaler.po.ts @@ -0,0 +1,48 @@ +import { promise, browser } from 'protractor'; + +import { ApplicationBasePage } from './application-page.po'; +import { MessageNoAutoscalePolicy } from './message-no-autoscaler-policy'; +import { BannerAutoscalerTab } from './banner-autoscaler-tab'; +import { CardAutoscalerDefault } from './card-autoscaler-default.po'; +import { CardAutoscalerMetric } from './card-autoscaler-metric'; +import { TableAutoscalerEvents } from './table-autoscaler-events.po'; +import { TableAutoscalerTriggers } from './table-autoscaler-triggers'; +import { TableAutoscalerSchedules } from './table-autoscaler-schedules'; + +export class ApplicationPageAutoscalerTab extends ApplicationBasePage { + + bannerAutoscalerTab: BannerAutoscalerTab; + messageNoPolicy: MessageNoAutoscalePolicy; + cardDefault: CardAutoscalerDefault; + cardMetric: CardAutoscalerMetric; + tableTriggers: TableAutoscalerTriggers; + tableSchedules: TableAutoscalerSchedules; + tableEvents: TableAutoscalerEvents; + + constructor(public cfGuid: string, public appGuid: string) { + super(cfGuid, appGuid, 'autoscale'); + this.messageNoPolicy = new MessageNoAutoscalePolicy(); + this.bannerAutoscalerTab = new BannerAutoscalerTab(cfGuid, appGuid); + this.cardDefault = new CardAutoscalerDefault(cfGuid, appGuid); + this.cardMetric = new CardAutoscalerMetric(cfGuid, appGuid); + this.tableEvents = new TableAutoscalerEvents(cfGuid, appGuid); + this.tableTriggers = new TableAutoscalerTriggers(cfGuid, appGuid); + this.tableSchedules = new TableAutoscalerSchedules(cfGuid, appGuid); + } + + public static detect(): promise.Promise { + return browser.getCurrentUrl().then(url => { + if (url.indexOf(browser.baseUrl) === 0) { + url = url.substr(browser.baseUrl.length + 1); + } + const urlParts = url.split('/'); + expect(urlParts.length).toBe(4); + expect(urlParts[0]).toBe('applications'); + expect(urlParts[3]).toBe('autoscale'); + const cfGuid = urlParts[1]; + const appGuid = urlParts[2]; + return new ApplicationPageAutoscalerTab(cfGuid, appGuid); + }); + } + +} diff --git a/src/test-e2e/application/po/application-page-variables.po.ts b/src/test-e2e/application/po/application-page-variables.po.ts index b754ed6a30..679901c539 100644 --- a/src/test-e2e/application/po/application-page-variables.po.ts +++ b/src/test-e2e/application/po/application-page-variables.po.ts @@ -32,7 +32,7 @@ export class ApplicationPageVariablesTab extends ApplicationBasePage { this.list.table.openRowActionMenuByIndex(rowIndex).clickItem('Delete'); const confirm = new ConfirmDialogComponent(); confirm.waitUntilShown(); - expect(confirm.getMessage()).toBe(`Are you sure you want to delete '${variableName}'?`); + confirm.waitForMessage(`Are you sure you want to delete '${variableName}'?`); confirm.confirm(); return this.list.table.waitUntilNotBusy(); } diff --git a/src/test-e2e/application/po/application-page.po.ts b/src/test-e2e/application/po/application-page.po.ts index cb32b19887..d66ebd7f64 100644 --- a/src/test-e2e/application/po/application-page.po.ts +++ b/src/test-e2e/application/po/application-page.po.ts @@ -60,6 +60,14 @@ export class ApplicationBasePage extends CFPage { return this.goToTab('GitHub', 'gitscm'); } + public goToAutoscalerTab() { + return this.goToTab('Autoscale', 'autoscale'); + } + + public waitForAutoscalerTab() { + return this.tabs.waitForItem('Autoscale'); + } + private goToTab(label: string, urlSuffix: string) { return this.tabs.goToItemAndWait(label, this.navLink.substring(0, this.navLink.lastIndexOf('/')), urlSuffix); } @@ -68,7 +76,7 @@ export class ApplicationBasePage extends CFPage { return this.header.getTitleText(); } - public delete(appName: string): DeleteApplication { + public delete(): DeleteApplication { const deleteApp = new DeleteApplication(this.cfGuid, this.appGuid); this.subHeader.clickIconButton('delete'); deleteApp.waitForPage(); diff --git a/src/test-e2e/application/po/banner-autoscaler-tab.ts b/src/test-e2e/application/po/banner-autoscaler-tab.ts new file mode 100644 index 0000000000..1c2b109a66 --- /dev/null +++ b/src/test-e2e/application/po/banner-autoscaler-tab.ts @@ -0,0 +1,58 @@ +import { by, element, ElementFinder, promise, ElementArrayFinder } from 'protractor'; + +import { Component } from '../../po/component.po'; + +import { CreateAutoscalerPolicy } from './create-autoscaler-policy.po'; +export class BannerAutoscalerTab extends Component { + + constructor(public cfGuid: string, public appGuid: string, locator: ElementFinder = element(by.css('.page-header-sub-nav__container'))) { + super(locator); + } + + private getEditButton(): ElementFinder { + return this.locator.element(by.name('edit')); + } + + getEditButtonExistence(): promise.Promise { + return this.getEditButton().isPresent(); + } + + private getCreateButton(): ElementFinder { + return this.locator.element(by.name('add')); + } + + getCreateButtonExistence(): promise.Promise { + return this.getCreateButton().isPresent(); + } + + private getDeleteButton(): ElementFinder { + return this.locator.element(by.name('delete')); + } + + getDeleteButtonExistence(): promise.Promise { + return this.getDeleteButton().isPresent(); + } + + private getButtons(): ElementArrayFinder { + return this.locator.all(by.tagName('button')); + } + + getButtonsCount(): promise.Promise { + return this.getButtons().count(); + } + + clickCreatePolicy() { + this.getCreateButton().click(); + return new CreateAutoscalerPolicy(this.cfGuid, this.appGuid); + } + + clickEditPolicy() { + this.getEditButton().click(); + return new CreateAutoscalerPolicy(this.cfGuid, this.appGuid); + } + + clickDeletePolicy() { + this.getDeleteButton().click(); + } + +} diff --git a/src/test-e2e/application/po/base-create-application-stepper.po.ts b/src/test-e2e/application/po/base-create-application-stepper.po.ts index 8ccad33dac..0e9993c75f 100644 --- a/src/test-e2e/application/po/base-create-application-stepper.po.ts +++ b/src/test-e2e/application/po/base-create-application-stepper.po.ts @@ -1,9 +1,12 @@ import { TileSelector } from '../../po/tile-selector.po'; import { CreateApplicationShellStepper } from './create-application-shell-stepper.po'; import { DeployApplication } from './deploy-app.po'; + export enum APPLICATION_CREATION_TYPES { DEPLOY = 'application-deploy', - SHELL = 'application-shell' + DEPLOY_URL = 'application-deploy-url', + SHELL = 'application-shell', + DOCKER = 'application-docker' } export class BaseCreateApplicationStepper { public tiles = new TileSelector(); @@ -15,6 +18,12 @@ export class BaseCreateApplicationStepper { case APPLICATION_CREATION_TYPES.DEPLOY: this.tiles.select('Public GitHub'); return new DeployApplication(); + case APPLICATION_CREATION_TYPES.DEPLOY_URL: + this.tiles.select('Public Git URL'); + return new DeployApplication(); + case APPLICATION_CREATION_TYPES.DOCKER: + this.tiles.select('Docker Image'); + return new DeployApplication(); } } } diff --git a/src/test-e2e/application/po/card-app-deploy-info.po.ts b/src/test-e2e/application/po/card-app-deploy-info.po.ts index 549789e9f1..8608d26e56 100644 --- a/src/test-e2e/application/po/card-app-deploy-info.po.ts +++ b/src/test-e2e/application/po/card-app-deploy-info.po.ts @@ -7,12 +7,14 @@ import { MetaDataItemComponent } from '../../po/meta-data-item.po'; export class CardAppDeployInfo extends MetaCard { github: MetaDataItemComponent; + docker: MetaDataItemComponent; constructor( locator: ElementFinder = element(by.id('app-build-tab-deployment-info')) ) { super(locator, MetaCardTitleType.MAT_CARD); this.github = MetaDataItemComponent.withDynamicLabel(locator, 'GitHub'); + this.docker = MetaDataItemComponent.withDynamicLabel(locator, 'Docker Image'); } } diff --git a/src/test-e2e/application/po/card-autoscaler-default.po.ts b/src/test-e2e/application/po/card-autoscaler-default.po.ts new file mode 100644 index 0000000000..caab933f2e --- /dev/null +++ b/src/test-e2e/application/po/card-autoscaler-default.po.ts @@ -0,0 +1,36 @@ +import { by, element, ElementFinder, promise, protractor } from 'protractor'; + +import { Component } from '../../po/component.po'; +import { CreateAutoscalerPolicy } from './create-autoscaler-policy.po' + +export class CardAutoscalerDefault extends Component { + + constructor(public cfGuid: string, public appGuid: string, locator: ElementFinder = element(by.tagName('app-card-autoscaler-default'))) { + super(locator); + } + + private getRunningInstances(): ElementFinder { + return this.locator.element(by.tagName('app-running-instances')); + } + + getRunningInstancesText(): promise.Promise { + return this.getRunningInstances().getText(); + } + + private getDefaultMin(): ElementFinder { + return this.locator.element(by.css('.card-autoscaler-default__min-max')).all(by.css('.metadata-item__value')).get(0); + } + + getDefaultMinText(): promise.Promise { + return this.getDefaultMin().getText(); + } + + private getDefaultMax(): ElementFinder { + return this.locator.element(by.css('.card-autoscaler-default__min-max')).all(by.css('.metadata-item__value')).get(1); + } + + getDefaultMaxText(): promise.Promise { + return this.getDefaultMax().getText(); + } + +} diff --git a/src/test-e2e/application/po/card-autoscaler-metric.ts b/src/test-e2e/application/po/card-autoscaler-metric.ts new file mode 100644 index 0000000000..8f64ea1a79 --- /dev/null +++ b/src/test-e2e/application/po/card-autoscaler-metric.ts @@ -0,0 +1,51 @@ +import { browser, by, element, ElementArrayFinder, ElementFinder, promise, protractor } from 'protractor'; + +import { Component } from '../../po/component.po'; +import { PageAutoscalerMetricBase } from './page-autoscaler-metric-base.po'; + +const until = protractor.ExpectedConditions; + +export class CardAutoscalerMetric extends Component { + + constructor(public cfGuid: string, public appGuid: string, locator: ElementFinder = element(by.css('.autoscaler-tab__latest-metrics'))) { + super(locator); + } + + getMetricChartContainer(): ElementFinder { + return this.locator.element(by.tagName('mat-card-content')); + } + + waitForMetricsChartContainer(): promise.Promise { + return browser.wait(until.presenceOf(this.getMetricChartContainer()), 5000); + } + + getMetricChart(index: number): ElementFinder { + return this.getMetricCharts().get(index); + } + + waitForMetricsChart(index: number): promise.Promise { + return browser.wait(until.presenceOf(this.getMetricChart(index)), 5000); + } + + getMetricChartTitleText(index: number): promise.Promise { + return this.getMetricChart(index).getText(); + } + + private getMetricCharts(): ElementArrayFinder { + return this.getMetricChartContainer().all(by.tagName('app-metadata-item')); + } + + getMetricChartsCount(): promise.Promise { + return this.getMetricCharts().count(); + } + + private getGotoButton(): ElementFinder { + return this.locator.element(by.tagName('mat-card-actions')).all(by.tagName('button')).get(1); + } + + clickGotoMetricDashboard() { + this.getGotoButton().click(); + return new PageAutoscalerMetricBase(this.cfGuid, this.appGuid); + } + +} diff --git a/src/test-e2e/application/po/create-application.po.ts b/src/test-e2e/application/po/create-application.po.ts index 5ea1ec0ba7..6b748c75f2 100644 --- a/src/test-e2e/application/po/create-application.po.ts +++ b/src/test-e2e/application/po/create-application.po.ts @@ -1,9 +1,9 @@ - - -import { BaseCreateApplicationStepper, APPLICATION_CREATION_TYPES } from './base-create-application-stepper.po'; import { Page } from '../../po/page.po'; -import { DeployApplication } from './deploy-app.po'; +import { APPLICATION_CREATION_TYPES, BaseCreateApplicationStepper } from './base-create-application-stepper.po'; import { CreateApplicationShellStepper } from './create-application-shell-stepper.po'; +import { DeployApplication } from './deploy-app.po'; + + export class CreateApplication extends Page { @@ -17,6 +17,14 @@ export class CreateApplication extends Page { return this.baseStepper.selectCreationType(APPLICATION_CREATION_TYPES.DEPLOY) as DeployApplication; } + public selectDeployUrl() { + return this.baseStepper.selectCreationType(APPLICATION_CREATION_TYPES.DEPLOY_URL) as DeployApplication; + } + + public selectDeployDocker() { + return this.baseStepper.selectCreationType(APPLICATION_CREATION_TYPES.DOCKER) as DeployApplication; + } + constructor(url = '/applications/new') { super(url); } diff --git a/src/test-e2e/application/po/create-autoscaler-policy-step.po.ts b/src/test-e2e/application/po/create-autoscaler-policy-step.po.ts new file mode 100644 index 0000000000..0622a87f44 --- /dev/null +++ b/src/test-e2e/application/po/create-autoscaler-policy-step.po.ts @@ -0,0 +1,69 @@ +import * as moment from 'moment-timezone'; +import { by, ElementArrayFinder, ElementFinder, promise } from 'protractor'; + +import { FormComponent } from '../../po/form.po'; +import { StepperComponent } from '../../po/stepper.po'; + +export class CreateAutoscalerPolicyStep extends StepperComponent { + + getStepperForm = (): FormComponent => new FormComponent(this.locator.element(by.tagName('form'))); + + private getAddButton(): ElementFinder { + return this.locator.element(by.id('autoscaler-policy-edit-add')); + } + + clickAddButton() { + this.getAddButton().click(); + } + + private getEditButton(): ElementFinder { + return this.locator.element(by.id('autoscaler-policy-edit-edit')); + } + + clickEditButton() { + this.getEditButton().click(); + } + + private getDoneButton(): ElementFinder { + return this.locator.element(by.id('autoscaler-policy-edit-done')); + } + + clickDoneButton() { + this.getDoneButton().click(); + } + + getDoneButtonDisabledStatus(): promise.Promise { + return this.getDoneButton().getAttribute('disabled'); + } + + private getDeleteButton(index): ElementFinder { + return this.locator.all(by.id('autoscaler-policy-edit-delete')).get(index); + } + + clickDeleteButton(index) { + this.getDeleteButton(index).click(); + } + + private getRuleTiles(): ElementArrayFinder { + return this.locator.element(by.tagName('app-tile-grid')).all(by.tagName('app-tile-group')); + } + + getRuleTilesCount(): promise.Promise { + return this.getRuleTiles().count(); + } + + private getMatErrors(): ElementArrayFinder { + return this.locator.all(by.tagName('mat-error')); + } + + getMatErrorsCount(): promise.Promise { + return this.getMatErrors().count(); + } + + getScheduleStartTime(): promise.Promise { + return this.getStepperForm().getText('start_date_time').then(startTime => { + return moment(startTime); + }); + } + +} diff --git a/src/test-e2e/application/po/create-autoscaler-policy.po.ts b/src/test-e2e/application/po/create-autoscaler-policy.po.ts new file mode 100644 index 0000000000..ddc4464242 --- /dev/null +++ b/src/test-e2e/application/po/create-autoscaler-policy.po.ts @@ -0,0 +1,12 @@ +import { Page } from '../../po/page.po'; +import { CreateAutoscalerPolicyStep } from './create-autoscaler-policy-step.po'; + +export class CreateAutoscalerPolicy extends Page { + + public stepper: CreateAutoscalerPolicyStep = new CreateAutoscalerPolicyStep(); + + constructor(public cfGuid: string, public appGuid: string) { + super(`/autoscaler/${cfGuid}/${appGuid}/edit-autoscaler-policy`); + } + +} diff --git a/src/test-e2e/application/po/message-no-autoscaler-policy.ts b/src/test-e2e/application/po/message-no-autoscaler-policy.ts new file mode 100644 index 0000000000..fd9ffeef9c --- /dev/null +++ b/src/test-e2e/application/po/message-no-autoscaler-policy.ts @@ -0,0 +1,27 @@ +import { by, element, ElementFinder, promise } from 'protractor'; + +import { Component } from '../../po/component.po'; + +export class MessageNoAutoscalePolicy extends Component { + + constructor(locator: ElementFinder = element(by.tagName('app-no-content-message'))) { + super(locator); + } + + private getTitle(): ElementFinder { + return this.locator.element(by.css('.first-line')); + } + + getTitleText(): promise.Promise { + return this.getTitle().getText(); + } + + private getSubTitle(): ElementFinder { + return this.locator.element(by.css('.second-line')); + } + + getSubTitleText(): promise.Promise { + return this.getSubTitle().getText(); + } + +} diff --git a/src/test-e2e/application/po/page-autoscaler-event-base.po.ts b/src/test-e2e/application/po/page-autoscaler-event-base.po.ts new file mode 100644 index 0000000000..3d361419df --- /dev/null +++ b/src/test-e2e/application/po/page-autoscaler-event-base.po.ts @@ -0,0 +1,29 @@ +import { browser, promise } from 'protractor'; + +import { Page } from '../../po/page.po'; +import { ListComponent } from '../../po/list.po'; + +export class PageAutoscalerEventBase extends Page { + + list: ListComponent; + + constructor(public cfGuid: string, public appGuid: string) { + super(`/autoscaler/${cfGuid}/${appGuid}/app-autoscaler-scale-history-page`); + this.list = new ListComponent(); + } + + public static detect(): promise.Promise { + return browser.getCurrentUrl().then(url => { + if (url.indexOf(browser.baseUrl) === 0) { + url = url.substr(browser.baseUrl.length + 1); + } + const urlParts = url.split('/'); + expect(urlParts.length).toBe(4); + expect(urlParts[0]).toBe('autoscaler'); + const cfGuid = urlParts[1]; + const appGuid = urlParts[2]; + return new PageAutoscalerEventBase(cfGuid, appGuid); + }); + } + +} diff --git a/src/test-e2e/application/po/page-autoscaler-metric-base.po.ts b/src/test-e2e/application/po/page-autoscaler-metric-base.po.ts new file mode 100644 index 0000000000..5b90f14f93 --- /dev/null +++ b/src/test-e2e/application/po/page-autoscaler-metric-base.po.ts @@ -0,0 +1,29 @@ +import { browser, promise } from 'protractor'; + +import { Page } from '../../po/page.po'; +import { ListComponent } from '../../po/list.po'; + +export class PageAutoscalerMetricBase extends Page { + + list: ListComponent; + + constructor(public cfGuid: string, public appGuid: string) { + super(`/autoscaler/${cfGuid}/${appGuid}/app-autoscaler-metric-page`); + this.list = new ListComponent(); + } + + public static detect(): promise.Promise { + return browser.getCurrentUrl().then(url => { + if (url.indexOf(browser.baseUrl) === 0) { + url = url.substr(browser.baseUrl.length + 1); + } + const urlParts = url.split('/'); + expect(urlParts.length).toBe(4); + expect(urlParts[0]).toBe('autoscaler'); + const cfGuid = urlParts[1]; + const appGuid = urlParts[2]; + return new PageAutoscalerMetricBase(cfGuid, appGuid); + }); + } + +} diff --git a/src/test-e2e/application/po/table-autoscaler-events.po.ts b/src/test-e2e/application/po/table-autoscaler-events.po.ts new file mode 100644 index 0000000000..e5663595ca --- /dev/null +++ b/src/test-e2e/application/po/table-autoscaler-events.po.ts @@ -0,0 +1,49 @@ +import { by, element, ElementFinder, promise, ElementArrayFinder } from 'protractor'; + +import { Component } from '../../po/component.po'; +import { PageAutoscalerEventBase } from './page-autoscaler-event-base.po'; + +export class TableAutoscalerEvents extends Component { + + constructor(public cfGuid: string, public appGuid: string, locator: ElementFinder = element(by.css('.autoscaler-tile-events'))) { + super(locator); + } + + private getEmptyTableWarning(): ElementFinder { + return this.locator.element(by.css('.autoscaler-tab-table-no-record')); + } + + getEmptyTableWarningText(): promise.Promise { + return this.getEmptyTableWarning().getText(); + } + + private getGotoButton(): ElementFinder { + return this.locator.element(by.tagName('mat-card-actions')).all(by.tagName('button')).get(1); + } + + clickGotoEventPage() { + this.getGotoButton().click(); + return new PageAutoscalerEventBase(this.cfGuid, this.appGuid); + } + + private getRefreshButton(): ElementFinder { + return this.locator.element(by.tagName('mat-card-actions')).all(by.tagName('button')).get(0); + } + + clickRefreshButton() { + this.getRefreshButton().click(); + } + + private getTableRows(): ElementArrayFinder { + return this.locator.element(by.tagName('tbody')).all(by.tagName('tr')); + } + + getTableRowsCount(): promise.Promise { + return this.getTableRows().count(); + } + + getTableRowCellContent(rowIndex: number, columnIndex: number): promise.Promise { + return this.getTableRows().get(rowIndex).all(by.tagName('td')).get(columnIndex).getText(); + } + +} diff --git a/src/test-e2e/application/po/table-autoscaler-schedules.ts b/src/test-e2e/application/po/table-autoscaler-schedules.ts new file mode 100644 index 0000000000..f2dfa9aec2 --- /dev/null +++ b/src/test-e2e/application/po/table-autoscaler-schedules.ts @@ -0,0 +1,67 @@ +import { by, element, ElementFinder, ElementArrayFinder, promise } from 'protractor'; + +import { Component } from '../../po/component.po'; + +export class TableAutoscalerSchedules extends Component { + + constructor(public cfGuid: string, public appGuid: string, locator: ElementFinder = element(by.css('.autoscaler-tab-policy-schedule'))) { + super(locator); + } + + private getScheduleTableTitle(): ElementFinder { + return this.locator.element(by.css('.mat-card-title')); + } + + getScheduleTableTitleText(): promise.Promise { + return this.getScheduleTableTitle().getText(); + } + + private getSpecificTable(): ElementFinder { + return this.locator.element(by.css('.autoscaler-table-policy-specific')); + } + + private getEmptySpecificTableWarning(): ElementFinder { + return this.getSpecificTable().element(by.css('.autoscaler-tab-table-no-record')); + } + + getEmptySpecificTableWarningText(): promise.Promise { + return this.getEmptySpecificTableWarning().getText(); + } + + private getSpecificTableRows(): ElementArrayFinder { + return this.getSpecificTable().element(by.tagName('tbody')).all(by.tagName('tr')); + } + + getSpecificTableRowsCount(): promise.Promise { + return this.getSpecificTableRows().count(); + } + + getSpecificTableRowCellContent(rowIndex: number, columnIndex: number): promise.Promise { + return this.getSpecificTableRows().get(rowIndex).all(by.tagName('td')).get(columnIndex).getText(); + } + + private getRecurringTable(): ElementFinder { + return this.locator.element(by.css('.autoscaler-table-policy-recurring')); + } + + private getEmptyRecurringTableWarning(): ElementFinder { + return this.getRecurringTable().element(by.css('.autoscaler-tab-table-no-record')); + } + + getEmptyRecurringTableWarningText(): promise.Promise { + return this.getEmptyRecurringTableWarning().getText(); + } + + private getRecurringTableRows(): ElementArrayFinder { + return this.getRecurringTable().element(by.tagName('tbody')).all(by.tagName('tr')); + } + + getRecurringTableRowsCount(): promise.Promise { + return this.getRecurringTableRows().count(); + } + + getRecurringTableRowCellContent(rowIndex: number, columnIndex: number): promise.Promise { + return this.getRecurringTableRows().get(rowIndex).all(by.tagName('td')).get(columnIndex).getText(); + } + +} diff --git a/src/test-e2e/application/po/table-autoscaler-triggers.ts b/src/test-e2e/application/po/table-autoscaler-triggers.ts new file mode 100644 index 0000000000..f3ec5a8f6e --- /dev/null +++ b/src/test-e2e/application/po/table-autoscaler-triggers.ts @@ -0,0 +1,31 @@ +import { by, element, ElementFinder, ElementArrayFinder, promise } from 'protractor'; + +import { Component } from '../../po/component.po'; + +export class TableAutoscalerTriggers extends Component { + + constructor(public cfGuid: string, public appGuid: string, locator: ElementFinder = element(by.css('.autoscaler-tab-policy-trigger'))) { + super(locator); + } + + private getEmptyTableWarning(): ElementFinder { + return this.locator.element(by.css('.autoscaler-tab-table-no-record')); + } + + getEmptyTableWarningText(): promise.Promise { + return this.getEmptyTableWarning().getText(); + } + + private getTableRows(): ElementArrayFinder { + return this.locator.element(by.tagName('tbody')).all(by.tagName('tr')); + } + + getTableRowsCount(): promise.Promise { + return this.getTableRows().count(); + } + + getTableRowCellContent(rowIndex: number, columnIndex: number): promise.Promise { + return this.getTableRows().get(rowIndex).all(by.tagName('td')).get(columnIndex).getText(); + } + +} diff --git a/src/test-e2e/applications/applications.po.ts b/src/test-e2e/applications/applications.po.ts index d70a39cc23..39b0d5ce5e 100644 --- a/src/test-e2e/applications/applications.po.ts +++ b/src/test-e2e/applications/applications.po.ts @@ -1,4 +1,4 @@ -import { by, element } from 'protractor'; +import { by, element, protractor } from 'protractor'; import { ApplicationPageSummaryTab } from '../application/po/application-page-summary.po'; import { CreateApplication } from '../application/po/create-application.po'; @@ -25,9 +25,10 @@ export class ApplicationsPage extends CFPage { // Check for single card expect(appsPage.appList.header.getSearchText()).toEqual(appName); expect(appsPage.appList.cards.getCardCount()).toBe(1); + const cardP = appsPage.appList.cards.findCardByTitle(appName); // Go to summary - appsPage.appList.cards.findCardByTitle(appName).then(card => card.click()); + protractor.promise.controlFlow().execute(() => cardP.then(card => card.click())); const appSummary = new ApplicationPageSummaryTab(cfGuid, appGuid); appSummary.waitForPage(); return appSummary; diff --git a/src/test-e2e/cloud-foundry/cf-level/cf-top-level-e2e.spec.ts b/src/test-e2e/cloud-foundry/cf-level/cf-top-level-e2e.spec.ts index aeb55169bf..bd0fb46417 100644 --- a/src/test-e2e/cloud-foundry/cf-level/cf-top-level-e2e.spec.ts +++ b/src/test-e2e/cloud-foundry/cf-level/cf-top-level-e2e.spec.ts @@ -36,10 +36,7 @@ describe('CF - Top Level - ', () => { }); describe('Basic Tests -', () => { - beforeEach(navToCfPage); - - beforeEach(() => { - }); + it('Nav to CF Page', navToCfPage); it('Breadcrumb', () => { expect(cfPage.header.getTitleText()).toBe(defaultCf.name); @@ -76,7 +73,7 @@ describe('CF - Top Level - ', () => { describe('Basic Tests -', () => { - beforeEach(navToCfPage); + it('Nav to CF Page', navToCfPage); it('Breadcrumb', () => { expect(cfPage.header.getTitleText()).toBe(defaultCf.name); diff --git a/src/test-e2e/cloud-foundry/cf-level/cf-top-level-page.po.ts b/src/test-e2e/cloud-foundry/cf-level/cf-top-level-page.po.ts index 49d29dbf3d..4c759ded01 100644 --- a/src/test-e2e/cloud-foundry/cf-level/cf-top-level-page.po.ts +++ b/src/test-e2e/cloud-foundry/cf-level/cf-top-level-page.po.ts @@ -56,16 +56,18 @@ export class CfTopLevelPage extends CFPage { } clickOnQuota(quotaName: string) { - const { table } = new ListComponent(); + const { table, header } = new ListComponent(); table.waitUntilShown(); + header.setSearchText(quotaName); const row = table.findRowByCellContent(quotaName); row.element(by.css('a')).click(); } deleteQuota(quotaName: string, waitUntilNotShown = true) { - const { table } = new ListComponent(); + const { table, header } = new ListComponent(); table.waitUntilShown(); + header.setSearchText(quotaName); const row = table.findRowByCellContent(quotaName); const menu = table.openRowActionMenuByRow(row); diff --git a/src/test-e2e/cloud-foundry/cf-level/manage-org-e2e.spec.ts b/src/test-e2e/cloud-foundry/cf-level/manage-org-e2e.spec.ts index 077e92c7e8..007755a7ef 100644 --- a/src/test-e2e/cloud-foundry/cf-level/manage-org-e2e.spec.ts +++ b/src/test-e2e/cloud-foundry/cf-level/manage-org-e2e.spec.ts @@ -10,7 +10,7 @@ import { OrgFormPage } from './org-form-page.po'; describe('Manage Organization', () => { let e2eSetup; let orgFormPage: OrgFormPage; - let cfTopLevelPage: CfTopLevelPage; + let cfTopLevelPage: CfTopLevelPage = new CfTopLevelPage(); let cfOrgLevelPage: CfOrgLevelPage; let cfHelper: CFHelpers; let cfGuid: string; @@ -26,7 +26,9 @@ describe('Manage Organization', () => { .connectAllEndpoints(ConsoleUserType.admin) .loginAs(ConsoleUserType.admin) .getInfo(ConsoleUserType.admin); + }); + beforeAll(() => { return protractor.promise.controlFlow().execute(() => { const defaultCf = e2e.secrets.getDefaultCFEndpoint(); // Only available until after `info` call has completed as part of setup @@ -44,10 +46,6 @@ describe('Manage Organization', () => { }); }); - beforeEach(() => { - cfTopLevelPage = new CfTopLevelPage(); - }); - describe('#create', () => { beforeEach(() => { orgFormPage = new OrgFormPage(`/cloud-foundry/${cfGuid}/add-org`); @@ -57,18 +55,18 @@ describe('Manage Organization', () => { it('- should reach create organization page', () => { expect(orgFormPage.isActivePage()).toBeTruthy(); + + // should go to organizations when cancelled + orgFormPage.stepper.cancel(); + expect(cfTopLevelPage.subHeader.getTitleText()).toBe('Organizations'); }); it('- should create organization with default quota', () => { orgFormPage.stepper.setOrg(orgName); orgFormPage.submit(); orgFormPage.stepper.waitUntilNotShown(); - cfTopLevelPage.clickOnCard(orgName); - }); - - it('- should go to organizations when canceled', () => { - orgFormPage.stepper.cancel(); expect(cfTopLevelPage.subHeader.getTitleText()).toBe('Organizations'); + cfTopLevelPage.clickOnCard(orgName); }); it('- should validate org name', () => { @@ -93,21 +91,20 @@ describe('Manage Organization', () => { }); describe('#destroy', () => { - beforeEach(() => { + it('- Go To Org', () => { cfTopLevelPage = CfTopLevelPage.forEndpoint(cfGuid); cfTopLevelPage.navigateTo(); cfTopLevelPage.goToOrgTab(); }); it('- should delete org', () => { - expect(element(by.tagName('app-cards')).getText()).toContain(secondOrgName); cfTopLevelPage.deleteOrg(secondOrgName); expect(element(by.tagName('app-cards')).getText()).not.toContain(secondOrgName); }); }); describe('#show', () => { - beforeEach(() => { + it('- Go To Org', () => { cfTopLevelPage = CfTopLevelPage.forEndpoint(cfGuid); cfTopLevelPage.navigateTo(); cfTopLevelPage.goToOrgTab(); @@ -128,7 +125,7 @@ describe('Manage Organization', () => { }); describe('#update', () => { - beforeEach(() => { + it('- Go To Org', () => { cfTopLevelPage = CfTopLevelPage.forEndpoint(cfGuid); cfTopLevelPage.navigateTo(); cfTopLevelPage.goToOrgTab(); diff --git a/src/test-e2e/cloud-foundry/cf-level/manage-quota-e2e.spec.ts b/src/test-e2e/cloud-foundry/cf-level/manage-quota-e2e.spec.ts index e09574299c..a333888c6e 100644 --- a/src/test-e2e/cloud-foundry/cf-level/manage-quota-e2e.spec.ts +++ b/src/test-e2e/cloud-foundry/cf-level/manage-quota-e2e.spec.ts @@ -11,7 +11,7 @@ import { QuotaFormPage } from './quota-form-page.po'; describe('Manage Quota', () => { let e2eSetup; let quotaFormPage: QuotaFormPage; - let cfTopLevelPage: CfTopLevelPage; + let cfTopLevelPage: CfTopLevelPage = new CfTopLevelPage(); let cfHelper: CFHelpers; let cfGuid: string; let orgName: string; @@ -25,7 +25,9 @@ describe('Manage Quota', () => { .connectAllEndpoints(ConsoleUserType.admin) .loginAs(ConsoleUserType.admin) .getInfo(ConsoleUserType.admin); + }); + beforeAll(() => { return protractor.promise.controlFlow().execute(() => { const defaultCf = e2e.secrets.getDefaultCFEndpoint(); // Only available until after `info` call has completed as part of setup @@ -41,10 +43,6 @@ describe('Manage Quota', () => { }); }); - beforeEach(() => { - cfTopLevelPage = new CfTopLevelPage(); - }); - describe('#create', () => { const timeout = 100000; extendE2ETestTime(timeout); @@ -55,11 +53,9 @@ describe('Manage Quota', () => { quotaFormPage.waitForPage(); }); - it('- should reach create quota page', () => { + it('- should validate quota name', () => { expect(quotaFormPage.isActivePage()).toBeTruthy(); - }); - it('- should validate quota name', () => { expect(quotaFormPage.stepper.canNext()).toBeFalsy(); quotaFormPage.stepper.setName(secondQuotaName); @@ -67,6 +63,10 @@ describe('Manage Quota', () => { quotaFormPage.stepper.setName(quotaName); expect(element(by.css('.add-quota-stepper')).getText()).toContain('A quota with this name already exists.'); + + // should go to quotas when cancelled + quotaFormPage.stepper.cancel(); + expect(cfTopLevelPage.subHeader.getTitleText()).toBe('Organization Quotas'); }); it('- should create quota', () => { @@ -81,11 +81,6 @@ describe('Manage Quota', () => { quotaFormPage.stepper.waitUntilNotShown(); cfTopLevelPage.clickOnQuota(secondQuotaName); }); - - it('- should go to quotas when canceled', () => { - quotaFormPage.stepper.cancel(); - expect(cfTopLevelPage.subHeader.getTitleText()).toBe('Organization Quotas'); - }); }); describe('#destroy', () => { @@ -96,13 +91,10 @@ describe('Manage Quota', () => { }); it('- should delete quota', () => { - expect(element(by.tagName('app-table')).getText()).toContain(secondQuotaName); cfTopLevelPage.deleteQuota(secondQuotaName); - expect(element(by.tagName('app-table')).getText()).not.toContain(secondQuotaName); }); it('- should not delete quota if attached to org', () => { - expect(element(by.tagName('app-table')).getText()).toContain(quotaName); cfTopLevelPage.deleteQuota(quotaName, false); // Wait until the delete operation has finished const table = new TableComponent(); @@ -112,7 +104,7 @@ describe('Manage Quota', () => { }); describe('#update', () => { - beforeEach(() => { + it('Go To Quota', () => { cfTopLevelPage = CfTopLevelPage.forEndpoint(cfGuid); cfTopLevelPage.navigateTo(); cfTopLevelPage.goToQuotasTab(); diff --git a/src/test-e2e/cloud-foundry/invite-users-e2e.helper.ts b/src/test-e2e/cloud-foundry/invite-users-e2e.helper.ts index 975cd32268..43c6e0ec60 100644 --- a/src/test-e2e/cloud-foundry/invite-users-e2e.helper.ts +++ b/src/test-e2e/cloud-foundry/invite-users-e2e.helper.ts @@ -4,6 +4,7 @@ import { e2e } from '../e2e'; import { E2EConfigCloudFoundry } from '../e2e.types'; import { CFHelpers } from '../helpers/cf-helpers'; import { ConsoleUserType } from '../helpers/e2e-helpers'; +import { extendE2ETestTime } from '../helpers/extend-test-helpers'; import { CFUsersListComponent } from '../po/cf-users-list.po'; import { InviteUserStepperPo } from '../po/invite-users-stepper.po'; import { StackedInputActionsPo } from '../po/stacked-input-actions.po'; @@ -184,7 +185,7 @@ export function setupInviteUserTests( usersTable.getPermissions(0, false).getChips().then(chips => { expect(chips.length).toBe(1); chips[0].getText().then(text => { - expect(text.startsWith('Manager')).toBeTruthy(); + expect(text.startsWith(spaceRole)).toBeTruthy(); }); }); } else { @@ -192,29 +193,35 @@ export function setupInviteUserTests( } } - it('Invite two users', () => { - localLog('Invite two users: Started'); - stackedActions.addInput(); - expect(stackedActions.getInputCount()).toBe(2); + describe('', () => { + extendE2ETestTime(60000); - const user1 = InviteUserStepperPo.createUserEmail(null, 'Invite1'); - const user2 = InviteUserStepperPo.createUserEmail(null, 'Invite2'); - stackedActions.setInput({ [fieldOne]: user1, [fieldTwo]: user2 }); + it('Invite two users', () => { + localLog('Invite two users: Started'); + stackedActions.addInput(); + expect(stackedActions.getInputCount()).toBe(2); - const spaceRole = 'Manager'; - if (isSpace) { - inviteUserStepper.setSpaceRole(2); - } - inviteUserStepper.next(); - usersToDelete.push(user1, user2); + const user1 = InviteUserStepperPo.createUserEmail(null, 'Invite1'); + const user2 = InviteUserStepperPo.createUserEmail(null, 'Invite2'); + stackedActions.setInput({ [fieldOne]: user1, [fieldTwo]: user2 }); - usersTable.waitUntilShown(null, 15000); - usersTable.waitForNoLoadingIndicator(); + const spaceRole = 'Manager'; + if (isSpace) { + inviteUserStepper.setSpaceRole(2); + } + inviteUserStepper.next(); + usersToDelete.push(user1, user2); - testUser(user1, spaceRole); - testUser(user2, spaceRole); + usersTable.waitUntilShown(null, 15000); + usersTable.waitForNoLoadingIndicator(); + + testUser(user1, spaceRole); + testUser(user2, spaceRole); + }); }); + + afterAll(() => { localLog('afterAll: Started'); return cfHelper.fetchDefaultCfGuid().then(cfGuid => cfHelper.deleteUsers(cfGuid, defaultCf.testOrg, usersToDelete)) diff --git a/src/test-e2e/cloud-foundry/org-level/cf-org-level-e2e.spec.ts b/src/test-e2e/cloud-foundry/org-level/cf-org-level-e2e.spec.ts index 363a757eac..44d63f4241 100644 --- a/src/test-e2e/cloud-foundry/org-level/cf-org-level-e2e.spec.ts +++ b/src/test-e2e/cloud-foundry/org-level/cf-org-level-e2e.spec.ts @@ -67,7 +67,7 @@ describe('CF - Org Level - ', () => { }); describe('Basic Tests - ', () => { - beforeEach(navToPage); + it('Nav to org', navToPage); it('Breadcrumb', testBreadcrumb); @@ -84,7 +84,7 @@ describe('CF - Org Level - ', () => { }); describe('Basic Tests - ', () => { - beforeEach(navToPage); + it('Nav to org', navToPage); it('Breadcrumb', testBreadcrumb); diff --git a/src/test-e2e/cloud-foundry/org-level/cf-org-level-page.po.ts b/src/test-e2e/cloud-foundry/org-level/cf-org-level-page.po.ts index 09b9054b13..641fab39d7 100644 --- a/src/test-e2e/cloud-foundry/org-level/cf-org-level-page.po.ts +++ b/src/test-e2e/cloud-foundry/org-level/cf-org-level-page.po.ts @@ -70,16 +70,18 @@ export class CfOrgLevelPage extends CFPage { } clickOnSpaceQuota(quotaName: string) { - const { table } = new ListComponent(); + const { table, header } = new ListComponent(); table.waitUntilShown(); + header.setSearchText(quotaName); const row = table.findRowByCellContent(quotaName); row.element(by.css('a')).click(); } deleteSpaceQuota(quotaName: string, waitUntilNotShown = true) { - const { table } = new ListComponent(); + const { table, header } = new ListComponent(); table.waitUntilShown(); + header.setSearchText(quotaName); const row = table.findRowByCellContent(quotaName); const menu = table.openRowActionMenuByRow(row); diff --git a/src/test-e2e/cloud-foundry/org-level/manage-space-quota-e2e.spec.ts b/src/test-e2e/cloud-foundry/org-level/manage-space-quota-e2e.spec.ts index c25876e01f..b40e8bca58 100644 --- a/src/test-e2e/cloud-foundry/org-level/manage-space-quota-e2e.spec.ts +++ b/src/test-e2e/cloud-foundry/org-level/manage-space-quota-e2e.spec.ts @@ -10,7 +10,7 @@ import { SpaceQuotaFormPage } from './space-quota-form-page.po'; describe('Manage Space Quota', () => { let e2eSetup; let quotaFormPage: SpaceQuotaFormPage; - let cfOrgLevelPage: CfOrgLevelPage; + let cfOrgLevelPage: CfOrgLevelPage = new CfOrgLevelPage(); let cfHelper: CFHelpers; let cfGuid: string; let orgGuid: string; @@ -25,7 +25,9 @@ describe('Manage Space Quota', () => { .connectAllEndpoints(ConsoleUserType.admin) .loginAs(ConsoleUserType.admin) .getInfo(ConsoleUserType.admin); + }); + beforeAll(() => { return protractor.promise.controlFlow().execute(() => { const defaultCf = e2e.secrets.getDefaultCFEndpoint(); // Only available until after `info` call has completed as part of setup @@ -36,14 +38,10 @@ describe('Manage Space Quota', () => { cfHelper = new CFHelpers(e2eSetup); return cfHelper.baseAddOrg(cfGuid, orgName).then(org => orgGuid = org.metadata.guid) - .then(() => cfHelper.addSpaceQuota(cfGuid, orgGuid, quotaName)); + .then(() => cfHelper.addSpaceQuota(cfGuid, orgGuid, quotaName)); }); }); - beforeEach(() => { - cfOrgLevelPage = new CfOrgLevelPage(); - }); - describe('#create', () => { const timeout = 100000; extendE2ETestTime(timeout); @@ -56,6 +54,10 @@ describe('Manage Space Quota', () => { it('- should reach create quota page', () => { expect(quotaFormPage.isActivePage()).toBeTruthy(); + + // should go to quotas when cancelled + quotaFormPage.stepper.cancel(); + expect(cfOrgLevelPage.subHeader.getTitleText()).toBe('Space Quotas'); }); it('- should validate quota name', () => { @@ -66,9 +68,7 @@ describe('Manage Space Quota', () => { quotaFormPage.stepper.setName(quotaName); expect(element(by.css('.add-space-quota-stepper')).getText()).toContain('A space quota with this name already exists.'); - }); - it('- should create quota', () => { quotaFormPage.stepper.setName(secondQuotaName); quotaFormPage.stepper.setTotalServices('1'); quotaFormPage.stepper.setTotalRoutes('10'); @@ -81,10 +81,6 @@ describe('Manage Space Quota', () => { cfOrgLevelPage.clickOnSpaceQuota(secondQuotaName); }); - it('- should go to quotas when canceled', () => { - quotaFormPage.stepper.cancel(); - expect(cfOrgLevelPage.subHeader.getTitleText()).toBe('Space Quotas'); - }); }); describe('#destroy', () => { diff --git a/src/test-e2e/cloud-foundry/org-level/mange-space-e2e.spec.ts b/src/test-e2e/cloud-foundry/org-level/mange-space-e2e.spec.ts index c80b66defa..4683993354 100644 --- a/src/test-e2e/cloud-foundry/org-level/mange-space-e2e.spec.ts +++ b/src/test-e2e/cloud-foundry/org-level/mange-space-e2e.spec.ts @@ -10,7 +10,7 @@ import { SpaceFormPage } from './space-form-page.po'; describe('Manage Space', () => { let e2eSetup; let spaceFormPage: SpaceFormPage; - let cfOrgLevelPage: CfOrgLevelPage; + let cfOrgLevelPage: CfOrgLevelPage = new CfOrgLevelPage(); let cfHelper: CFHelpers; let cfGuid: string; let orgName: string; @@ -27,7 +27,9 @@ describe('Manage Space', () => { .connectAllEndpoints(ConsoleUserType.admin) .loginAs(ConsoleUserType.admin) .getInfo(ConsoleUserType.admin); + }); + beforeAll(() => { return protractor.promise.controlFlow().execute(() => { const defaultCf = e2e.secrets.getDefaultCFEndpoint(); // Only available until after `info` call has completed as part of setup @@ -49,10 +51,6 @@ describe('Manage Space', () => { }); }); - beforeEach(() => { - cfOrgLevelPage = new CfOrgLevelPage(); - }); - describe('#create', () => { beforeEach(() => { spaceFormPage = new SpaceFormPage(`/cloud-foundry/${cfGuid}/organizations/${orgGuid}/add-space`); @@ -62,6 +60,9 @@ describe('Manage Space', () => { it('- should reach create space page', () => { expect(spaceFormPage.isActivePage()).toBeTruthy(); + + spaceFormPage.stepper.cancel(); + expect(cfOrgLevelPage.subHeader.getTitleText()).toBe('Spaces'); }); it('- should create space with default quota', () => { @@ -71,11 +72,6 @@ describe('Manage Space', () => { cfOrgLevelPage.clickOnCard(spaceName); }); - it('- should go to spaces when canceled', () => { - spaceFormPage.stepper.cancel(); - expect(cfOrgLevelPage.subHeader.getTitleText()).toBe('Spaces'); - }); - it('- should validate space name', () => { expect(spaceFormPage.stepper.canNext()).toBeFalsy(); @@ -97,7 +93,7 @@ describe('Manage Space', () => { }); describe('#destroy', () => { - beforeEach(() => { + it('Nav to spaces tab', () => { cfOrgLevelPage = CfOrgLevelPage.forEndpoint(cfGuid, orgGuid); cfOrgLevelPage.navigateTo(); cfOrgLevelPage.goToSpacesTab(); @@ -113,7 +109,7 @@ describe('Manage Space', () => { describe('#update', () => { let cfSpaceLevelPage: CfSpaceLevelPage; - beforeEach(() => { + it('Nav to spaces tab', () => { cfOrgLevelPage = CfOrgLevelPage.forEndpoint(cfGuid, orgGuid); cfOrgLevelPage.navigateTo(); cfOrgLevelPage.goToSpacesTab(); diff --git a/src/test-e2e/cloud-foundry/space-level/cf-space-level-e2e.spec.ts b/src/test-e2e/cloud-foundry/space-level/cf-space-level-e2e.spec.ts index 36ef6c6792..f7b6095de0 100644 --- a/src/test-e2e/cloud-foundry/space-level/cf-space-level-e2e.spec.ts +++ b/src/test-e2e/cloud-foundry/space-level/cf-space-level-e2e.spec.ts @@ -4,6 +4,7 @@ import { e2e } from '../../e2e'; import { E2EConfigCloudFoundry } from '../../e2e.types'; import { CFHelpers } from '../../helpers/cf-helpers'; import { ConsoleUserType, E2EHelpers } from '../../helpers/e2e-helpers'; +import { extendE2ETestTime } from '../../helpers/extend-test-helpers'; import { CFPage } from '../../po/cf-page.po'; import { ListComponent } from '../../po/list.po'; import { MetaCardTitleType } from '../../po/meta-card.po'; @@ -42,36 +43,45 @@ describe('CF - Space Level -', () => { } function navToPage() { - const page = new CFPage(); - page.sideNav.goto(SideNavMenuItem.CloudFoundry); - CfTopLevelPage.detect().then(cfPage => { - cfPage.waitForPageOrChildPage(); - cfPage.loadingIndicator.waitUntilNotShown(); - cfPage.goToOrgTab(); - - // Find the Org and click on it - const list = new ListComponent(); - list.cards.findCardByTitle(defaultCf.testOrg, MetaCardTitleType.CUSTOM, true).then(card => { - expect(card).toBeDefined(); - card.click(); - }); - CfOrgLevelPage.detect().then(orgPage => { - orgPage.waitForPageOrChildPage(); - orgPage.loadingIndicator.waitUntilNotShown(); - orgPage.goToSpacesTab(); - - // Find the Space and click on it - const spaceList = new ListComponent(); - spaceList.cards.findCardByTitle(defaultCf.testSpace, MetaCardTitleType.CUSTOM, true).then(card => { - expect(card).toBeDefined(); - card.click(); - }); - CfSpaceLevelPage.detect().then(s => { - spacePage = s; - spacePage.waitForPageOrChildPage(); - spacePage.loadingIndicator.waitUntilNotShown(); + describe('', () => { + + // Allow additional time for navigation + extendE2ETestTime(70000); + + // Tests that the given users can navigate through the org and space lists + it('Nav to Space', () => { + const page = new CFPage(); + page.sideNav.goto(SideNavMenuItem.CloudFoundry); + CfTopLevelPage.detect().then(cfPage => { + cfPage.waitForPageOrChildPage(); + cfPage.loadingIndicator.waitUntilNotShown(); + cfPage.goToOrgTab(); + + // Find the Org and click on it + const list = new ListComponent(); + list.cards.findCardByTitle(defaultCf.testOrg, MetaCardTitleType.CUSTOM, true).then(card => { + expect(card).toBeDefined(); + card.click(); + }); + CfOrgLevelPage.detect().then(orgPage => { + orgPage.waitForPageOrChildPage(); + orgPage.loadingIndicator.waitUntilNotShown(); + orgPage.goToSpacesTab(); + + // Find the Space and click on it + const spaceList = new ListComponent(); + spaceList.cards.findCardByTitle(defaultCf.testSpace, MetaCardTitleType.CUSTOM, true).then(card => { + expect(card).toBeDefined(); + card.click(); + }); + CfSpaceLevelPage.detect().then(s => { + spacePage = s; + spacePage.waitForPageOrChildPage(); + spacePage.loadingIndicator.waitUntilNotShown(); + }); + + }); }); - }); }); } @@ -106,7 +116,7 @@ describe('CF - Space Level -', () => { }); describe('Basic Tests -', () => { - beforeEach(navToPage); + navToPage(); it('Breadcrumb', testBreadcrumb); @@ -134,7 +144,7 @@ describe('CF - Space Level -', () => { }); describe('Basic Tests -', () => { - beforeEach(navToPage); + navToPage(); it('Breadcrumb', testBreadcrumb); diff --git a/src/test-e2e/e2e.ts b/src/test-e2e/e2e.ts index 46a6bdf23a..523e0e78db 100644 --- a/src/test-e2e/e2e.ts +++ b/src/test-e2e/e2e.ts @@ -42,8 +42,8 @@ export class E2E { /** * Convenience for sleep */ - sleep(duration: number) { - browser.driver.sleep(duration); + sleep(duration: number): promise.Promise { + return browser.driver.sleep(duration); } /** diff --git a/src/test-e2e/endpoints/endpoints-connect-e2e.spec.ts b/src/test-e2e/endpoints/endpoints-connect-e2e.spec.ts index 46990d0326..5607910027 100644 --- a/src/test-e2e/endpoints/endpoints-connect-e2e.spec.ts +++ b/src/test-e2e/endpoints/endpoints-connect-e2e.spec.ts @@ -8,6 +8,7 @@ import { MenuComponent } from '../po/menu.po'; import { SnackBarPo } from '../po/snackbar.po'; import { ConnectDialogComponent } from './connect-dialog.po'; import { EndpointMetadata, EndpointsPage } from './endpoints.po'; +import { SideNavMenuItem } from '../po/side-nav.po'; describe('Endpoints', () => { const endpointsPage = new EndpointsPage(); @@ -92,6 +93,7 @@ describe('Endpoints', () => { // NOTE: We connected as the User not the Admin, so logging in as admin will NOT have the endpoint connected it('should go directly to endpoints view on logout and login (as admin)', () => { + endpointsPage.sideNav.goto(SideNavMenuItem.Endpoints); endpointsPage.header.logout(); const loginPage = new LoginPage(); loginPage.waitForLogin(); diff --git a/src/test-e2e/helpers/cf-helpers.ts b/src/test-e2e/helpers/cf-helpers.ts index 61be2be3f0..79846fb2f7 100644 --- a/src/test-e2e/helpers/cf-helpers.ts +++ b/src/test-e2e/helpers/cf-helpers.ts @@ -12,6 +12,7 @@ import { ISpaceQuotaDefinition, } from '../../frontend/packages/core/src/core/cf-api.types'; import { APIResource } from '../../frontend/packages/store/src/types/api.types'; +import { ApplicationPageSummaryTab } from '../application/po/application-page-summary.po'; import { CfTopLevelPage } from '../cloud-foundry/cf-level/cf-top-level-page.po'; import { CfOrgLevelPage } from '../cloud-foundry/org-level/cf-org-level-page.po'; import { CfSpaceLevelPage } from '../cloud-foundry/space-level/cf-space-level-page.po'; @@ -509,4 +510,27 @@ export class CFHelpers { }; return this.cfRequestHelper.sendCfPost>(cfGuid, 'space_quota_definitions', body); } + + createTestAppAndNav(appName: string, nav = true): promise.Promise<{ + cfGuid: string, + app: APIResource + }> { + // It's advised to run cfHelper.updateDefaultCfOrgSpace first + return this.basicCreateApp( + CFHelpers.cachedDefaultCfGuid, + CFHelpers.cachedDefaultSpaceGuid, + appName + ) + .then((app) => { + if (nav) { + const appSummary = new ApplicationPageSummaryTab(CFHelpers.cachedDefaultCfGuid, app.metadata.guid); + appSummary.navigateTo(); + appSummary.waitForPage(); + } + return { + cfGuid: CFHelpers.cachedDefaultCfGuid, + app + }; + }); + } } diff --git a/src/test-e2e/locale.helper.ts b/src/test-e2e/locale.helper.ts new file mode 100644 index 0000000000..53aa76e018 --- /dev/null +++ b/src/test-e2e/locale.helper.ts @@ -0,0 +1,25 @@ +import * as moment from 'moment'; +import { browser, promise } from 'protractor'; + +export class LocaleHelper { + constructor() { + } + + private getLocale(): promise.Promise { + return browser.executeScript('return window.navigator.userLanguage || window.navigator.language'); + } + + public getWindowLocaleData(): promise.Promise { + return this.getLocale().then((wLocale: string) => { + moment.locale(wLocale); + return moment.localeData(); + }); + } + + public getWindowDateTimeFormats(): promise.Promise<{ timeFormat: string, dateFormat: string }> { + return this.getWindowLocaleData().then(localeData => ({ + timeFormat: localeData.longDateFormat('LT'), // 'HH:mm' for uk, alt value 'hh:mm A' + dateFormat: localeData.longDateFormat('L') // 'DD/MM/YYYY' for uk, alt value 'YYYY/MM/DD' + })); + } +} diff --git a/src/test-e2e/marketplace/create-service-instances-bind-app-e2e.spec.ts b/src/test-e2e/marketplace/create-service-instances-bind-app-e2e.spec.ts index afd0dc5d94..0c4a178dc5 100644 --- a/src/test-e2e/marketplace/create-service-instances-bind-app-e2e.spec.ts +++ b/src/test-e2e/marketplace/create-service-instances-bind-app-e2e.spec.ts @@ -37,8 +37,7 @@ describe('Create Service Instance with binding', () => { }); describe('Long running tests - ', () => { - const timeout = 100000; - extendE2ETestTime(timeout); + extendE2ETestTime(100000); it('- should be able to to create a service instance with binding', () => { serviceInstanceName = servicesHelperE2E.createServiceInstanceName(); @@ -52,7 +51,7 @@ describe('Create Service Instance with binding', () => { .then(metaCardRows => { expect(metaCardRows[1].value).toBe(servicesSecrets.publicService.name); expect(metaCardRows[2].value).toBe('shared'); - expect(metaCardRows[3].value).toBe('1'); + expect(metaCardRows[4].value).toBe('1'); }); }); diff --git a/src/test-e2e/marketplace/marketplace-create-service-instances-e2e.spec.ts b/src/test-e2e/marketplace/marketplace-create-service-instances-e2e.spec.ts index b3bfb2daa0..d520f0da8f 100644 --- a/src/test-e2e/marketplace/marketplace-create-service-instances-e2e.spec.ts +++ b/src/test-e2e/marketplace/marketplace-create-service-instances-e2e.spec.ts @@ -8,7 +8,7 @@ import { MarketplaceSummaryPage } from './marketplace-summary.po'; import { ServicesHelperE2E } from './services-helper-e2e'; import { ServicesWallPage } from './services-wall.po'; -describe('Marketplace', () => { +describe('Service Instance from Marketplace', () => { let setup: E2ESetup; const servicesWall = new ServicesWallPage(); const timeout = 60000; diff --git a/src/test-e2e/po/breadcrumbs.po.ts b/src/test-e2e/po/breadcrumbs.po.ts index cf80f69a29..9958c4aa1d 100644 --- a/src/test-e2e/po/breadcrumbs.po.ts +++ b/src/test-e2e/po/breadcrumbs.po.ts @@ -22,7 +22,7 @@ export class BreadcrumbsComponent extends Component { getBreadcrumbs(): promise.Promise { return this.locator.all(by.css('.page-header__breadcrumb')).map((elm, index) => { return { - index: index, + index, label: elm.getText(), isLink: elm.getAttribute('class').then(cls => cls.indexOf('page-header__breadcrumb-link') >= 0), click: elm.click diff --git a/src/test-e2e/po/cf-users-list.po.ts b/src/test-e2e/po/cf-users-list.po.ts index e9f121aefd..b35193aae5 100644 --- a/src/test-e2e/po/cf-users-list.po.ts +++ b/src/test-e2e/po/cf-users-list.po.ts @@ -32,9 +32,7 @@ export class UserRoleChip extends ChipComponent { remove(): promise.Promise { this.getCross().click(); const confirm = new ConfirmDialogComponent(); - confirm.getMessage().then(message => { - expect(message).toContain(this.roleText); - }); + confirm.waitForMessage(this.roleText); confirm.confirm(); confirm.waitUntilNotShown('Confirmation dialog'); return this.waitUntilNotShown('User Role Chip still shown: ' + this.roleText); diff --git a/src/test-e2e/po/confirm-dialog.ts b/src/test-e2e/po/confirm-dialog.ts index dd99eea3eb..60792479b5 100644 --- a/src/test-e2e/po/confirm-dialog.ts +++ b/src/test-e2e/po/confirm-dialog.ts @@ -1,8 +1,10 @@ -import { by, element, promise } from 'protractor'; +import { browser, by, element, ElementFinder, promise, protractor } from 'protractor'; import { Component } from './component.po'; import { FormComponent } from './form.po'; +const until = protractor.ExpectedConditions; + export class DialogButton { index: number; label: string; @@ -69,15 +71,23 @@ export class ConfirmDialogComponent extends Component { return this.locator.element(by.className('confirm-dialog__header-title')).getText(); } + getMessageElement(): ElementFinder { + return this.locator.element(by.className('confirm-dialog__message')); + } + getMessage(): promise.Promise { - return this.locator.element(by.className('confirm-dialog__message')).getText(); + return this.getMessageElement().getText(); + } + + waitForMessage(message: string): promise.Promise { + return browser.wait(until.textToBePresentInElement(this.getMessageElement(), message), 5000); } // Get metadata for all of the fields in the form getButtons(): promise.Promise { return this.locator.all(by.tagName('button')).map((elm, index) => { return { - index: index, + index, label: elm.getText(), class: elm.getAttribute('class'), isWarning: elm.getAttribute('class').then(v => v.indexOf('mat-warn') >= 0), diff --git a/src/test-e2e/po/form.po.ts b/src/test-e2e/po/form.po.ts index c541a041a8..a2aa85be69 100644 --- a/src/test-e2e/po/form.po.ts +++ b/src/test-e2e/po/form.po.ts @@ -27,6 +27,7 @@ export interface FormItem { valid: string; error: string; id: string; + multiple: boolean; } // Page Object for a form field @@ -88,7 +89,7 @@ export class FormComponent extends Component { mapField(elm: ElementFinder, index: number): FormItem | any { return { - index: index, + index, name: elm.getAttribute('name'), formControlName: elm.getAttribute('formcontrolname'), placeholder: elm.getAttribute('placeholder'), @@ -103,7 +104,8 @@ export class FormComponent extends Component { clear: elm.clear, click: elm.click, tag: elm.getTagName(), - id: elm.getAttribute('id') + id: elm.getAttribute('id'), + multiple: elm.getAttribute('multiple'), }; } @@ -173,11 +175,11 @@ export class FormComponent extends Component { } // Fill the form fields in the specified object - fill(fields: { [fieldKey: string]: string | boolean }, expectFailure = false): promise.Promise { + fill(fields: { [fieldKey: string]: string | boolean | number[] }, expectFailure = false): promise.Promise { return this.getControlsMap().then(ctrls => { Object.keys(fields).forEach(field => { const ctrl = ctrls[field] as FormItem; - const value = fields[field]; + const value: any = fields[field]; expect(ctrl).toBeDefined(`Could not find form control with id '${field}'. Found ctrls with ids '${Object.keys(ctrls)}'`); if (!ctrl) { return; @@ -190,7 +192,37 @@ export class FormComponent extends Component { ctrl.sendKeys(' '); } break; + case 'date': + const datePattern = '(1|2)[0-9][0-9][0-9]/(?:(?:0[1-9])|(?:1[0-2]))/(?:(?:[0-2][1-9])|(?:[1-3][0-1]))'; + expect(new RegExp(`^${datePattern}$`).test(value)).toBe(true, `Form input '${value}' of date is invalid`); + this.sendMultipleKeys(ctrl, value); + break; + case 'time': + // TODO: These should be detected by browser/locale? + // const timePattern = '([0-1]?[0-9]|2[0-3]):([0-5][0-9]) [AP]M'; + // expect(new RegExp(`^${timePattern}$`).test(value)).toBe(true, `Form input '${value}' of time is invalid`); + this.sendMultipleKeys(ctrl, value); + break; + case 'datetime-local': + // TODO: These should be detected by browser/locale? + // const dateTimePattern = '(1|2)[0-9][0-9][0-9]/(?:(?:0[1-9])|(?:1[0-2]))/(?:(?:[0-2][1-9])|(?:[1-3][0-1])),([0-1]?[0-9]|2[0-3]):([0-5][0-9]) [AP]M'; + // expect(new RegExp(`^${dateTimePattern}$`).test(value)).toBe(true, `Form input '${value}' of datetime-local is invalid`); + this.sendMultipleKeys(ctrl, value); + break; case 'mat-select': + if (ctrl.multiple) { + expect(value instanceof Array).toBe(true, `Form input '${value}' of multiple select must be array`); + value.sort(); + ctrl.click(); + for (let option = 1; option <= value[value.length - 1]; option++) { + if (value.indexOf(option) >= 0) { + ctrl.sendKeys(Key.RETURN); + } + ctrl.sendKeys(Key.ARROW_DOWN); + } + ctrl.sendKeys(Key.ESCAPE); + break; + } let strValue = value as string; // Handle spaces in text. (sendKeys sends space bar.. which closes drop down) // Bonus - Sending string without space works... up until last character...which deselects desired option and selects top option @@ -230,6 +262,17 @@ export class FormComponent extends Component { this.getField(name).sendKeys(' '); return this.getField(name).sendKeys(protractor.Key.BACK_SPACE); } + + sendMultipleKeys(ctrl: FormItem, keyString: string) { + keyString.split(/[ ,:\/]/).forEach((key) => { + ctrl.sendKeys(key); + if (key.length === 4) { + ctrl.sendKeys(Key.ARROW_RIGHT); + } + }); + ctrl.sendKeys(Key.RETURN); + } + } diff --git a/src/test-e2e/po/list.po.ts b/src/test-e2e/po/list.po.ts index 4ef50b5227..b0ac4fedc1 100644 --- a/src/test-e2e/po/list.po.ts +++ b/src/test-e2e/po/list.po.ts @@ -300,7 +300,7 @@ export class ListHeaderComponent extends Component { } getRefreshListButtonAnimated(): ElementFinder { - return this.getRefreshListButton().element(by.css('.refresh-icon.refreshing')); + return this.getRefreshListButton().element(by.css('.poll-icon.polling')); } refresh() { @@ -309,7 +309,7 @@ export class ListHeaderComponent extends Component { } isRefreshing(): promise.Promise { - return this.getRefreshListButton().element(by.css('.refresh-icon')).getCssValue('animation-play-state').then(state => + return this.getRefreshListButton().element(by.css('.poll-icon')).getCssValue('animation-play-state').then(state => state === 'running' ); } diff --git a/src/test-e2e/po/page-tabs.po.ts b/src/test-e2e/po/page-tabs.po.ts index 788d51a4e2..aaad18682b 100644 --- a/src/test-e2e/po/page-tabs.po.ts +++ b/src/test-e2e/po/page-tabs.po.ts @@ -46,6 +46,11 @@ export class PageTabsPo extends Component { return this.getItem(name).click(); } + waitForItem(name: string): promise.Promise { + const item = new Component(this.getItem(name)); + return item.waitUntilShown(); + } + goToItemAndWait(name: string, baseUrl: string, suffix: string): promise.Promise { this.clickItem(name); if (!suffix.startsWith('/')) { diff --git a/src/tsconfig.json b/src/tsconfig.json index af80e6e50e..a03404bcd1 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -11,8 +11,9 @@ "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, - "target": "es5", - "module": "commonjs", + "importHelpers": true, + "target": "es2015", + "module": "esnext", "types": [ "hammerjs", "jasmine", @@ -23,7 +24,7 @@ "node_modules/@types" ], "lib": [ - "es2017", + "es2018", "dom" ], "preserveSymlinks": true diff --git a/src/tsconfig.lib.json b/src/tsconfig.lib.json index 8a6cad0f4b..59f26a5046 100644 --- a/src/tsconfig.lib.json +++ b/src/tsconfig.lib.json @@ -3,7 +3,7 @@ "compilerOptions": { "outDir": "./out-tsc", "target": "es2015", - "module": "es2015", + "module": "esnext", "moduleResolution": "node", "declaration": true, "sourceMap": true, @@ -12,10 +12,7 @@ "experimentalDecorators": true, "importHelpers": true, "types": [], - "lib": [ - "dom", - "es2015" - ] + "lib": ["dom", "es2018"] }, "angularCompilerOptions": { "annotateForClosureCompiler": true, @@ -26,4 +23,4 @@ "enableResourceInlining": true, "preserveSymlinks": true, } -} \ No newline at end of file +}