]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/services/motd-notification.service.spec.ts
import ceph 15.2.14
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / services / motd-notification.service.spec.ts
1 import { HttpClientTestingModule } from '@angular/common/http/testing';
2 import { TestBed } from '@angular/core/testing';
3
4 import { configureTestBed } from '../../../testing/unit-test-helper';
5 import { Motd } from '../api/motd.service';
6 import { MotdNotificationService } from './motd-notification.service';
7
8 describe('MotdNotificationService', () => {
9 let service: MotdNotificationService;
10
11 configureTestBed({
12 providers: [MotdNotificationService],
13 imports: [HttpClientTestingModule]
14 });
15
16 beforeEach(() => {
17 service = TestBed.get(MotdNotificationService);
18 });
19
20 it('should be created', () => {
21 expect(service).toBeTruthy();
22 });
23
24 it('should hide [1]', () => {
25 spyOn(service.motdSource, 'next');
26 spyOn(service.motdSource, 'getValue').and.returnValue({
27 severity: 'info',
28 expires: '',
29 message: 'foo',
30 md5: 'acbd18db4cc2f85cedef654fccc4a4d8'
31 });
32 service.hide();
33 expect(localStorage.getItem('dashboard_motd_hidden')).toBe(
34 'info:acbd18db4cc2f85cedef654fccc4a4d8'
35 );
36 expect(sessionStorage.getItem('dashboard_motd_hidden')).toBeNull();
37 expect(service.motdSource.next).toBeCalledWith(null);
38 });
39
40 it('should hide [2]', () => {
41 spyOn(service.motdSource, 'getValue').and.returnValue({
42 severity: 'warning',
43 expires: '',
44 message: 'bar',
45 md5: '37b51d194a7513e45b56f6524f2d51f2'
46 });
47 service.hide();
48 expect(sessionStorage.getItem('dashboard_motd_hidden')).toBe(
49 'warning:37b51d194a7513e45b56f6524f2d51f2'
50 );
51 expect(localStorage.getItem('dashboard_motd_hidden')).toBeNull();
52 });
53
54 it('should process response [1]', () => {
55 const motd: Motd = {
56 severity: 'danger',
57 expires: '',
58 message: 'foo',
59 md5: 'acbd18db4cc2f85cedef654fccc4a4d8'
60 };
61 spyOn(service.motdSource, 'next');
62 service.processResponse(motd);
63 expect(service.motdSource.next).toBeCalledWith(motd);
64 });
65
66 it('should process response [2]', () => {
67 const motd: Motd = {
68 severity: 'warning',
69 expires: '',
70 message: 'foo',
71 md5: 'acbd18db4cc2f85cedef654fccc4a4d8'
72 };
73 localStorage.setItem('dashboard_motd_hidden', 'info');
74 service.processResponse(motd);
75 expect(sessionStorage.getItem('dashboard_motd_hidden')).toBeNull();
76 expect(localStorage.getItem('dashboard_motd_hidden')).toBeNull();
77 });
78
79 it('should process response [3]', () => {
80 const motd: Motd = {
81 severity: 'info',
82 expires: '',
83 message: 'foo',
84 md5: 'acbd18db4cc2f85cedef654fccc4a4d8'
85 };
86 spyOn(service.motdSource, 'next');
87 localStorage.setItem('dashboard_motd_hidden', 'info:acbd18db4cc2f85cedef654fccc4a4d8');
88 service.processResponse(motd);
89 expect(service.motdSource.next).not.toBeCalled();
90 });
91
92 it('should process response [4]', () => {
93 const motd: Motd = {
94 severity: 'info',
95 expires: '',
96 message: 'foo',
97 md5: 'acbd18db4cc2f85cedef654fccc4a4d8'
98 };
99 spyOn(service.motdSource, 'next');
100 localStorage.setItem('dashboard_motd_hidden', 'info:37b51d194a7513e45b56f6524f2d51f2');
101 service.processResponse(motd);
102 expect(service.motdSource.next).toBeCalled();
103 });
104
105 it('should process response [5]', () => {
106 const motd: Motd = {
107 severity: 'info',
108 expires: '',
109 message: 'foo',
110 md5: 'acbd18db4cc2f85cedef654fccc4a4d8'
111 };
112 spyOn(service.motdSource, 'next');
113 localStorage.setItem('dashboard_motd_hidden', 'danger:acbd18db4cc2f85cedef654fccc4a4d8');
114 service.processResponse(motd);
115 expect(service.motdSource.next).toBeCalled();
116 });
117 });