tweak: use div instead of textarea to display text attachments
This commit is contained in:
parent
c034a4e9de
commit
3520c7a86b
|
|
@ -49,5 +49,7 @@
|
||||||
.attachment-item .attachment-item__text {
|
.attachment-item .attachment-item__text {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
border: 1px solid var(--vscode-panel-border);
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
|
padding: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,9 @@ const TextAttachment: React.FunctionComponent<TextAttachmentProps> = ({ attachme
|
||||||
};
|
};
|
||||||
}, [attachment]);
|
}, [attachment]);
|
||||||
|
|
||||||
return <textarea aria-label={attachment.name} className="attachment-item__text" disabled value={text!}/>;
|
return <div aria-label={attachment.name} className="attachment-item__text">
|
||||||
|
{text!}
|
||||||
|
</div>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const AttachmentsTab: React.FunctionComponent<{
|
export const AttachmentsTab: React.FunctionComponent<{
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ test('should contain text attachment', async ({ runUITest }) => {
|
||||||
test('attach test', async () => {
|
test('attach test', async () => {
|
||||||
await test.info().attach('note', { path: __filename });
|
await test.info().attach('note', { path: __filename });
|
||||||
await test.info().attach('🎭', { body: 'hi tester!', contentType: 'text/plain' });
|
await test.info().attach('🎭', { body: 'hi tester!', contentType: 'text/plain' });
|
||||||
|
await test.info().attach('escaped', { body: '<div>\\nFoo\\nBar\\n</div>', contentType: 'text/plain' });
|
||||||
});
|
});
|
||||||
`,
|
`,
|
||||||
});
|
});
|
||||||
|
|
@ -32,13 +33,15 @@ test('should contain text attachment', async ({ runUITest }) => {
|
||||||
await page.getByTitle('Run all').click();
|
await page.getByTitle('Run all').click();
|
||||||
await expect(page.getByTestId('status-line')).toHaveText('1/1 passed (100%)');
|
await expect(page.getByTestId('status-line')).toHaveText('1/1 passed (100%)');
|
||||||
await page.getByText('Attachments').click();
|
await page.getByText('Attachments').click();
|
||||||
for (const { name, content } of [
|
for (const { name, content, displayedAsText } of [
|
||||||
{ name: 'note', content: 'attach test' },
|
{ name: 'note', content: 'attach test', displayedAsText: false },
|
||||||
{ name: '🎭', content: 'hi tester!' }
|
{ name: '🎭', content: 'hi tester!', displayedAsText: true },
|
||||||
|
{ name: 'escaped', content: '<div>\nFoo\nBar\n</div>', displayedAsText: true },
|
||||||
]) {
|
]) {
|
||||||
await page.getByText(`attach "${name}"`, { exact: true }).click();
|
await page.getByText(`attach "${name}"`, { exact: true }).click();
|
||||||
const downloadPromise = page.waitForEvent('download');
|
const downloadPromise = page.waitForEvent('download');
|
||||||
await expect(page.getByLabel('🎭')).toHaveText('hi tester!');
|
if (displayedAsText)
|
||||||
|
await expect(page.getByLabel(name)).toHaveText(content);
|
||||||
await page.getByRole('link', { name: name }).click();
|
await page.getByRole('link', { name: name }).click();
|
||||||
const download = await downloadPromise;
|
const download = await downloadPromise;
|
||||||
expect(download.suggestedFilename()).toBe(name);
|
expect(download.suggestedFilename()).toBe(name);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue