From 8298e2e6574936aac72d187ce2a922acde8f42c1 Mon Sep 17 00:00:00 2001 From: pwengerter Date: Thu, 26 Aug 2021 12:55:38 +0100 Subject: [PATCH 1/2] Bump filesize lib to v8.0.0 & adjust unit tests --- .../enhancement-switch-filesize-calculation-base | 6 ++++++ packages/web-app-files/package.json | 2 +- .../tests/unit/components/FilesList/ListInfo.spec.js | 8 ++++---- .../SideBar/Details/FileDetailsMultiple.spec.js | 6 +++--- .../web-app-files/tests/unit/mixins/resources.spec.js | 6 +++--- packages/web-runtime/package.json | 2 +- .../tests/unit/components/SidebarQuota.spec.js | 2 +- packages/web-runtime/tests/unit/helpers/resource.spec.js | 6 +++--- yarn.lock | 8 ++++---- 9 files changed, 26 insertions(+), 20 deletions(-) create mode 100644 changelog/unreleased/enhancement-switch-filesize-calculation-base diff --git a/changelog/unreleased/enhancement-switch-filesize-calculation-base b/changelog/unreleased/enhancement-switch-filesize-calculation-base new file mode 100644 index 00000000000..868063f082d --- /dev/null +++ b/changelog/unreleased/enhancement-switch-filesize-calculation-base @@ -0,0 +1,6 @@ +Enhancement: Switch filesize calculation base + +We've switched from base-2 to base-10 when calculating the displayed file-size +to align it better with user expectations. + +https://github.com/owncloud/web/pull/5739 diff --git a/packages/web-app-files/package.json b/packages/web-app-files/package.json index 8eb24e03362..aea2816a2e7 100644 --- a/packages/web-app-files/package.json +++ b/packages/web-app-files/package.json @@ -5,7 +5,7 @@ "license": "AGPL-3.0", "devDependencies": { "copy-to-clipboard": "^3.3.1", - "filesize": "^6.4.0", + "filesize": "^8.0.0", "filter-obj": "^2.0.1", "fuse.js": "^6.4.6", "lodash-es": "^4.17.21", diff --git a/packages/web-app-files/tests/unit/components/FilesList/ListInfo.spec.js b/packages/web-app-files/tests/unit/components/FilesList/ListInfo.spec.js index 4e7e582af2a..94df5be8d69 100644 --- a/packages/web-app-files/tests/unit/components/FilesList/ListInfo.spec.js +++ b/packages/web-app-files/tests/unit/components/FilesList/ListInfo.spec.js @@ -82,10 +82,10 @@ describe('ListInfo', () => { ${0.1} | ${'0 B'} ${1} | ${'1 B'} ${100} | ${'100 B'} - ${10000} | ${'10 KB'} - ${10000000} | ${'9.5 MB'} - ${10000000000} | ${'9.3 GB'} - ${10000000000000} | ${'9.1 TB'} + ${10000} | ${'10 kB'} + ${10000000} | ${'10 MB'} + ${10000000000} | ${'10 GB'} + ${10000000000000} | ${'10 TB'} `('should calculate size units', ({ size, expectedSize }) => { const wrapper = getWrapper({ size: size }) diff --git a/packages/web-app-files/tests/unit/components/SideBar/Details/FileDetailsMultiple.spec.js b/packages/web-app-files/tests/unit/components/SideBar/Details/FileDetailsMultiple.spec.js index e284d18c8ee..8beafda8ecb 100644 --- a/packages/web-app-files/tests/unit/components/SideBar/Details/FileDetailsMultiple.spec.js +++ b/packages/web-app-files/tests/unit/components/SideBar/Details/FileDetailsMultiple.spec.js @@ -55,21 +55,21 @@ describe('Details Multiple Selection SideBar Item', () => { expect(wrapper.find(selectors.selectedFilesText).text()).toBe('2 items selected') expect(wrapper.find(selectors.filesCount).text()).toBe('Files 0') expect(wrapper.find(selectors.foldersCount).text()).toBe('Folders 2') - expect(wrapper.find(selectors.size).text()).toBe('Size 1 KB') + expect(wrapper.find(selectors.size).text()).toBe('Size 1 kB') }) it('should display information for two selected files', () => { const wrapper = createWrapper([fileA, fileB]) expect(wrapper.find(selectors.selectedFilesText).text()).toBe('2 items selected') expect(wrapper.find(selectors.filesCount).text()).toBe('Files 2') expect(wrapper.find(selectors.foldersCount).text()).toBe('Folders 0') - expect(wrapper.find(selectors.size).text()).toBe('Size 1 KB') + expect(wrapper.find(selectors.size).text()).toBe('Size 1 kB') }) it('should display information for one selected file, one selected folder', () => { const wrapper = createWrapper([fileA, folderA]) expect(wrapper.find(selectors.selectedFilesText).text()).toBe('2 items selected') expect(wrapper.find(selectors.filesCount).text()).toBe('Files 1') expect(wrapper.find(selectors.foldersCount).text()).toBe('Folders 1') - expect(wrapper.find(selectors.size).text()).toBe('Size 1 KB') + expect(wrapper.find(selectors.size).text()).toBe('Size 1 kB') }) }) diff --git a/packages/web-app-files/tests/unit/mixins/resources.spec.js b/packages/web-app-files/tests/unit/mixins/resources.spec.js index 9b0e9305f06..4a5e7f25d0c 100644 --- a/packages/web-app-files/tests/unit/mixins/resources.spec.js +++ b/packages/web-app-files/tests/unit/mixins/resources.spec.js @@ -25,18 +25,18 @@ describe('resources', () => { it.each([ { size: '0', expectedSize: '0 B' }, { size: '1', expectedSize: '1 B' }, - { size: '1024', expectedSize: '1 KB' }, + { size: '1024', expectedSize: '1 kB' }, { size: '1048576', expectedSize: '1 MB' } ])('should return formatted size of given resource', sizeInput => { expect(wrapper.vm.getResourceSize(sizeInput.size)).toEqual(sizeInput.expectedSize) }) it('should not show round value for size less than a MB', () => { - expect(wrapper.vm.getResourceSize('4321')).toEqual('4 KB') + expect(wrapper.vm.getResourceSize('4321')).toEqual('4 kB') }) it('should show single round value for size larger than a MB', () => { - expect(wrapper.vm.getResourceSize('4321000')).toEqual('4.1 MB') + expect(wrapper.vm.getResourceSize('4321000')).toEqual('4.3 MB') }) }) }) diff --git a/packages/web-runtime/package.json b/packages/web-runtime/package.json index c6a69ebaf25..1112a08933f 100644 --- a/packages/web-runtime/package.json +++ b/packages/web-runtime/package.json @@ -6,7 +6,7 @@ "devDependencies": { "@vue/test-utils": "^1.1.2", "easygettext": "^2.16.1", - "filesize": "^6.4.0", + "filesize": "^8.0.0", "focus-trap": "^6.4.0", "focus-trap-vue": "^1.1.1", "fuse.js": "^6.4.6", diff --git a/packages/web-runtime/tests/unit/components/SidebarQuota.spec.js b/packages/web-runtime/tests/unit/components/SidebarQuota.spec.js index 666aa264570..f1d43f30075 100644 --- a/packages/web-runtime/tests/unit/components/SidebarQuota.spec.js +++ b/packages/web-runtime/tests/unit/components/SidebarQuota.spec.js @@ -45,6 +45,6 @@ describe('Sidebar Quota component', () => { translate: false } }) - expect(wrapper.html()).toContain('1.2 GB of 2 GB') + expect(wrapper.html()).toContain('1.3 GB of 2 GB') }) }) diff --git a/packages/web-runtime/tests/unit/helpers/resource.spec.js b/packages/web-runtime/tests/unit/helpers/resource.spec.js index 955d080dde9..3c71e3d4ad7 100644 --- a/packages/web-runtime/tests/unit/helpers/resource.spec.js +++ b/packages/web-runtime/tests/unit/helpers/resource.spec.js @@ -4,9 +4,9 @@ describe('getResourceSize', () => { it.each` size | result ${0} | ${'0 B'} - ${1023} | ${'1023 B'} - ${1024} | ${'1 KB'} - ${1287654323} | ${'1.2 GB'} + ${1023} | ${'1 kB'} + ${1024} | ${'1 kB'} + ${1287654323} | ${'1.3 GB'} ${-1} | ${'0 B'} ${'string'} | ${'?'} `('converts the size integer to human readable format', ({ size, result }) => { diff --git a/yarn.lock b/yarn.lock index 44ec485c3a2..efad515ca81 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4921,10 +4921,10 @@ filelist@^1.0.1: dependencies: minimatch "^3.0.4" -filesize@^6.4.0: - version "6.4.0" - resolved "https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz" - integrity sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ== +filesize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.0.tgz#532db71cb8a04df7d403da054a28de1b648534e0" + integrity sha512-sb690gQx3y/5KZIztgWAKM/r4Hf1V3R8mkAE0OhasMw2FDYduFTYCji8YN9BVpsGoMxrHPFvia1BMxwfLHX+fQ== fill-range@^4.0.0: version "4.0.0" From 6528b6ea008a3ec3f3e81e72940f049fa8d58488 Mon Sep 17 00:00:00 2001 From: pwengerter Date: Thu, 26 Aug 2021 14:16:37 +0100 Subject: [PATCH 2/2] Resolve unit test warnings, improve pagination unit test wording --- .../components/AppBar/ViewOptions.spec.js | 22 ++++++++++++++++--- .../components/FilesList/Pagination.spec.js | 6 ++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/web-app-files/tests/unit/components/AppBar/ViewOptions.spec.js b/packages/web-app-files/tests/unit/components/AppBar/ViewOptions.spec.js index e62eb44b698..a1d82e5beed 100644 --- a/packages/web-app-files/tests/unit/components/AppBar/ViewOptions.spec.js +++ b/packages/web-app-files/tests/unit/components/AppBar/ViewOptions.spec.js @@ -9,6 +9,8 @@ import OcSwitch from '@/tests/unit/stubs/OcSwitch' import ViewOptions from '@files/src/components/AppBar/ViewOptions.vue' +const OcTooltip = jest.fn() + describe('ViewOptions', () => { let localVue, router, mutations, store @@ -34,7 +36,13 @@ describe('ViewOptions', () => { }) it('updates the files page limit when using page size component', () => { - const wrapper = shallowMount(ViewOptions, { store, router, localVue, stubs }) + const wrapper = shallowMount(ViewOptions, { + store, + router, + localVue, + stubs, + directives: { OcTooltip } + }) const select = wrapper.find('[data-testid="files-pagination-size"]') expect(select.exists()).toBe(true) @@ -49,7 +57,13 @@ describe('ViewOptions', () => { store, router, localVue, - stubs: { ...stubs, 'oc-page-size': OcPageSize(localVue) } + stubs: { + ...stubs, + 'oc-page-size': OcPageSize(localVue) + }, + directives: { + OcTooltip + } }) wrapper.vm.$router.replace({ query: { 'items-limit': 500 } }).catch(() => {}) @@ -65,7 +79,9 @@ describe('ViewOptions', () => { ...stubs, 'oc-switch': OcSwitch(localVue) }, - directives: { OcTooltip: jest.fn() }, + directives: { + OcTooltip + }, router }) diff --git a/packages/web-app-files/tests/unit/components/FilesList/Pagination.spec.js b/packages/web-app-files/tests/unit/components/FilesList/Pagination.spec.js index a3b253ac38a..7f79404b8bb 100644 --- a/packages/web-app-files/tests/unit/components/FilesList/Pagination.spec.js +++ b/packages/web-app-files/tests/unit/components/FilesList/Pagination.spec.js @@ -19,8 +19,8 @@ const selectors = { } describe('Pagination', () => { - describe('pages', () => { - describe('when value is less than or equals one', () => { + describe('when amount of pages is', () => { + describe('less than or equals one', () => { it.each([-1, 0, 1])('should not show wrapper', pages => { const store = createStore(0, pages) const wrapper = getWrapper(store) @@ -29,7 +29,7 @@ describe('Pagination', () => { }) }) - describe('when value is greater than one', () => { + describe('greater than one', () => { const wrapper = getWrapper(createStore(1, 2)) it('should show wrapper', () => {