Add more test id to elements based on test case e2e
This commit is contained in:
@@ -23,11 +23,14 @@ export default class Button extends React.Component {
|
||||
) {
|
||||
className += ' small';
|
||||
}
|
||||
|
||||
const testId = this.props.testClassId ? `testid:${this.props.testClassId}` : '';
|
||||
|
||||
return (
|
||||
<button
|
||||
ref={this.props.refButton}
|
||||
{...this.props}
|
||||
className={'button no-tw ' + className + ` testid:${this.props.testClassId}`}
|
||||
className={'button no-tw ' + className + ' ' + testId}
|
||||
onClick={evt => {
|
||||
evt.target.blur();
|
||||
this.props.onClick && this.props.onClick(evt);
|
||||
|
||||
+5
-1
@@ -58,6 +58,7 @@ export default ({ pendingFileState, pendingFile }: PropsType) => {
|
||||
}}
|
||||
>
|
||||
<Row
|
||||
className="testid:pending-files-row"
|
||||
justify="space-between"
|
||||
align="middle"
|
||||
wrap={false}
|
||||
@@ -75,6 +76,7 @@ export default ({ pendingFileState, pendingFile }: PropsType) => {
|
||||
maxWidth: isPendingFileStatusPause(pendingFile.status) ? 130 : 160,
|
||||
verticalAlign: 'middle',
|
||||
}}
|
||||
className="testid:pending-file-name"
|
||||
>
|
||||
{capitalize(pendingFile?.originalFile.name)}
|
||||
</Text>
|
||||
@@ -156,6 +158,7 @@ export default ({ pendingFileState, pendingFile }: PropsType) => {
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
}}
|
||||
className="testid:pending-file-button-status"
|
||||
/>
|
||||
</Tooltip>
|
||||
) : (
|
||||
@@ -191,6 +194,7 @@ export default ({ pendingFileState, pendingFile }: PropsType) => {
|
||||
icon={<Trash2 size={16} color={'var(--black)'} />}
|
||||
onClick={() => cancelUpload(pendingFileState.id)}
|
||||
style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}
|
||||
className="testid:pending-file-button-cancel"
|
||||
/>
|
||||
</Tooltip>
|
||||
) : (
|
||||
@@ -198,7 +202,7 @@ export default ({ pendingFileState, pendingFile }: PropsType) => {
|
||||
)}
|
||||
</Col>
|
||||
</Row>
|
||||
<div className="file-progress-bar-container">
|
||||
<div className="file-progress-bar-container testid:pending-file-progress-bar">
|
||||
<Progress
|
||||
type="line"
|
||||
className="file-progress-bar"
|
||||
|
||||
@@ -63,6 +63,8 @@ export default class Input extends Component {
|
||||
);
|
||||
}
|
||||
|
||||
const testId = this.props.testClassId ? `testid:${this.props.testClassId}` : '';
|
||||
|
||||
return (
|
||||
<input
|
||||
ref={node => {
|
||||
@@ -76,7 +78,7 @@ export default class Input extends Component {
|
||||
}
|
||||
this.onKeyDown(evt);
|
||||
}}
|
||||
className={'input ' + (className || '') + ` testid:${this.props.testClassId}`}
|
||||
className={'input ' + (className || '') + ' ' + testId}
|
||||
onBlur={this.props.onBlur}
|
||||
onChange={this.props.onChange}
|
||||
/>
|
||||
|
||||
@@ -58,7 +58,7 @@ export default class MenuComponent extends React.Component {
|
||||
ref={node => (this.original_menu = node)}
|
||||
className={
|
||||
'menu-list ' + (this.props.withFrame ? 'as_frame text-black bg-white dark:bg-zinc-900 dark:text-white rounded-lg ' : '') + this.props.animationClass + ' ' +
|
||||
`testid:${this.props.testClassId}`
|
||||
`${this.props.testClassId ? `testid:${this.props.testClassId}` : ''}`
|
||||
}
|
||||
>
|
||||
{(this.props.menu || [])
|
||||
@@ -77,7 +77,7 @@ export default class MenuComponent extends React.Component {
|
||||
<div
|
||||
key={'menu_' + index}
|
||||
ref={node => (item.ref = node)}
|
||||
className={'menu-text ' + item.className}
|
||||
className={'menu-text ' + item.className + ' testid:menu-item'}
|
||||
onMouseEnter={evt => {
|
||||
this.hoverMenu(item.ref, item);
|
||||
}}
|
||||
@@ -87,14 +87,14 @@ export default class MenuComponent extends React.Component {
|
||||
{typeof item.icon === 'string' ? <Icon type={item.icon} /> : item.icon}
|
||||
</div>
|
||||
)}
|
||||
<div className="text">{item.text}</div>
|
||||
<div className={`text testid:menu-item-${item.id}`}>{item.text}</div>
|
||||
</div>
|
||||
);
|
||||
} else if (item.type == 'react-element') {
|
||||
return (
|
||||
<div
|
||||
key={'menu_' + index}
|
||||
className={'menu-custom ' + item.className}
|
||||
className={'menu-custom ' + item.className + ' testid:menu-item'}
|
||||
onClick={item.onClick}
|
||||
>
|
||||
{typeof item.reactElement == 'function'
|
||||
@@ -115,7 +115,8 @@ export default class MenuComponent extends React.Component {
|
||||
this.last_hovered == item
|
||||
? 'hovered '
|
||||
: '') +
|
||||
(item.selected ? 'selected ' : '')
|
||||
(item.selected ? 'selected ' : '') +
|
||||
' testid:menu-item'
|
||||
}
|
||||
onMouseEnter={evt => {
|
||||
this.hoverMenu(item.ref, item);
|
||||
@@ -134,7 +135,7 @@ export default class MenuComponent extends React.Component {
|
||||
<Emojione type={item.emoji} />
|
||||
</div>
|
||||
)}
|
||||
<div className="text">{item.text}</div>
|
||||
<div className={`text testid:menu-item-${item.id}`}>{item.text}</div>
|
||||
<div className="more">
|
||||
{item.rightIcon && <Icon type={item.rightIcon} />}
|
||||
{item.submenu && !item.submenu_replace && <Icon type="angle-right" />}
|
||||
|
||||
@@ -51,7 +51,7 @@ export default (props: { driveItem: DriveItem & { user?: UserType }}) => {
|
||||
textToHighlight={name}
|
||||
/>
|
||||
</Text.Base>
|
||||
<Text.Info className="block">
|
||||
<Text.Info className="block testid:drive-item-file">
|
||||
{extension?.toLocaleUpperCase()} • {formatDate(parseInt(file?.last_modified))} •{' '}
|
||||
{formatSize(file?.size)}
|
||||
</Text.Info>
|
||||
@@ -69,6 +69,7 @@ export default (props: { driveItem: DriveItem & { user?: UserType }}) => {
|
||||
theme="outline"
|
||||
className="w-9 !p-0 flex items-center justify-center ml-2 rounded-full border-none"
|
||||
onClick={() => onDriveItemDownloadClick(file)}
|
||||
testClassId="drive-item-button-download"
|
||||
>
|
||||
<DownloadIcon className="text-blue-500 w-6 h-6" />
|
||||
</Button>
|
||||
|
||||
@@ -4,7 +4,7 @@ import { UserType } from '@features/users/types/user';
|
||||
|
||||
export default ({ user }: { user?: UserType }) => {
|
||||
return (
|
||||
<div className="flex overflow-hidden whitespace-nowrap text-ellipsis">
|
||||
<div className="flex overflow-hidden whitespace-nowrap text-ellipsis testid:result-context">
|
||||
{!!user && <>{UsersService.getFullName(user)}</>}
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -38,6 +38,7 @@ export const SearchInput = () => {
|
||||
value={input.query}
|
||||
className={className}
|
||||
placeholder={Languages.t('scenes.app.mainview.quick_search_placeholder')}
|
||||
testClassId="search-input-quick-search"
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
|
||||
@@ -8,7 +8,7 @@ export default () => {
|
||||
const { open, setOpen } = useSearchModal();
|
||||
|
||||
return (
|
||||
<Modal open={open} onClose={() => setOpen(false)} className="sm:w-[80vw] sm:max-w-4xl">
|
||||
<Modal open={open} onClose={() => setOpen(false)} className="sm:w-[80vw] sm:max-w-4xl testid:search-popup">
|
||||
<SearchBox/>
|
||||
</Modal>
|
||||
);
|
||||
|
||||
@@ -16,7 +16,7 @@ export default () => {
|
||||
return (
|
||||
<div>
|
||||
{!!isRecent && (
|
||||
<Text.Subtitle className="block">
|
||||
<Text.Subtitle className="block testid:drive-recent-files">
|
||||
{Languages.t('components.searchpopup.recent_files')}
|
||||
</Text.Subtitle>
|
||||
)}
|
||||
|
||||
@@ -191,7 +191,7 @@ export default class UploadZone extends React.Component<PropsType, StateType> {
|
||||
<div
|
||||
ref={node => node && (this.node = node)}
|
||||
style={this.props.style}
|
||||
className={classNames('upload_drop_zone', this.props.className, `testid:${this.props.testClassId}`)}
|
||||
className={classNames('upload_drop_zone', this.props.className, this.props.testClassId ? `testid:${this.props.testClassId}` : '')}
|
||||
onClick={() => {
|
||||
if (!this.props.disableClick) {
|
||||
this.open();
|
||||
|
||||
Reference in New Issue
Block a user