This is an automated email from the ASF dual-hosted git repository.

alexantonenko pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/trunk by this push:
     new aac5619  AMBARI-25109. Cover onefs view
     new c50dc8d  Merge pull request #2769 from hiveww/AMBARI-25109-trunk
aac5619 is described below

commit aac5619a5053d8d759e8bc32cb5d0777d6ce67d4
Author: Alex Antonenko <aantone...@hortonworks.com>
AuthorDate: Thu Jan 17 16:11:49 2019 +0300

    AMBARI-25109. Cover onefs view
---
 ambari-web/app/assets/test/tests.js                |   1 +
 .../test/views/main/service/services/onefs_test.js | 243 +++++++++++++++++++++
 2 files changed, 244 insertions(+)

diff --git a/ambari-web/app/assets/test/tests.js 
b/ambari-web/app/assets/test/tests.js
index 30c9f8d..63a5905 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -404,6 +404,7 @@ var files = [
   'test/views/main/service/services/yarn_test',
   'test/views/main/service/services/hive_test',
   'test/views/main/service/services/mapreduce2_test',
+  'test/views/main/service/services/onefs_test',
   'test/views/main/service/services/zookeeper_test',
   'test/views/main/service/services/flume_test',
   'test/views/main/service/widgets/create/expression_view_test',
diff --git a/ambari-web/test/views/main/service/services/onefs_test.js 
b/ambari-web/test/views/main/service/services/onefs_test.js
new file mode 100644
index 0000000..3a45006
--- /dev/null
+++ b/ambari-web/test/views/main/service/services/onefs_test.js
@@ -0,0 +1,243 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+var App = require('app');
+var numberUtils = require('utils/number_utils');
+
+describe('App.MainDashboardServiceOnefsView', function () {
+  var view;
+
+  beforeEach(function () {
+    view = App.MainDashboardServiceOnefsView.create();
+  });
+
+  describe('#journalNodesLive', function () {
+    it('should give count of started nodes', function () {
+      view.set('service', Em.Object.create({
+        journalNodes: [{workStatus: 'STARTED'}, {workStatus: 'STARTED'}, 
{workStatus: 'STOPPED'} ]
+      }));
+      expect(view.get('journalNodesLive')).to.be.equal(2);
+    });
+  });
+
+  describe('#nodeUptime', function () {
+    it('should display notRunning text if time is equal to 0', function () {
+      view.set('service', Em.Object.create({
+        nameNodeStartTime: 0
+      }));
+      
expect(view.get('nodeUptime')).to.be.equal(Em.I18n.t('services.service.summary.notRunning'));
+    });
+
+    it('should display notRunning text if time is nullable', function () {
+      view.set('service', Em.Object.create({
+        nameNodeStartTime: null
+      }));
+      
expect(view.get('nodeUptime')).to.be.equal(Em.I18n.t('services.service.summary.notRunning'));
+    });
+
+    it('should display uptime text if time is more than 0', function () {
+      const now = +(new Date());
+      view.set('service', Em.Object.create({
+        nameNodeStartTime: now
+      }));
+      sinon.stub(App, 'dateTime').returns(now);
+      expect(view.get('nodeUptime')).to.be.equal('0s');
+      App.dateTime.restore();
+    });
+  });
+
+  describe('#nonDfsUsed', function () {
+    it('should return null if capacityTotal or capacityRemaining or 
capacityUsed is null', function () {
+      view.set('service', Em.Object.create({
+        capacityTotal: null,
+        capacityRemaining: 1,
+        capacityUsed: 1
+      }));
+      expect(view.get('nonDfsUsed')).to.be.equal(null);
+
+      view.set('service', Em.Object.create({
+        capacityTotal: 1,
+        capacityRemaining: null,
+        capacityUsed: 1
+      }));
+      expect(view.get('nonDfsUsed')).to.be.equal(null);
+
+      view.set('service', Em.Object.create({
+        capacityTotal: 1,
+        capacityRemaining: 1,
+        capacityUsed: null
+      }));
+      expect(view.get('nonDfsUsed')).to.be.equal(null);
+    });
+
+    it('should return diff of capacityTotal and capacityRemaining and 
capacityUsed if they are provided', function () {
+      view.set('service', Em.Object.create({
+        capacityTotal: 6,
+        capacityRemaining: 2,
+        capacityUsed: 1
+      }));
+      expect(view.get('nonDfsUsed')).to.be.equal(3);
+    });
+  });
+
+  describe('#dfsUsedDisk', function () {
+    it('should return correct formatted string', function () {
+      view.set('service', Em.Object.create({
+        capacityTotal: 600,
+        capacityUsed: 3
+      }));
+      expect(view.get('dfsUsedDisk')).to.be.equal(
+        
Em.I18n.t('dashboard.services.hdfs.capacityUsed').format(numberUtils.bytesToSize(3,
 1, 'parseFloat'), numberUtils.bytesToSize(600, 1, 'parseFloat'))
+      );
+    });
+  });
+
+  describe('#nonDfsUsedDisk', function () {
+    it('should return correct formatted string', function () {
+      view.set('service', Em.Object.create({
+        capacityTotal: 6,
+        capacityRemaining: 2,
+        capacityUsed: 1
+      }));
+      expect(view.get('nonDfsUsedDisk')).to.be.equal(
+        
Em.I18n.t('dashboard.services.hdfs.capacityUsed').format(numberUtils.bytesToSize(3,
 1, 'parseFloat'), numberUtils.bytesToSize(6, 1, 'parseFloat'))
+      );
+    });
+  });
+
+  describe('#remainingDisk', function () {
+    it('should return correct formatted string', function () {
+      view.set('service', Em.Object.create({
+        capacityTotal: 600,
+        capacityRemaining: 3
+      }));
+      expect(view.get('remainingDisk')).to.be.equal(
+        
Em.I18n.t('dashboard.services.hdfs.capacityUsed').format(numberUtils.bytesToSize(3,
 1, 'parseFloat'), numberUtils.bytesToSize(600, 1, 'parseFloat'))
+      );
+    });
+  });
+
+  describe('#dfsUsedDiskPercent', function () {
+    it('should return formatted string with not available if used is not a 
number', function () {
+      view.set('service', Em.Object.create({
+        capacityTotal: 600,
+        capacityUsed: 'a'
+      }));
+      expect(view.get('dfsUsedDiskPercent')).to.be.equal(
+        
Em.I18n.t('dashboard.services.hdfs.capacityUsedPercent').format(Em.I18n.t('services.service.summary.notAvailable')
 + " ")
+      );
+    });
+
+    it('should return correct formatted string', function () {
+      view.set('service', Em.Object.create({
+        capacityTotal: 600,
+        capacityUsed: 3
+      }));
+      expect(view.get('dfsUsedDiskPercent')).to.be.equal(
+        Em.I18n.t('dashboard.services.hdfs.capacityUsedPercent').format('0.50')
+      );
+    });
+  });
+
+  describe('#nonDfsUsedDiskPercent', function () {
+    it('should return formatted string with not available if used is not a 
number', function () {
+      view.set('service', Em.Object.create({
+        capacityTotal: 6,
+        capacityRemaining: 2,
+        capacityUsed: 'a'
+      }));
+      expect(view.get('nonDfsUsedDiskPercent')).to.be.equal(
+        
Em.I18n.t('dashboard.services.hdfs.capacityUsedPercent').format(Em.I18n.t('services.service.summary.notAvailable')
 + " ")
+      );
+    });
+
+    it('should return correct formatted string', function () {
+      view.set('service', Em.Object.create({
+        capacityTotal: 6,
+        capacityRemaining: 2,
+        capacityUsed: 1
+      }));
+      expect(view.get('nonDfsUsedDiskPercent')).to.be.equal(
+        
Em.I18n.t('dashboard.services.hdfs.capacityUsedPercent').format('50.00')
+      );
+    });
+  });
+
+  describe('#isNfsInStack', function () {
+    it('should return true if NFS_GATEWAY is in stack', function () {
+      sinon.stub(App.StackServiceComponent, 'find').returns([{componentName: 
'HDFS'}, {componentName: 'NFS_GATEWAY'}]);
+      expect(view.get('isNfsInStack')).to.be.equal(true);
+      App.StackServiceComponent.find.restore();
+    });
+
+    it('should return false if NFS_GATEWAY is not in stack', function () {
+      sinon.stub(App.StackServiceComponent, 'find').returns([{componentName: 
'HDFS'}, {componentName: 'HDFS'}]);
+      expect(view.get('isNfsInStack')).to.be.equal(false);
+      App.StackServiceComponent.find.restore();
+    });
+  });
+
+  describe('#safeModeStatus', function () {
+    it('should return notAvailable if safeModeStatus is nullable', function () 
{
+      view.set('service', Em.Object.create({
+        safeModeStatus: null
+      }));
+      
expect(view.get('safeModeStatus')).to.be.equal(Em.I18n.t("services.service.summary.notAvailable"));
+    });
+
+    it('should return notAvailable if safeModeStatus is empty array', function 
() {
+      view.set('service', Em.Object.create({
+        safeModeStatus: []
+      }));
+      
expect(view.get('safeModeStatus')).to.be.equal(Em.I18n.t("services.service.summary.safeModeStatus.notInSafeMode"));
+    });
+
+    it('should return notAvailable if safeModeStatus is not empty array', 
function () {
+      view.set('service', Em.Object.create({
+        safeModeStatus: [{}]
+      }));
+      
expect(view.get('safeModeStatus')).to.be.equal(Em.I18n.t("services.service.summary.safeModeStatus.inSafeMode"));
+    });
+  });
+
+  describe('#upgradeStatus', function () {
+    it('should return notPending if upgradeStatus is true', function () {
+      view.set('service', Em.Object.create({
+        upgradeStatus: 'true',
+        healthStatus: 'green'
+      }));
+      
expect(view.get('upgradeStatus')).to.be.equal(Em.I18n.t('services.service.summary.pendingUpgradeStatus.notPending'));
+    });
+
+    it('should return notFinalized if upgradeStatus is false and health status 
us green', function () {
+      view.set('service', Em.Object.create({
+        upgradeStatus: 'false',
+        healthStatus: 'green'
+      }));
+      
expect(view.get('upgradeStatus')).to.be.equal(Em.I18n.t('services.service.summary.pendingUpgradeStatus.notFinalized'));
+    });
+
+    it('should return notAvailable in all othe cases', function () {
+      view.set('service', Em.Object.create({
+        upgradeStatus: 'false',
+        healthStatus: 'red'
+      }));
+      
expect(view.get('upgradeStatus')).to.be.equal(Em.I18n.t('services.service.summary.notAvailable'));
+    });
+  });
+});
\ No newline at end of file

Reply via email to