docbrown/app/javascript/sidebar-widget/__tests__/sidebarUser.test.jsx
ludwiczakpawel 39295c0bea
Layout updates (#8107)
* flare tag line height

* .

* init

* widgets

* widgets lists

* new tabs on home

* instantclick

* .

* rethinking css

* .

* .

* empty space

* campaign widget

* .

* merge

* .

* update layout

* fix sidebars on home page

* .

* fix onboarding x

* spec

* test

* test

* better handling ads

* .

* spec

* card styling

* .

* i dont know what have i broken
2020-06-04 16:12:17 +02:00

50 lines
1.1 KiB
JavaScript

import { h } from 'preact';
import { shallow } from 'preact-render-spy';
import render from 'preact-render-to-json';
import SidebarUser from '../sidebarUser';
const user = {
id: 1234,
};
const followUser = jest.fn();
const renderedSideBar = props =>
shallow(
<SidebarUser
key={user.id}
user={user}
followUser={followUser}
index={0}
{...props}
/>,
);
describe('<SidebarUser />', () => {
it('renders properly', () => {
const tree = render(
<SidebarUser
key={user.id}
user={user}
followUser={followUser}
index={0}
/>,
);
expect(tree).toMatchSnapshot();
});
it('triggers the onClick', () => {
renderedSideBar()
.find('.widget-list-item__follow-button')
.simulate('click');
expect(followUser).toHaveBeenCalled();
});
it('shows if the user is followed or not', () => {
expect(
renderedSideBar({ user: { following: true } }).contains('Following'),
).toBe(true);
expect(
renderedSideBar({ user: { following: false } }).contains('Follow'),
).toBe(true);
});
});