mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
test: Add snapshot tests for UserPicker and UserPickerOption (#10289)
This commit is contained in:
parent
68d43b865f
commit
76ba7d1f8c
@ -10,11 +10,10 @@ const model = {
|
|||||||
proTip: 'This is a tip',
|
proTip: 'This is a tip',
|
||||||
proTipLink: 'http://url/to/tip/destination',
|
proTipLink: 'http://url/to/tip/destination',
|
||||||
proTipLinkTitle: 'Learn more',
|
proTipLinkTitle: 'Learn more',
|
||||||
proTipTarget: '_blank'
|
proTipTarget: '_blank',
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('CollorPalette', () => {
|
describe('EmptyListCTA', () => {
|
||||||
|
|
||||||
it('renders correctly', () => {
|
it('renders correctly', () => {
|
||||||
const tree = renderer.create(<EmptyListCTA model={model} />).toJSON();
|
const tree = renderer.create(<EmptyListCTA model={model} />).toJSON();
|
||||||
expect(tree).toMatchSnapshot();
|
expect(tree).toMatchSnapshot();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
exports[`CollorPalette renders correctly 1`] = `
|
exports[`EmptyListCTA renders correctly 1`] = `
|
||||||
<div
|
<div
|
||||||
className="empty-list-cta"
|
className="empty-list-cta"
|
||||||
>
|
>
|
||||||
|
20
public/app/core/components/UserPicker/UserPicker.jest.tsx
Normal file
20
public/app/core/components/UserPicker/UserPicker.jest.tsx
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import renderer from 'react-test-renderer';
|
||||||
|
import UserPicker from './UserPicker';
|
||||||
|
|
||||||
|
const model = {
|
||||||
|
backendSrv: {
|
||||||
|
get: () => {
|
||||||
|
return new Promise((resolve, reject) => {});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
refreshList: () => {},
|
||||||
|
teamId: '1',
|
||||||
|
};
|
||||||
|
|
||||||
|
describe('UserPicker', () => {
|
||||||
|
it('renders correctly', () => {
|
||||||
|
const tree = renderer.create(<UserPicker {...model} />).toJSON();
|
||||||
|
expect(tree).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,22 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import renderer from 'react-test-renderer';
|
||||||
|
import UserPickerOption from './UserPickerOption';
|
||||||
|
|
||||||
|
const model = {
|
||||||
|
onSelect: () => {},
|
||||||
|
onFocus: () => {},
|
||||||
|
isFocused: () => {},
|
||||||
|
option: {
|
||||||
|
title: 'Model title',
|
||||||
|
avatarUrl: 'url/to/avatar',
|
||||||
|
label: 'User picker label',
|
||||||
|
},
|
||||||
|
className: 'class-for-user-picker',
|
||||||
|
};
|
||||||
|
|
||||||
|
describe('UserPickerOption', () => {
|
||||||
|
it('renders correctly', () => {
|
||||||
|
const tree = renderer.create(<UserPickerOption {...model} />).toJSON();
|
||||||
|
expect(tree).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
});
|
@ -1,4 +1,4 @@
|
|||||||
import React, { Component } from "react";
|
import React, { Component } from 'react';
|
||||||
export interface IProps {
|
export interface IProps {
|
||||||
onSelect: any;
|
onSelect: any;
|
||||||
onFocus: any;
|
onFocus: any;
|
||||||
@ -19,9 +19,11 @@ class UserPickerOption extends Component<IProps, any> {
|
|||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
this.props.onSelect(this.props.option, event);
|
this.props.onSelect(this.props.option, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleMouseEnter(event) {
|
handleMouseEnter(event) {
|
||||||
this.props.onFocus(this.props.option, event);
|
this.props.onFocus(this.props.option, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleMouseMove(event) {
|
handleMouseMove(event) {
|
||||||
if (this.props.isFocused) {
|
if (this.props.isFocused) {
|
||||||
return;
|
return;
|
||||||
@ -40,11 +42,7 @@ class UserPickerOption extends Component<IProps, any> {
|
|||||||
title={option.title}
|
title={option.title}
|
||||||
className={`user-picker-option__button btn btn-link ${className}`}
|
className={`user-picker-option__button btn btn-link ${className}`}
|
||||||
>
|
>
|
||||||
<img
|
<img src={option.avatarUrl} alt={option.label} className="user-picker-option__avatar" />
|
||||||
src={option.avatarUrl}
|
|
||||||
alt={option.label}
|
|
||||||
className="user-picker-option__avatar"
|
|
||||||
/>
|
|
||||||
{children}
|
{children}
|
||||||
</button>
|
</button>
|
||||||
);
|
);
|
||||||
|
@ -0,0 +1,98 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`UserPicker renders correctly 1`] = `
|
||||||
|
<div
|
||||||
|
className="user-picker"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="Select width-8 gf-form-input gf-form-input--form-dropdown Select--single is-clearable is-loading is-searchable"
|
||||||
|
style={undefined}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="Select-control"
|
||||||
|
onKeyDown={[Function]}
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
onTouchEnd={[Function]}
|
||||||
|
onTouchMove={[Function]}
|
||||||
|
onTouchStart={[Function]}
|
||||||
|
style={undefined}
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="Select-multi-value-wrapper"
|
||||||
|
id="react-select-2--value"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="Select-placeholder"
|
||||||
|
>
|
||||||
|
Loading...
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="Select-input"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"display": "inline-block",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
aria-activedescendant="react-select-2--value"
|
||||||
|
aria-describedby={undefined}
|
||||||
|
aria-expanded="false"
|
||||||
|
aria-haspopup="false"
|
||||||
|
aria-label={undefined}
|
||||||
|
aria-labelledby={undefined}
|
||||||
|
aria-owns=""
|
||||||
|
className={undefined}
|
||||||
|
id={undefined}
|
||||||
|
onBlur={[Function]}
|
||||||
|
onChange={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
required={false}
|
||||||
|
role="combobox"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"boxSizing": "content-box",
|
||||||
|
"width": "5px",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tabIndex={undefined}
|
||||||
|
value=""
|
||||||
|
/>
|
||||||
|
<div
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"height": 0,
|
||||||
|
"left": 0,
|
||||||
|
"overflow": "scroll",
|
||||||
|
"position": "absolute",
|
||||||
|
"top": 0,
|
||||||
|
"visibility": "hidden",
|
||||||
|
"whiteSpace": "pre",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
aria-hidden="true"
|
||||||
|
className="Select-loading-zone"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="Select-loading"
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
className="Select-arrow-zone"
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="Select-arrow"
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
@ -0,0 +1,17 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`UserPickerOption renders correctly 1`] = `
|
||||||
|
<button
|
||||||
|
className="user-picker-option__button btn btn-link class-for-user-picker"
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
onMouseEnter={[Function]}
|
||||||
|
onMouseMove={[Function]}
|
||||||
|
title="Model title"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt="User picker label"
|
||||||
|
className="user-picker-option__avatar"
|
||||||
|
src="url/to/avatar"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
`;
|
Loading…
Reference in New Issue
Block a user