summaryrefslogtreecommitdiffstats
path: root/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/placement.pipe.spec.ts
blob: 588744aa6f04c5f947ca39b8cc3dbdb68c838eab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import { PlacementPipe } from './placement.pipe';

describe('PlacementPipe', () => {
  const pipe = new PlacementPipe();

  it('create an instance', () => {
    expect(pipe).toBeTruthy();
  });

  it('transforms to no spec', () => {
    expect(pipe.transform(undefined)).toBe('no spec');
  });

  it('transforms to unmanaged', () => {
    expect(pipe.transform({ unmanaged: true })).toBe('unmanaged');
  });

  it('transforms placement (1)', () => {
    expect(
      pipe.transform({
        placement: {
          hosts: ['mon0']
        }
      })
    ).toBe('mon0');
  });

  it('transforms placement (2)', () => {
    expect(
      pipe.transform({
        placement: {
          hosts: ['mon0', 'mgr0']
        }
      })
    ).toBe('mon0;mgr0');
  });

  it('transforms placement (3)', () => {
    expect(
      pipe.transform({
        placement: {
          count: 1
        }
      })
    ).toBe('count:1');
  });

  it('transforms placement (4)', () => {
    expect(
      pipe.transform({
        placement: {
          label: 'foo'
        }
      })
    ).toBe('label:foo');
  });

  it('transforms placement (5)', () => {
    expect(
      pipe.transform({
        placement: {
          host_pattern: 'abc.ceph.xyz.com'
        }
      })
    ).toBe('abc.ceph.xyz.com');
  });

  it('transforms placement (6)', () => {
    expect(
      pipe.transform({
        placement: {
          count: 2,
          hosts: ['mon0', 'mgr0']
        }
      })
    ).toBe('mon0;mgr0;count:2');
  });
});