]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-bucket.service.spec.ts
import ceph 16.2.6
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / api / rgw-bucket.service.spec.ts
CommitLineData
11fdf7f2
TL
1import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
2import { TestBed } from '@angular/core/testing';
3
f67539c2 4import { configureTestBed, RgwHelper } from '~/testing/unit-test-helper';
11fdf7f2
TL
5import { RgwBucketService } from './rgw-bucket.service';
6
7describe('RgwBucketService', () => {
8 let service: RgwBucketService;
9 let httpTesting: HttpTestingController;
10
11 configureTestBed({
12 providers: [RgwBucketService],
13 imports: [HttpClientTestingModule]
14 });
15
16 beforeEach(() => {
f67539c2
TL
17 service = TestBed.inject(RgwBucketService);
18 httpTesting = TestBed.inject(HttpTestingController);
19 RgwHelper.selectDaemon();
11fdf7f2
TL
20 });
21
22 afterEach(() => {
23 httpTesting.verify();
24 });
25
26 it('should be created', () => {
27 expect(service).toBeTruthy();
28 });
29
f91f0fd5
TL
30 it('should call list', () => {
31 service.list().subscribe();
f67539c2 32 const req = httpTesting.expectOne(`api/rgw/bucket?${RgwHelper.DAEMON_QUERY_PARAM}&stats=true`);
11fdf7f2 33 expect(req.request.method).toBe('GET');
11fdf7f2
TL
34 });
35
36 it('should call get', () => {
37 service.get('foo').subscribe();
f67539c2 38 const req = httpTesting.expectOne(`api/rgw/bucket/foo?${RgwHelper.DAEMON_QUERY_PARAM}`);
11fdf7f2
TL
39 expect(req.request.method).toBe('GET');
40 });
41
42 it('should call create', () => {
9f95a23c 43 service
b3b6e05e 44 .create('foo', 'bar', 'default', 'default-placement', false, 'COMPLIANCE', '5')
9f95a23c
TL
45 .subscribe();
46 const req = httpTesting.expectOne(
b3b6e05e 47 `api/rgw/bucket?bucket=foo&uid=bar&zonegroup=default&placement_target=default-placement&lock_enabled=false&lock_mode=COMPLIANCE&lock_retention_period_days=5&${RgwHelper.DAEMON_QUERY_PARAM}`
9f95a23c 48 );
11fdf7f2
TL
49 expect(req.request.method).toBe('POST');
50 });
51
52 it('should call update', () => {
9f95a23c 53 service
b3b6e05e 54 .update('foo', 'bar', 'baz', 'Enabled', 'Enabled', '1', '223344', 'GOVERNANCE', '10')
9f95a23c
TL
55 .subscribe();
56 const req = httpTesting.expectOne(
b3b6e05e 57 `api/rgw/bucket/foo?${RgwHelper.DAEMON_QUERY_PARAM}&bucket_id=bar&uid=baz&versioning_state=Enabled&mfa_delete=Enabled&mfa_token_serial=1&mfa_token_pin=223344&lock_mode=GOVERNANCE&lock_retention_period_days=10`
9f95a23c 58 );
11fdf7f2
TL
59 expect(req.request.method).toBe('PUT');
60 });
61
62 it('should call delete, with purgeObjects = true', () => {
63 service.delete('foo').subscribe();
f67539c2
TL
64 const req = httpTesting.expectOne(
65 `api/rgw/bucket/foo?${RgwHelper.DAEMON_QUERY_PARAM}&purge_objects=true`
66 );
11fdf7f2
TL
67 expect(req.request.method).toBe('DELETE');
68 });
69
70 it('should call delete, with purgeObjects = false', () => {
71 service.delete('foo', false).subscribe();
f67539c2
TL
72 const req = httpTesting.expectOne(
73 `api/rgw/bucket/foo?${RgwHelper.DAEMON_QUERY_PARAM}&purge_objects=false`
74 );
11fdf7f2
TL
75 expect(req.request.method).toBe('DELETE');
76 });
77
78 it('should call exists', () => {
79 let result;
80 service.exists('foo').subscribe((resp) => {
81 result = resp;
82 });
b3b6e05e 83 const req = httpTesting.expectOne(`api/rgw/bucket/foo?${RgwHelper.DAEMON_QUERY_PARAM}`);
11fdf7f2
TL
84 expect(req.request.method).toBe('GET');
85 req.flush(['foo', 'bar']);
86 expect(result).toBe(true);
87 });
b3b6e05e
TL
88
89 it('should convert lock retention period to days', () => {
90 expect(service.getLockDays({ lock_retention_period_years: 1000 })).toBe(365242);
91 expect(service.getLockDays({ lock_retention_period_days: 5 })).toBe(5);
92 expect(service.getLockDays({})).toBe(0);
93 });
11fdf7f2 94});