test: add test case for upload image (#1250)

This commit is contained in:
Himself65
2023-03-01 23:51:15 -06:00
committed by GitHub
parent e5a6fd8f6c
commit f34a64a82a
7 changed files with 60 additions and 10 deletions

View File

@@ -63,6 +63,7 @@ export const GeneralPanel: React.FC<PanelProps> = ({
<Upload
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg"
fileChange={fileChange}
data-testid="upload-avatar"
>
<>
<div className="camera-icon">

View File

@@ -48,6 +48,7 @@ export const CreateWorkspaceModal = ({
<ContentTitle>{t('New Workspace')}</ContentTitle>
<p>{t('Workspace description')}</p>
<Input
data-testid="create-workspace-input"
onKeyDown={handleKeyDown}
placeholder={t('Set a Workspace name')}
maxLength={15}
@@ -63,6 +64,7 @@ export const CreateWorkspaceModal = ({
}}
/>
<Button
data-testid="create-workspace-button"
disabled={!workspaceName}
style={{
width: '260px',

View File

@@ -13,6 +13,7 @@ export const Upload: React.FC<UploadProps> = ({
fileChange,
accept,
children,
...props
}) => {
const { t } = useTranslation();
const input_ref = useRef<HTMLInputElement>(null);
@@ -41,6 +42,7 @@ export const Upload: React.FC<UploadProps> = ({
style={{ display: 'none' }}
onChange={_handleInputChange}
accept={accept}
{...props}
/>
</UploadStyle>
);

View File

@@ -12,16 +12,17 @@ interface AvatarProps {
}
export const Avatar: React.FC<AvatarProps> = React.memo<AvatarProps>(
function Avatar(props) {
const size = props.size || 20;
function Avatar({ size: _size, avatar_url, style, name, ...props }) {
const size = _size || 20;
const sizeStr = size + 'px';
return (
<>
{props.avatar_url ? (
{avatar_url ? (
<div
{...props}
style={{
...props.style,
...style,
width: sizeStr,
height: sizeStr,
color: '#fff',
@@ -34,7 +35,7 @@ export const Avatar: React.FC<AvatarProps> = React.memo<AvatarProps>(
<picture>
<img
style={{ width: sizeStr, height: sizeStr }}
src={props.avatar_url}
src={avatar_url}
alt=""
referrerPolicy="no-referrer"
/>
@@ -42,14 +43,15 @@ export const Avatar: React.FC<AvatarProps> = React.memo<AvatarProps>(
</div>
) : (
<div
{...props}
style={{
...props.style,
...style,
width: sizeStr,
height: sizeStr,
border: '1px solid #fff',
color: '#fff',
fontSize: Math.ceil(0.5 * size) + 'px',
background: stringToColour(props.name || 'AFFiNE'),
background: stringToColour(name || 'AFFiNE'),
borderRadius: '50%',
textAlign: 'center',
lineHeight: size + 'px',
@@ -57,7 +59,7 @@ export const Avatar: React.FC<AvatarProps> = React.memo<AvatarProps>(
verticalAlign: 'middle',
}}
>
{(props.name || 'AFFiNE').substring(0, 1)}
{(name || 'AFFiNE').substring(0, 1)}
</div>
)}
</>
@@ -82,10 +84,12 @@ export const BlockSuiteWorkspaceAvatar: React.FC<BlockSuiteWorkspaceAvatar> = ({
size = 20,
workspace,
style,
...props
}) => {
const avatarURL = useWorkspaceBlobImage(workspace.meta.avatar, workspace);
return (
<Avatar
{...props}
size={size}
name={workspace.meta.name}
avatar_url={avatarURL ?? ''}
@@ -110,5 +114,7 @@ export const WorkspaceAvatar: React.FC<WorkspaceUnitAvatarProps> = ({
/>
);
}
return <Avatar size={size} name="UNKNOWN" avatar_url="" style={style} />;
return (
<Avatar {...props} size={size} name="UNKNOWN" avatar_url="" style={style} />
);
};

View File

@@ -99,7 +99,7 @@ export const WorkspaceListModal = ({
/>
);
})}
<StyledCard onClick={onCreateWorkspace}>
<StyledCard data-testid="new-workspace" onClick={onCreateWorkspace}>
<StyleWorkspaceAdd className="add-icon">
<PlusIcon />
</StyleWorkspaceAdd>