diff --git a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.spec.ts b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.spec.ts index 361041587c503478bf456087e766e0092ad41b6f..e32aa7c06b47b2083035f1f1735cadd4fbc3fcf0 100644 --- a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.spec.ts +++ b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.spec.ts @@ -12,17 +12,44 @@ import {FormsModule} from '@angular/forms'; import {BrowserModule} from '@angular/platform-browser'; import {MockAuthService} from '../../appmarket.component.spec'; import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { ApplicationBase } from '../../../model/application-base'; +import { ApplicationState } from '../../../model/application-state'; +import { Rate } from '../../../model'; +import { RemovalConfirmationModalComponent } from '../../domains/modals/removal-confirmation-modal/removal-confirmation-modal.component'; describe('AppManagementListComponent', () => { let component: AppManagementListComponent; let fixture: ComponentFixture<AppManagementListComponent>; + let confirmRemovalModal: ModalComponent = jasmine.createSpyObj('confirmRemovalModal', ['show']) + + const appBase: ApplicationBase = { + id: 1, + name: 'app', + owner: 'admin', + license: undefined, + licenseUrl: undefined, + wwwUrl: undefined, + sourceUrl: undefined, + issuesUrl: undefined, + nmaasDocumentationUrl: undefined, + descriptions: [], + tags: [], + versions: [ + {id: 1, version: '1.0.0', state: ApplicationState.ACTIVE, appVersionId: 1}, + {id: 2, version: '1.0.1', state: ApplicationState.ACTIVE, appVersionId: 2}, + {id: 3, version: '1.0.3', state: ApplicationState.NEW, appVersionId: 3} + ], + rate: new Rate(4, 4.5, new Map([[5, 1], [4, 1]])) +} + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ declarations: [ AppManagementListComponent, AppChangeStateModalComponent, - ModalComponent + ModalComponent, + RemovalConfirmationModalComponent ], providers: [ AppsService, @@ -55,4 +82,19 @@ describe('AppManagementListComponent', () => { it('should create', () => { expect(component).toBeTruthy(); }); + + it('should not be able to remove app', () => { + component.openRemovalModal(appBase); + expect(component.appToRemove).toEqual(appBase); + expect(component.hasRunningInstances).toBeTruthy; + }) + + it('should be able to remove app', () => { + appBase.versions.forEach(ver => { + ver.state = ApplicationState.DELETED + }) + component.openRemovalModal(appBase); + expect(component.appToRemove).toEqual(appBase); + expect(component.hasRunningInstances).toBeFalsy; + }) }); diff --git a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts index 73c7e08c0bf5f8fd22ab200752d8f1d857551be7..48b5d40a895ce11e6a15b204c88a5cd1302484a4 100644 --- a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts +++ b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts @@ -120,7 +120,7 @@ export class AppManagementListComponent implements OnInit { } public openRemovalModal(app: ApplicationBase): void { - if(app.versions.find(version => version.state === ApplicationState.DELETED)) { + if(app.versions.find(version => version.state !== ApplicationState.DELETED)) { this.hasRunningInstances = true; } this.appToRemove = app;