// Copyright (C) The Arvados Authors. All rights reserved.
//
// SPDX-License-Identifier: AGPL-3.0
import React from 'react';
import { mount, configure } from 'enzyme';
import { ResourceFileSize } from './renderers';
import 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('');
});
});
});