From 826435d2e41cae04847672a38619b1d7ebae1ba7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Kuty=C5=82a?= Date: Mon, 7 Jun 2021 21:41:30 +0200 Subject: [PATCH] 17305: Added unit tests MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Arvados-DCO-1.1-Signed-off-by: Daniel Kutyła --- .../data-explorer/renderers.test.tsx | 85 +++++++++++++++++++ .../data-explorer/renderers.tsx | 2 +- 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 src/views-components/data-explorer/renderers.test.tsx diff --git a/src/views-components/data-explorer/renderers.test.tsx b/src/views-components/data-explorer/renderers.test.tsx new file mode 100644 index 0000000000..5f752b6bb8 --- /dev/null +++ b/src/views-components/data-explorer/renderers.test.tsx @@ -0,0 +1,85 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + +import * as React from 'react'; +import { mount, configure } from 'enzyme'; +import { ResourceFileSize } from './renderers'; +import * as Adapter from "enzyme-adapter-react-16"; +import { Provider } from 'react-redux'; +import configureMockStore from 'redux-mock-store' +import { ResourceKind } from '../../models/resource'; + +const middlewares = []; +const mockStore = configureMockStore(middlewares); + +configure({ adapter: new Adapter() }); + +describe('renderers', () => { + let props = null; + + describe('ResourceFileSize', () => { + beforeEach(() => { + props = { + uuid: 'UUID', + }; + }); + + it('should render collection fileSizeTotal', () => { + // given + const store = mockStore({ resources: { + [props.uuid]: { + kind: ResourceKind.COLLECTION, + fileSizeTotal: 100, + } + }}); + + // when + const wrapper = mount( + + ); + + // then + expect(wrapper.text()).toContain('100 B'); + }); + + it('should render 0 B as file size', () => { + // given + const store = mockStore({ resources: {} }); + + // when + const wrapper = mount( + + ); + + // then + expect(wrapper.text()).toContain('0 B'); + }); + + it('should render empty string for non collection resource', () => { + // given + const store1 = mockStore({ resources: { + [props.uuid]: { + kind: ResourceKind.PROJECT, + } + }}); + const store2 = mockStore({ resources: { + [props.uuid]: { + kind: ResourceKind.PROJECT, + } + }}); + + // when + const wrapper1 = mount( + + ); + const wrapper2 = mount( + + ); + + // then + expect(wrapper1.text()).toContain(''); + expect(wrapper2.text()).toContain(''); + }); + }); +}); \ No newline at end of file diff --git a/src/views-components/data-explorer/renderers.tsx b/src/views-components/data-explorer/renderers.tsx index 4ec0734442..0e3eefe231 100644 --- a/src/views-components/data-explorer/renderers.tsx +++ b/src/views-components/data-explorer/renderers.tsx @@ -418,7 +418,7 @@ export const ResourceFileSize = connect( (state: RootState, props: { uuid: string }) => { const resource = getResource(props.uuid)(state.resources); - if (resource && resource.kind === ResourceKind.COLLECTION) { + if (resource && resource.kind !== ResourceKind.COLLECTION) { return { fileSize: '' }; } -- 2.30.2