diff --git a/addon/components/service-rate/details.hbs b/addon/components/service-rate/details.hbs index 14118c398..3d7d15590 100644 --- a/addon/components/service-rate/details.hbs +++ b/addon/components/service-rate/details.hbs @@ -214,7 +214,7 @@
- parcel size {{parcelFee.size}} + parcel size {{parcelFee.size}}
{{humanize parcelFee.size}}
diff --git a/addon/components/service-rate/form.hbs b/addon/components/service-rate/form.hbs index f6729a39c..b7bd773af 100644 --- a/addon/components/service-rate/form.hbs +++ b/addon/components/service-rate/form.hbs @@ -423,7 +423,7 @@
- parcel size {{parcelFee.size}} + parcel size {{parcelFee.size}}
diff --git a/addon/helpers/parcel-box-image.js b/addon/helpers/parcel-box-image.js new file mode 100644 index 000000000..5d28d8f53 --- /dev/null +++ b/addon/helpers/parcel-box-image.js @@ -0,0 +1,16 @@ +import { helper } from '@ember/component/helper'; + +// Each URL is written out in full so a production build's fingerprinting +// (broccoli-asset-rev) rewrites it to the hashed file name. An interpolated +// path such as `boxes/${size}.png` is never rewritten, so it misses the +// fingerprinted file and the server answers with the console's index.html. +const PARCEL_BOX_IMAGES = { + small: '/engines-dist/images/boxes/small.png', + medium: '/engines-dist/images/boxes/medium.png', + large: '/engines-dist/images/boxes/large.png', + 'x-large': '/engines-dist/images/boxes/x-large.png', +}; + +export default helper(function parcelBoxImage([size]) { + return PARCEL_BOX_IMAGES[size] ?? PARCEL_BOX_IMAGES.medium; +}); diff --git a/app/helpers/parcel-box-image.js b/app/helpers/parcel-box-image.js new file mode 100644 index 000000000..debc6410a --- /dev/null +++ b/app/helpers/parcel-box-image.js @@ -0,0 +1 @@ +export { default } from '@fleetbase/fleetops-engine/helpers/parcel-box-image'; diff --git a/tests/integration/helpers/parcel-box-image-test.js b/tests/integration/helpers/parcel-box-image-test.js new file mode 100644 index 000000000..306222e8f --- /dev/null +++ b/tests/integration/helpers/parcel-box-image-test.js @@ -0,0 +1,22 @@ +import { module, test } from 'qunit'; +import { setupRenderingTest } from 'dummy/tests/helpers'; +import { render } from '@ember/test-helpers'; +import { hbs } from 'ember-cli-htmlbars'; + +module('Integration | Helper | parcel-box-image', function (hooks) { + setupRenderingTest(hooks); + + test('it returns the box image for each parcel size', async function (assert) { + for (const size of ['small', 'medium', 'large', 'x-large']) { + this.set('size', size); + await render(hbs`{{parcel-box-image this.size}}`); + assert.dom().hasText(`/engines-dist/images/boxes/${size}.png`); + } + }); + + test('it falls back to the medium box for an unknown size', async function (assert) { + this.set('size', 'oversized'); + await render(hbs`{{parcel-box-image this.size}}`); + assert.dom().hasText('/engines-dist/images/boxes/medium.png'); + }); +});