|
| 1 | +import fileSize from '../src'; |
| 2 | + |
| 3 | +describe('fileSize.js', () => { |
| 4 | + let bytes, i, unit; |
| 5 | + const jedec = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']; |
| 6 | + const si = ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']; |
| 7 | + |
| 8 | + test('jedec', () => { |
| 9 | + // test `bytes`, default spec `jedec` |
| 10 | + bytes = 1.98765; |
| 11 | + |
| 12 | + for (i = 0; i < jedec.length; i++) { |
| 13 | + unit = jedec[i]; |
| 14 | + expect(fileSize(bytes)).toBe('2.0 ' + unit + 'b'); // default fixed = 1 |
| 15 | + expect(fileSize(bytes, undefined, 'jedec')).toBe('2.0 ' + unit + 'b'); // default fixed = 1 |
| 16 | + expect(fileSize(bytes, 2, 'not_exist_spec')).toBe('1.99 ' + unit + 'b'); // default spec = 'jedec' |
| 17 | + |
| 18 | + expect(fileSize(bytes, 4)).toBe('1.9876 ' + unit + 'b'); // test fixed = 3 |
| 19 | + bytes *= 1024; |
| 20 | + } |
| 21 | + }); |
| 22 | + |
| 23 | + test('si', () => { |
| 24 | + // test spec `si` |
| 25 | + bytes = 1.23456; |
| 26 | + for (i = 0; i < si.length; i++) { |
| 27 | + unit = si[i]; |
| 28 | + expect(fileSize(bytes, undefined, 'si')).toBe('1.2 ' + unit + 'b'); |
| 29 | + |
| 30 | + expect(fileSize(bytes, 4, 'si')).toBe('1.2346 ' + unit + 'b'); // test fixed = 3 |
| 31 | + bytes *= 1000; |
| 32 | + } |
| 33 | + }); |
| 34 | + |
| 35 | + test('iec', () => { |
| 36 | + // test spec `iec` |
| 37 | + bytes = 1.98765; |
| 38 | + const iec = ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi']; |
| 39 | + for (i = 0; i < iec.length; i++) { |
| 40 | + unit = iec[i]; |
| 41 | + expect(fileSize(bytes, undefined, 'iec')).toBe('2.0 ' + unit + 'b'); |
| 42 | + |
| 43 | + expect(fileSize(bytes, 3, 'iec')).toBe('1.988 ' + unit + 'b'); // test fixed = 3 |
| 44 | + bytes *= 1024; |
| 45 | + } |
| 46 | + }); |
| 47 | + |
| 48 | + test('other', () => { |
| 49 | + // test negative |
| 50 | + bytes = -1.98765; |
| 51 | + for (i = 0; i < jedec.length; i++) { |
| 52 | + unit = jedec[i]; |
| 53 | + expect(fileSize(bytes)).toBe('2.0 ' + unit + 'b'); // default fixed = 1 |
| 54 | + expect(fileSize(bytes, undefined, 'jedec')).toBe('2.0 ' + unit + 'b'); // default fixed = 1 |
| 55 | + expect(fileSize(bytes, 2, 'not_exist_spec')).toBe('1.99 ' + unit + 'b'); // default spec = 'jedec' |
| 56 | + |
| 57 | + expect(fileSize(bytes, 4)).toBe('1.9876 ' + unit + 'b'); // test fixed = 3 |
| 58 | + bytes *= 1024; |
| 59 | + } |
| 60 | + // bytes |
| 61 | + expect(fileSize(123456)).toBe('120.6 Kb'); |
| 62 | + // fixed |
| 63 | + expect(fileSize(123456, 0)).toBe('121 Kb'); |
| 64 | + expect(fileSize(123456, 4)).toBe('120.5625 Kb'); |
| 65 | + // spec, jedec / iec / si |
| 66 | + expect(fileSize(123456, 2, 'iec')).toBe('120.56 Kib'); |
| 67 | + expect(fileSize(123456, 0, 'si')).toBe('123 kb'); |
| 68 | + }); |
| 69 | +}); |
0 commit comments