]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/logs/logs.component.spec.ts
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / ceph / cluster / logs / logs.component.spec.ts
index e4f69fc920dae200d4aea260212a0824f1d534a0..69c6051d2d3d77d4adf88296ebf7662d970c2788 100644 (file)
@@ -2,43 +2,49 @@ import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
 
-import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
-import { TabsModule } from 'ngx-bootstrap/tabs';
-import { TimepickerModule } from 'ngx-bootstrap/timepicker';
+import { NgbDatepickerModule, NgbNavModule, NgbTimepickerModule } from '@ng-bootstrap/ng-bootstrap';
+import { ToastrModule } from 'ngx-toastr';
+import { of } from 'rxjs';
 
-import { configureTestBed } from '../../../../testing/unit-test-helper';
-import { SharedModule } from '../../../shared/shared.module';
+import { LogsService } from '~/app/shared/api/logs.service';
+import { SharedModule } from '~/app/shared/shared.module';
+import { configureTestBed } from '~/testing/unit-test-helper';
 import { LogsComponent } from './logs.component';
 
 describe('LogsComponent', () => {
   let component: LogsComponent;
   let fixture: ComponentFixture<LogsComponent>;
+  let logsService: LogsService;
+  let logsServiceSpy: jasmine.Spy;
 
   configureTestBed({
     imports: [
       HttpClientTestingModule,
-      TabsModule.forRoot(),
+      NgbNavModule,
       SharedModule,
-      BsDatepickerModule.forRoot(),
-      TimepickerModule.forRoot(),
-      FormsModule
+      FormsModule,
+      NgbDatepickerModule,
+      NgbTimepickerModule,
+      ToastrModule.forRoot()
     ],
     declarations: [LogsComponent]
   });
 
   beforeEach(() => {
+    logsService = TestBed.inject(LogsService);
+    logsServiceSpy = spyOn(logsService, 'getLogs');
+    logsServiceSpy.and.returnValue(of(null));
     fixture = TestBed.createComponent(LogsComponent);
     component = fixture.componentInstance;
-    fixture.detectChanges();
   });
 
   it('should create', () => {
     expect(component).toBeTruthy();
   });
 
-  describe('abstractfilters', () => {
-    it('after initializaed', () => {
-      const filters = component.abstractfilters();
+  describe('abstractFilters', () => {
+    it('after initialized', () => {
+      const filters = component.abstractFilters();
       expect(filters.priority).toBe('All');
       expect(filters.key).toBe('');
       expect(filters.yearMonthDay).toBe('');
@@ -46,10 +52,10 @@ describe('LogsComponent', () => {
       expect(filters.eTime).toBe(1439);
     });
     it('change date', () => {
-      component.selectedDate = new Date(2019, 0, 1);
-      component.startTime = new Date(2019, 1, 1, 1, 10);
-      component.endTime = new Date(2019, 1, 1, 12, 10);
-      const filters = component.abstractfilters();
+      component.selectedDate = { year: 2019, month: 1, day: 1 };
+      component.startTime = { hour: 1, minute: 10 };
+      component.endTime = { hour: 12, minute: 10 };
+      const filters = component.abstractFilters();
       expect(filters.yearMonthDay).toBe('2019-01-01');
       expect(filters.sTime).toBe(70);
       expect(filters.eTime).toBe(730);
@@ -90,8 +96,8 @@ describe('LogsComponent', () => {
       component.selectedDate = null;
       component.priority = 'All';
       component.search = '';
-      component.startTime.setHours(0, 0);
-      component.endTime.setHours(23, 59);
+      component.startTime = { hour: 0, minute: 0 };
+      component.endTime = { hour: 23, minute: 59 };
     };
     beforeEach(() => {
       component.contentData = contentData;
@@ -112,7 +118,7 @@ describe('LogsComponent', () => {
 
     it('filter by date', () => {
       resetFilter();
-      component.selectedDate = new Date(2019, 0, 21);
+      component.selectedDate = { year: 2019, month: 1, day: 21 };
       component.filterLogs();
       expect(component.clog.length).toBe(1);
       expect(component.clog[0].name).toBe('date');
@@ -128,11 +134,36 @@ describe('LogsComponent', () => {
 
     it('filter by time range', () => {
       resetFilter();
-      component.startTime.setHours(1, 0);
-      component.endTime.setHours(2, 0);
+      component.startTime = { hour: 1, minute: 0 };
+      component.endTime = { hour: 2, minute: 0 };
       component.filterLogs();
       expect(component.clog.length).toBe(1);
       expect(component.clog[0].name).toBe('time');
     });
   });
+
+  describe('convert logs to text', () => {
+    it('convert cluster & audit logs to text', () => {
+      const logsPayload = {
+        clog: [
+          {
+            name: 'priority',
+            stamp: '2019-02-21 09:39:49.572801',
+            message: 'Manager daemon localhost is now available',
+            priority: '[ERR]'
+          }
+        ],
+        audit_log: [
+          {
+            stamp: '2020-12-22T11:18:13.896920+0000',
+            priority: '[INF]'
+          }
+        ]
+      };
+      logsServiceSpy.and.returnValue(of(logsPayload));
+      fixture.detectChanges();
+      expect(component.clogText).toContain(logsPayload.clog[0].message);
+      expect(component.auditLogText).toContain(logsPayload.audit_log[0].priority);
+    });
+  });
 });