feat(notes): første linje er titlen, resten er brødtekst
Release / Build and publish image (push) Failing after 9m57s
Release / Build and publish image (push) Failing after 9m57s
En ny note åbner på sin titel, og linjen efter er brødtekst — uden at man vælger noget. Det er det, Apple Notes gør, og det er også hvad listen har brug for: første linje bliver notens navn, så en note, der begynder i brødtekst, hedder sin egen første sætning. To ting undervejs. Reserven for en tom note blev aldrig brugt, fordi en tom tekst ikke gengives som ingenting men som ét tomt afsnit — den prøves nu på teksten og ikke på resultatet. Og Chromium svarer på retur med et bart <div>, som læses som brødtekst men ikke er formateret som det: afstanden mellem afsnit forsvandt stille i det øjeblik, man trykkede retur frem for at vælge Brødtekst i menuen. Listen viste desuden den rå Markdown i forhåndsvisningen — "# Møde med Anders" og "**fed**" — hvilket er præcis det, editoren blev bygget for at holde op med at vise. Den viser nu sætningen frem for notationen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
f557d319ca
commit
3223989a9d
@@ -2089,3 +2089,43 @@ test('udseendet kan skiftes uafhængigt af temaet, og overlever en genindlæsnin
|
||||
|
||||
expect(trouble).toEqual([]);
|
||||
});
|
||||
|
||||
test('en ny note begynder som titel, og linjen efter er brødtekst', async ({ page }) => {
|
||||
const trouble = watchForTrouble(page);
|
||||
await page.goto('/noter');
|
||||
|
||||
await page.getByRole('button', { name: 'Ny note' }).click();
|
||||
const ed = page.getByRole('textbox', { name: 'Notens tekst' });
|
||||
await ed.click();
|
||||
|
||||
// Straight in, without choosing a style. The first line is the title because
|
||||
// that is what the list calls the note by.
|
||||
await page.keyboard.type('Titelprøven');
|
||||
await expect(ed.locator('h1')).toHaveText('Titelprøven');
|
||||
|
||||
await page.keyboard.press('Enter');
|
||||
await page.keyboard.type('Han vil gerne have kaffe hver uge.');
|
||||
|
||||
// And the line after is body, not a second title. A note where every line is a
|
||||
// heading is a note with no heading at all.
|
||||
await expect(ed.locator('h1')).toHaveCount(1);
|
||||
await expect(ed.locator('p').filter({ hasText: 'kaffe' })).toBeVisible();
|
||||
|
||||
// A third line stays body too.
|
||||
await page.keyboard.press('Enter');
|
||||
await page.keyboard.type('Og han ringer selv.');
|
||||
await expect(ed.locator('h1')).toHaveCount(1);
|
||||
|
||||
// It survives the trip through Markdown: the title is a heading again on the
|
||||
// way back, and the body is not.
|
||||
await ed.blur();
|
||||
await page.reload();
|
||||
await page.getByRole('button', { name: /Titelprøven/ }).click();
|
||||
|
||||
const back = page.getByRole('textbox', { name: 'Notens tekst' });
|
||||
await expect(back.locator('h1')).toHaveText('Titelprøven');
|
||||
await expect(back.locator('h1')).toHaveCount(1);
|
||||
await expect(back).toContainText('ringer selv');
|
||||
|
||||
expect(trouble).toEqual([]);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user