2 * # ============LICENSE_START=======================================================
3 * # Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
4 * # ================================================================================
5 * # Licensed under the Apache License, Version 2.0 (the "License");
6 * # you may not use this file except in compliance with the License.
7 * # You may obtain a copy of the License at
9 * # http://www.apache.org/licenses/LICENSE-2.0
11 * # Unless required by applicable law or agreed to in writing, software
12 * # distributed under the License is distributed on an "AS IS" BASIS,
13 * # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * # See the License for the specific language governing permissions and
15 * # limitations under the License.
16 * # ============LICENSE_END=========================================================
19 import { HttpClientTestingModule } from '@angular/common/http/testing';
20 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
21 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
22 import { MatMenuModule, MatTooltipModule } from '@angular/material';
23 import { RouterTestingModule } from '@angular/router/testing';
24 import { JwtHelperService, JWT_OPTIONS } from '@auth0/angular-jwt';
25 import { Ng4LoadingSpinnerModule } from 'ng4-loading-spinner';
26 import { MessageService } from 'primeng/api';
27 import { ButtonModule } from 'primeng/button';
28 import { DialogModule } from 'primeng/dialog';
29 import { DropdownModule } from 'primeng/dropdown';
30 import { ScrollPanelModule } from 'primeng/scrollpanel';
31 import { TableModule } from 'primeng/table';
32 import { ToastModule } from 'primeng/toast';
33 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
35 import { BlueprintsComponent } from './blueprints.component';
37 describe('BlueprintsComponent', () => {
38 let component: BlueprintsComponent;
39 let fixture: ComponentFixture<BlueprintsComponent>;
41 beforeEach(async(() => {
42 TestBed.configureTestingModule({
43 declarations: [BlueprintsComponent],
45 Ng4LoadingSpinnerModule,
55 HttpClientTestingModule,
59 BrowserAnimationsModule
63 { provide: JWT_OPTIONS, useValue: JWT_OPTIONS },
71 fixture = TestBed.createComponent(BlueprintsComponent);
72 component = fixture.componentInstance;
73 fixture.detectChanges();
76 it('should create', () => {
77 expect(component).toBeTruthy();
80 it(`should set states`, async(() => {
81 const fixture = TestBed.createComponent(BlueprintsComponent);
82 const app = fixture.debugElement.componentInstance;
87 app.setMenuStates(mockStates)
88 fixture.detectChanges();
89 expect(app.states).toEqual([ ]);
92 it(`should not enable action buttons`, async(() => {
93 const fixture = TestBed.createComponent(BlueprintsComponent);
94 const app = fixture.debugElement.componentInstance;
97 app.enableButtonCheck()
98 fixture.detectChanges();
100 expect(app.canDownload).toEqual(false);
101 expect(app.canUpdate).toEqual(false);
102 expect(app.canDelete).toEqual(false);
105 it(`should enable download/update buttons but not delete`, async(() => {
106 const fixture = TestBed.createComponent(BlueprintsComponent);
107 const app = fixture.debugElement.componentInstance;
109 app.selectedBPs = [{status: 'TEST'}]
110 app.enableButtonCheck()
111 fixture.detectChanges();
113 expect(app.canDownload).toEqual(true);
114 expect(app.canUpdate).toEqual(true);
115 expect(app.canDelete).toEqual(false);
118 it(`should enable download/update buttons but not delete`, async(() => {
119 const fixture = TestBed.createComponent(BlueprintsComponent);
120 const app = fixture.debugElement.componentInstance;
122 app.selectedBPs = [{ status: 'IN_DEV' }]
123 app.enableButtonCheck()
124 fixture.detectChanges();
126 expect(app.canDownload).toEqual(true);
127 expect(app.canUpdate).toEqual(true);
128 expect(app.canDelete).toEqual(true);
131 it(`should enable download/update buttons but not delete`, async(() => {
132 const fixture = TestBed.createComponent(BlueprintsComponent);
133 const app = fixture.debugElement.componentInstance;
138 instanceRelease: '2008',
143 app.viewBpContent(mockBpToView)
144 fixture.detectChanges();
146 expect(app.BpFileNameForDownload).toEqual('test-tag_k8s_2008_1');
147 expect(app.BpContentToView).toEqual('test');
148 expect(app.showBpContentDialog).toEqual(true);