aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'web/src/js')
-rw-r--r--web/src/js/tests.js3
-rw-r--r--web/src/js/tests/utils.js15
-rw-r--r--web/src/js/utils.js20
3 files changed, 28 insertions, 10 deletions
diff --git a/web/src/js/tests.js b/web/src/js/tests.js
deleted file mode 100644
index ede323dc..00000000
--- a/web/src/js/tests.js
+++ /dev/null
@@ -1,3 +0,0 @@
-QUnit.test("example test", function (assert) {
- assert.ok(true);
-}); \ No newline at end of file
diff --git a/web/src/js/tests/utils.js b/web/src/js/tests/utils.js
new file mode 100644
index 00000000..dfbb9ba6
--- /dev/null
+++ b/web/src/js/tests/utils.js
@@ -0,0 +1,15 @@
+jest.dontMock("jquery");
+jest.dontMock("../utils");
+
+describe("utils", function () {
+ var utils = require("../utils");
+ it("formatSize", function(){
+ expect(utils.formatSize(1024)).toEqual("1kb");
+ expect(utils.formatSize(0)).toEqual("0");
+ expect(utils.formatSize(10)).toEqual("10b");
+ expect(utils.formatSize(1025)).toEqual("1.0kb");
+ expect(utils.formatSize(1024*1024)).toEqual("1mb");
+ expect(utils.formatSize(1024*1024+1)).toEqual("1.0mb");
+ });
+});
+
diff --git a/web/src/js/utils.js b/web/src/js/utils.js
index d5093702..21b7a868 100644
--- a/web/src/js/utils.js
+++ b/web/src/js/utils.js
@@ -23,14 +23,20 @@ for (var i = 65; i <= 90; i++) {
var formatSize = function (bytes) {
- var size = bytes;
- var prefix = ["B", "KB", "MB", "GB", "TB"];
- var i = 0;
- while (Math.abs(size) >= 1024 && i < prefix.length - 1) {
- i++;
- size = size / 1024;
+ if (bytes === 0)
+ return "0";
+ var prefix = ["b", "kb", "mb", "gb", "tb"];
+ for (var i = 0; i < prefix.length; i++){
+ if (Math.pow(1024, i + 1) > bytes){
+ break;
+ }
}
- return (Math.floor(size * 100) / 100.0).toFixed(2) + prefix[i];
+ var precision;
+ if (bytes%Math.pow(1024, i) === 0)
+ precision = 0;
+ else
+ precision = 1;
+ return (bytes/Math.pow(1024, i)).toFixed(precision) + prefix[i];
};