/** * Package component */ import React from 'react'; import { mount } from 'enzyme'; import Package from '../../../../src/webui/components/Package/index'; import { BrowserRouter } from 'react-router-dom'; import Chip from '@material-ui/core/Chip'; /** * Generates one month back date from current time * @return {object} date object */ const dateOneMonthAgo = () => { const date = new Date(); date.setMonth(date.getMonth() - 1); return date; } describe(' component', () => { it('should load the component', () => { const props = { name: 'verdaccio', version: '1.0.0', time: dateOneMonthAgo(), license: 'MIT', description: 'Private NPM repository', author: 'Sam' }; const wrapper = mount( ); const version = wrapper.findWhere(node => node.is(Chip) && node.prop('label') === 'v1.0.0'); // integration expectations expect(wrapper.find('a').prop('href')).toEqual('detail/verdaccio'); expect(wrapper.find('h1').text()).toEqual('verdaccio v1.0.0'); expect(version.exists()).toBe(true); expect( wrapper.find('div').filterWhere(n => n.prop('role') === 'author') .text() ).toEqual('By: Sam'); expect(wrapper.find('p').text()).toEqual('Private NPM repository'); expect(wrapper.find('.license').text()).toMatch(/MIT/); expect(wrapper.html()).toMatchSnapshot(); }); it('should load the component without author', () => { const props = { name: 'verdaccio', version: '1.0.0', time: dateOneMonthAgo(), license: 'MIT', description: 'Private NPM repository' }; const wrapper = mount( ); // integration expectations expect( wrapper.find('div').filterWhere(n => n.prop('role') === 'author') .text() ).toEqual(''); expect(wrapper.html()).toMatchSnapshot(); }); });