podcardlist_component_test.js 4.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// Copyright 2015 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import podsListModule from 'podlist/podlist_module';
D
Denis Poisson 已提交
16
import podDetailModule from 'poddetail/poddetail_module';
17

D
Denis Poisson 已提交
18
describe('Pod card list controller', () => {
19 20 21 22
  /**
   * @type {!podlist/podcardlist_component.PodCardListController}
   */
  let ctrl;
23 24 25 26
  /**
   * @type {!./../common/namespace/namespace_service.NamespaceService}
   */
  let data;
27 28 29

  beforeEach(() => {
    angular.mock.module(podsListModule.name);
D
Denis Poisson 已提交
30
    angular.mock.module(podDetailModule.name);
31

32 33 34 35 36 37
    angular.mock.inject(($componentController, $rootScope, kdNamespaceService) => {
      /** @type {!./../common/namespace/namespace_service.NamespaceService} */
      data = kdNamespaceService;
      /** @type {!podCardListController} */
      ctrl = $componentController(
          'kdPodCardList', {$scope: $rootScope, kdNamespaceService_: data}, {});
38 39 40
    });
  });

41 42 43 44 45 46
  it('should instantiate the controller properly', () => { expect(ctrl).not.toBeUndefined(); });

  it('should return the value from Namespace service', () => {
    expect(ctrl.areMultipleNamespacesSelected()).toBe(data.areMultipleNamespacesSelected());
  });

D
Denis Poisson 已提交
47 48 49 50 51 52
  it('should execute logs href callback function', () => {
    expect(ctrl.getPodDetailHref({
      objectMeta: {
        name: 'foo-pod',
        namespace: 'foo-namespace',
      },
53
    })).toBe('#/pod/foo-namespace/foo-pod');
D
Denis Poisson 已提交
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

  it('should check pod status correctly (succeeded is successful)', () => {
    expect(ctrl.isStatusSuccessful({
      name: 'test-pod',
      podPhase: 'Succeeded',
    })).toBeTruthy();
  });

  it('should check pod status correctly (running is successful)', () => {
    expect(ctrl.isStatusSuccessful({
      name: 'test-pod',
      podPhase: 'Running',
    })).toBeTruthy();
  });

  it('should check pod status correctly (failed isn\'t successful)', () => {
    expect(ctrl.isStatusSuccessful({
      name: 'test-pod',
      podPhase: 'Failed',
    })).toBeFalsy();
  });

  it('should check pod status correctly (pending is pending)', () => {
    expect(ctrl.isStatusPending({
      name: 'test-pod',
      podPhase: 'Pending',
    })).toBeTruthy();
  });

  it('should check pod status correctly (failed isn\'t pending)', () => {
    expect(ctrl.isStatusPending({
      name: 'test-pod',
      podPhase: 'Failed',
    })).toBeFalsy();
  });

  it('should check pod status correctly (failed is failed)', () => {
    expect(ctrl.isStatusFailed({
      name: 'test-pod',
      podPhase: 'Failed',
    })).toBeTruthy();
  });

  it('should check pod status correctly (running isn\'t failed)', () => {
    expect(ctrl.isStatusFailed({
      name: 'test-pod',
      podPhase: 'Running',
    })).toBeFalsy();
  });

105 106 107
  it('should format the "pod start date" tooltip correctly', () => {
    expect(ctrl.getStartedAtTooltip('2016-06-06T09:13:12Z')).toBe('Started at 6/6/16 09:13 UTC');
  });
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141

  it('should show and hide metrics', () => {
    ctrl.podList = {};
    expect(ctrl.showMetrics()).toBe(false);

    ctrl.podList.pods = [];
    expect(ctrl.showMetrics()).toBe(false);

    ctrl.podList.pods = [{}];
    expect(ctrl.showMetrics()).toBe(false);

    ctrl.podList.pods = [{metrics: {}}];
    expect(ctrl.showMetrics()).toBe(true);
  });

  it('should show and hide cpu metrics', () => {
    expect(ctrl.hasCpuUsage({})).toBe(false);

    expect(ctrl.hasCpuUsage({metrics: {}})).toBe(false);

    expect(ctrl.hasCpuUsage({metrics: {cpuUsageHistory: []}})).toBe(false);

    expect(ctrl.hasCpuUsage({metrics: {cpuUsageHistory: [1]}})).toBe(true);
  });

  it('should show and hide memory metrics', () => {
    expect(ctrl.hasMemoryUsage({})).toBe(false);

    expect(ctrl.hasMemoryUsage({metrics: {}})).toBe(false);

    expect(ctrl.hasMemoryUsage({metrics: {memoryUsageHistory: []}})).toBe(false);

    expect(ctrl.hasMemoryUsage({metrics: {memoryUsageHistory: [1]}})).toBe(true);
  });
142
});