From dcfde83923631b9130d1dc08f49b005cab91bf4e Mon Sep 17 00:00:00 2001 From: kana-rus Date: Mon, 2 Oct 2023 12:58:39 +0900 Subject: [PATCH 01/10] Change: `pretty-bytes`: specify `binary: true` option --- app/helpers/pretty-bytes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/pretty-bytes.js b/app/helpers/pretty-bytes.js index 33acf40945..6884fa7ec1 100644 --- a/app/helpers/pretty-bytes.js +++ b/app/helpers/pretty-bytes.js @@ -2,4 +2,4 @@ import { helper } from '@ember/component/helper'; import prettyBytes from 'pretty-bytes'; -export default helper(([bytes], options) => prettyBytes(bytes, options)); +export default helper(([bytes], options) => prettyBytes(bytes, { ...options, binary: true})); From 6ce48bc6f9b12fc90227190c63d5bf3701746856 Mon Sep 17 00:00:00 2001 From: kana-rus Date: Mon, 2 Oct 2023 13:59:07 +0900 Subject: [PATCH 02/10] Add: doc comment & test --- app/helpers/pretty-bytes.js | 13 ++++++++++++- tests/unit/helpers/pretty-bytes-test.js | 26 +++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 tests/unit/helpers/pretty-bytes-test.js diff --git a/app/helpers/pretty-bytes.js b/app/helpers/pretty-bytes.js index 6884fa7ec1..d75f33b157 100644 --- a/app/helpers/pretty-bytes.js +++ b/app/helpers/pretty-bytes.js @@ -2,4 +2,15 @@ import { helper } from '@ember/component/helper'; import prettyBytes from 'pretty-bytes'; -export default helper(([bytes], options) => prettyBytes(bytes, { ...options, binary: true})); +/** + * See https://github.com/rust-lang/crates.io/discussions/7177 + * + * Here set {minimum,maximum}FractionDigits to 1 because + * `cargo publish` uses this format +*/ +export default helper(([bytes], options) => prettyBytes(bytes, { + ...options, + binary: true, + minimumFractionDigits: 1, + maximumFractionDigits: 1, +})); diff --git a/tests/unit/helpers/pretty-bytes-test.js b/tests/unit/helpers/pretty-bytes-test.js new file mode 100644 index 0000000000..84d29cd7cd --- /dev/null +++ b/tests/unit/helpers/pretty-bytes-test.js @@ -0,0 +1,26 @@ +import { render } from '@ember/test-helpers'; +import { module, test } from 'qunit'; + +import { hbs } from 'ember-cli-htmlbars'; + +import { setupRenderingTest } from 'cargo/tests/helpers'; + +module('Unit | Helper | pretty-bytes', function (hooks) { + setupRenderingTest(hooks); + + test("it displays as expected", async function (assert) { + this.owner.lookup('service:intl').locale = 'en'; + + await render(hbs`{{pretty-bytes 42}}`); + assert.dom().hasText('42.0 B'); + + await render(hbs`{{pretty-bytes 42000}}`); + assert.dom().hasText('41.0 KiB'); + + await render(hbs`{{pretty-bytes 42420}}`); + assert.dom().hasText('41.4 KiB'); + + await render(hbs`{{pretty-bytes 42424242}}`); + assert.dom().hasText('40.5 MiB'); + }) +}); From e57b7aac17b86abf1faed57d94046a53cfe7e914 Mon Sep 17 00:00:00 2001 From: kana-rus Date: Mon, 2 Oct 2023 14:11:17 +0900 Subject: [PATCH 03/10] Update: doc comment --- app/helpers/pretty-bytes.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/helpers/pretty-bytes.js b/app/helpers/pretty-bytes.js index d75f33b157..59e0d50a6e 100644 --- a/app/helpers/pretty-bytes.js +++ b/app/helpers/pretty-bytes.js @@ -5,8 +5,8 @@ import prettyBytes from 'pretty-bytes'; /** * See https://github.com/rust-lang/crates.io/discussions/7177 * - * Here set {minimum,maximum}FractionDigits to 1 because - * `cargo publish` uses this format + * Here we set fraction digits to 1 because `cargo publish` + * uses this format (see https://github.com/rust-lang/cargo/blob/master/src/cargo/ops/cargo_package.rs#L168-L171) */ export default helper(([bytes], options) => prettyBytes(bytes, { ...options, From f6199a72d200d8500c46171ee06ad0de3d29c873 Mon Sep 17 00:00:00 2001 From: kana-rus Date: Mon, 2 Oct 2023 14:28:08 +0900 Subject: [PATCH 04/10] Fix: format --- app/helpers/pretty-bytes.js | 8 ++++---- tests/unit/helpers/pretty-bytes-test.js | 24 ++++++++++++------------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/helpers/pretty-bytes.js b/app/helpers/pretty-bytes.js index 59e0d50a6e..22da46ec35 100644 --- a/app/helpers/pretty-bytes.js +++ b/app/helpers/pretty-bytes.js @@ -9,8 +9,8 @@ import prettyBytes from 'pretty-bytes'; * uses this format (see https://github.com/rust-lang/cargo/blob/master/src/cargo/ops/cargo_package.rs#L168-L171) */ export default helper(([bytes], options) => prettyBytes(bytes, { - ...options, - binary: true, - minimumFractionDigits: 1, - maximumFractionDigits: 1, + ...options, + binary: true, + minimumFractionDigits: 1, + maximumFractionDigits: 1, })); diff --git a/tests/unit/helpers/pretty-bytes-test.js b/tests/unit/helpers/pretty-bytes-test.js index 84d29cd7cd..cc467f106d 100644 --- a/tests/unit/helpers/pretty-bytes-test.js +++ b/tests/unit/helpers/pretty-bytes-test.js @@ -6,21 +6,21 @@ import { hbs } from 'ember-cli-htmlbars'; import { setupRenderingTest } from 'cargo/tests/helpers'; module('Unit | Helper | pretty-bytes', function (hooks) { - setupRenderingTest(hooks); + setupRenderingTest(hooks); - test("it displays as expected", async function (assert) { - this.owner.lookup('service:intl').locale = 'en'; + test("it displays as expected", async function (assert) { + this.owner.lookup('service:intl').locale = 'en'; - await render(hbs`{{pretty-bytes 42}}`); - assert.dom().hasText('42.0 B'); + await render(hbs`{{pretty-bytes 42}}`); + assert.dom().hasText('42.0 B'); - await render(hbs`{{pretty-bytes 42000}}`); - assert.dom().hasText('41.0 KiB'); + await render(hbs`{{pretty-bytes 42000}}`); + assert.dom().hasText('41.0 KiB'); - await render(hbs`{{pretty-bytes 42420}}`); - assert.dom().hasText('41.4 KiB'); + await render(hbs`{{pretty-bytes 42420}}`); + assert.dom().hasText('41.4 KiB'); - await render(hbs`{{pretty-bytes 42424242}}`); - assert.dom().hasText('40.5 MiB'); - }) + await render(hbs`{{pretty-bytes 42424242}}`); + assert.dom().hasText('40.5 MiB'); + }) }); From 379af63d008717afd8aa637945e359d0756013d5 Mon Sep 17 00:00:00 2001 From: kana-rus Date: Mon, 2 Oct 2023 14:29:00 +0900 Subject: [PATCH 05/10] Fix: format --- tests/unit/helpers/pretty-bytes-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/helpers/pretty-bytes-test.js b/tests/unit/helpers/pretty-bytes-test.js index cc467f106d..f3e757b5e7 100644 --- a/tests/unit/helpers/pretty-bytes-test.js +++ b/tests/unit/helpers/pretty-bytes-test.js @@ -22,5 +22,5 @@ module('Unit | Helper | pretty-bytes', function (hooks) { await render(hbs`{{pretty-bytes 42424242}}`); assert.dom().hasText('40.5 MiB'); - }) + }); }); From 0542ed26c9d413e4aa320b9c967e8fc18f7120e3 Mon Sep 17 00:00:00 2001 From: kana-rus Date: Mon, 2 Oct 2023 14:32:18 +0900 Subject: [PATCH 06/10] Run: `pnpm prettier` --- app/helpers/pretty-bytes.js | 18 ++++++++++-------- tests/unit/helpers/pretty-bytes-test.js | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/helpers/pretty-bytes.js b/app/helpers/pretty-bytes.js index 22da46ec35..7ef52cd79f 100644 --- a/app/helpers/pretty-bytes.js +++ b/app/helpers/pretty-bytes.js @@ -4,13 +4,15 @@ import prettyBytes from 'pretty-bytes'; /** * See https://github.com/rust-lang/crates.io/discussions/7177 - * + * * Here we set fraction digits to 1 because `cargo publish` * uses this format (see https://github.com/rust-lang/cargo/blob/master/src/cargo/ops/cargo_package.rs#L168-L171) -*/ -export default helper(([bytes], options) => prettyBytes(bytes, { - ...options, - binary: true, - minimumFractionDigits: 1, - maximumFractionDigits: 1, -})); + */ +export default helper(([bytes], options) => + prettyBytes(bytes, { + ...options, + binary: true, + minimumFractionDigits: 1, + maximumFractionDigits: 1, + }), +); diff --git a/tests/unit/helpers/pretty-bytes-test.js b/tests/unit/helpers/pretty-bytes-test.js index f3e757b5e7..9c5ee8eb79 100644 --- a/tests/unit/helpers/pretty-bytes-test.js +++ b/tests/unit/helpers/pretty-bytes-test.js @@ -8,7 +8,7 @@ import { setupRenderingTest } from 'cargo/tests/helpers'; module('Unit | Helper | pretty-bytes', function (hooks) { setupRenderingTest(hooks); - test("it displays as expected", async function (assert) { + test('it displays as expected', async function (assert) { this.owner.lookup('service:intl').locale = 'en'; await render(hbs`{{pretty-bytes 42}}`); From 937a1a1aa0b28c060c6a70f8df902824b007f89f Mon Sep 17 00:00:00 2001 From: kana-rus Date: Tue, 3 Oct 2023 18:23:32 +0900 Subject: [PATCH 07/10] Fix: reference URL: to use fixed tag --- app/helpers/pretty-bytes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/pretty-bytes.js b/app/helpers/pretty-bytes.js index 7ef52cd79f..9ceec5956a 100644 --- a/app/helpers/pretty-bytes.js +++ b/app/helpers/pretty-bytes.js @@ -6,7 +6,7 @@ import prettyBytes from 'pretty-bytes'; * See https://github.com/rust-lang/crates.io/discussions/7177 * * Here we set fraction digits to 1 because `cargo publish` - * uses this format (see https://github.com/rust-lang/cargo/blob/master/src/cargo/ops/cargo_package.rs#L168-L171) + * uses this format (see https://github.com/rust-lang/cargo/blob/0.73.1/src/cargo/ops/cargo_package.rs#L167-L170) */ export default helper(([bytes], options) => prettyBytes(bytes, { From 1d3fdbb74e8dd245127396c5945747d56a6c8a3a Mon Sep 17 00:00:00 2001 From: kana-rus Date: Tue, 3 Oct 2023 18:29:54 +0900 Subject: [PATCH 08/10] Fix: `components/version-list`: specify `text-transform: none` in `.bytes` --- app/components/version-list/row.module.css | 1 + 1 file changed, 1 insertion(+) diff --git a/app/components/version-list/row.module.css b/app/components/version-list/row.module.css index 1d784756d9..8cd2c0e16a 100644 --- a/app/components/version-list/row.module.css +++ b/app/components/version-list/row.module.css @@ -211,6 +211,7 @@ .bytes { font-variant-numeric: tabular-nums; + text-transform: none; } .feature-list { From 152f41145465b1143209b178333da8c92be604d3 Mon Sep 17 00:00:00 2001 From: kana-rus Date: Tue, 3 Oct 2023 18:34:39 +0900 Subject: [PATCH 09/10] Fix: `prettyBytes` options inh helper: specify in ahead of `...options` --- app/helpers/pretty-bytes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/pretty-bytes.js b/app/helpers/pretty-bytes.js index 9ceec5956a..d3823f7e6c 100644 --- a/app/helpers/pretty-bytes.js +++ b/app/helpers/pretty-bytes.js @@ -10,9 +10,9 @@ import prettyBytes from 'pretty-bytes'; */ export default helper(([bytes], options) => prettyBytes(bytes, { - ...options, binary: true, minimumFractionDigits: 1, maximumFractionDigits: 1, + ...options, }), ); From 1cf5862146d93e97a012bc6323ea59b08e54129e Mon Sep 17 00:00:00 2001 From: kana-rus Date: Tue, 3 Oct 2023 19:26:43 +0900 Subject: [PATCH 10/10] Fix: `prettyBytes` helper: not set franction digits to 1 & Fix test --- app/helpers/pretty-bytes.js | 5 ----- tests/unit/helpers/pretty-bytes-test.js | 26 +++++++++++++++++++------ 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/helpers/pretty-bytes.js b/app/helpers/pretty-bytes.js index d3823f7e6c..3511e72898 100644 --- a/app/helpers/pretty-bytes.js +++ b/app/helpers/pretty-bytes.js @@ -4,15 +4,10 @@ import prettyBytes from 'pretty-bytes'; /** * See https://github.com/rust-lang/crates.io/discussions/7177 - * - * Here we set fraction digits to 1 because `cargo publish` - * uses this format (see https://github.com/rust-lang/cargo/blob/0.73.1/src/cargo/ops/cargo_package.rs#L167-L170) */ export default helper(([bytes], options) => prettyBytes(bytes, { binary: true, - minimumFractionDigits: 1, - maximumFractionDigits: 1, ...options, }), ); diff --git a/tests/unit/helpers/pretty-bytes-test.js b/tests/unit/helpers/pretty-bytes-test.js index 9c5ee8eb79..a5d93b7690 100644 --- a/tests/unit/helpers/pretty-bytes-test.js +++ b/tests/unit/helpers/pretty-bytes-test.js @@ -12,15 +12,29 @@ module('Unit | Helper | pretty-bytes', function (hooks) { this.owner.lookup('service:intl').locale = 'en'; await render(hbs`{{pretty-bytes 42}}`); - assert.dom().hasText('42.0 B'); + assert.dom().hasText('42 B'); + await render(hbs`{{pretty-bytes 1024}}`); + assert.dom().hasText('1 KiB'); + + // 4200 / 1024 = 4.101... + await render(hbs`{{pretty-bytes 4200}}`); + assert.dom().hasText('4.1 KiB'); + + // 4200 / 1024 = 4.142... + await render(hbs`{{pretty-bytes 4242}}`); + assert.dom().hasText('4.14 KiB'); + + // 42000 / 1024 = 41.0156... await render(hbs`{{pretty-bytes 42000}}`); - assert.dom().hasText('41.0 KiB'); + assert.dom().hasText('41 KiB'); - await render(hbs`{{pretty-bytes 42420}}`); - assert.dom().hasText('41.4 KiB'); + // 42623 / 1024 = 41.625 + await render(hbs`{{pretty-bytes 42624}}`); + assert.dom().hasText('41.6 KiB'); - await render(hbs`{{pretty-bytes 42424242}}`); - assert.dom().hasText('40.5 MiB'); + // 424242 / 1024 = 414.2988... + await render(hbs`{{pretty-bytes 424242}}`); + assert.dom().hasText('414 KiB'); }); });