Skip to content

Commit e5acbcd

Browse files
author
Elrey Belmonti
committed
add unit test for utils/format-assets.js
1 parent c486351 commit e5acbcd

File tree

2 files changed

+73
-15
lines changed

2 files changed

+73
-15
lines changed

test/utils/format-assets.spec.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
"use strict";
2+
3+
const { expect } = require("chai");
4+
5+
const { _getAssetSize, _getTotalSize, _printAssets } = require("../../utils/format-assets");
6+
7+
describe("format-assets.js", () => {
8+
describe("#_getAssetSize", () => {
9+
context("when asset size is present", () => {
10+
it("returns a readable file size as string", () => {
11+
const asset = {
12+
size: 500
13+
};
14+
expect(_getAssetSize(asset)).to.equal("500 B");
15+
});
16+
});
17+
18+
context("when no asset size is present", () => {
19+
it("returns zero in a readable file size as string", () => {
20+
const asset = {
21+
size: undefined
22+
};
23+
expect(_getAssetSize(asset)).to.equal("0 B");
24+
});
25+
});
26+
});
27+
28+
describe("#_getTotalSize", () => {
29+
it("returns a readable file size of all assets as a string", () => {
30+
const assets = [{ size: 500 }, { size: undefined }, { size: 1000 }];
31+
expect(_getTotalSize(assets)).to.equal("1.46 KB");
32+
});
33+
});
34+
35+
describe("#_printAssets", () => {
36+
it("returns a nested array of assets information", () => {
37+
const assetList = [
38+
{
39+
name: "assest1",
40+
size: 500
41+
},
42+
{
43+
name: "assest2",
44+
size: 0
45+
},
46+
{
47+
name: "assest2",
48+
size: 500
49+
}
50+
];
51+
52+
const output = [
53+
["Name", "Size"],
54+
["assest1", "500 B"],
55+
["assest2", "0 B"],
56+
["assest2", "500 B"],
57+
["Total", "1000 B"]
58+
];
59+
expect(_printAssets(assetList)).eql(output);
60+
});
61+
});
62+
});

utils/format-assets.js

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,18 @@
55
*/
66
const filesize = require("filesize");
77

8-
function getAssetSize(asset) {
8+
function _getAssetSize(asset) {
99
return filesize(asset.size || 0);
1010
}
1111

12-
function getTotalSize(assetsList) {
13-
return filesize(assetsList.reduce(
14-
(total, asset) => total + (asset.size || 0),
15-
0
16-
));
12+
function _getTotalSize(assetsList) {
13+
return filesize(assetsList.reduce((total, asset) => total + (asset.size || 0), 0));
1714
}
1815

19-
function printAssets(assetsList) {
16+
function _printAssets(assetsList) {
2017
return [["Name", "Size"]]
21-
.concat(assetsList.map(asset =>
22-
[asset.name, getAssetSize(asset)]
23-
))
24-
.concat(
25-
[["Total", getTotalSize(assetsList)]]
26-
);
18+
.concat(assetsList.map(asset => [asset.name, _getAssetSize(asset)]))
19+
.concat([["Total", _getTotalSize(assetsList)]]);
2720
}
2821

2922
function formatAssets(assets) {
@@ -33,7 +26,10 @@ function formatAssets(assets) {
3326
size: assets[name].meta.full
3427
}));
3528

36-
return printAssets(assetsList);
29+
return _printAssets(assetsList);
3730
}
3831

39-
module.exports = formatAssets;
32+
module.exports = { formatAssets,
33+
_getAssetSize,
34+
_getTotalSize,
35+
_printAssets };

0 commit comments

Comments
 (0)