diff --git a/docker-compose.yml b/docker-compose.yml index 817abf5..32eeb19 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: crumbs: - image: ghcr.io/bretzel-app/crumbs:0.35.1 + image: ghcr.io/bretzel-app/crumbs:0.35.2 container_name: crumbs ports: - "3000:3000" diff --git a/package.json b/package.json index 8a9c291..eaccf60 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "crumbs", "private": true, - "version": "0.35.1", + "version": "0.35.2", "type": "module", "packageManager": "pnpm@9.15.9", "license": "MIT", diff --git a/src/lib/components/NoteEditor.svelte b/src/lib/components/NoteEditor.svelte index 404e79e..829ebfa 100644 --- a/src/lib/components/NoteEditor.svelte +++ b/src/lib/components/NoteEditor.svelte @@ -60,7 +60,7 @@ let showColorPicker = $state(false); let showImageUpload = $state(false); // svelte-ignore state_referenced_locally - let rawMarkdownMode = $state(note ? (note.checklistMode ?? false) : prefs.defaultNoteMode === 'markdown'); + let rawMarkdownMode = $state(prefs.defaultNoteMode === 'markdown'); let textareaEl: HTMLTextAreaElement | undefined = $state(); let tiptapEditor: Editor | undefined = $state(); let editorTick = $state(0); diff --git a/tests/e2e/settings.spec.ts b/tests/e2e/settings.spec.ts index 220b8ae..e5df992 100644 --- a/tests/e2e/settings.spec.ts +++ b/tests/e2e/settings.spec.ts @@ -1,4 +1,4 @@ -import { test, expect } from './helpers/fixtures.js'; +import { test, expect, noteCard } from './helpers/fixtures.js'; import type { Page } from '@playwright/test'; const DEFAULT_PREFS = { @@ -81,6 +81,30 @@ test.describe('Settings — Preferences', () => { await expect(page.getByTestId('note-content-input')).toBeVisible(); }); + test('Scenario: Default note mode applies when reopening an existing note', async ({ + authenticatedPage: page + }) => { + await resetPreferences(page); + + // Given a note titled "Existing Markdown Note" exists + const title = `Existing Markdown Note ${Date.now()}`; + await page.request.post('/api/notes', { data: { title, content: 'Some **bold** text' } }); + + // And the user's default note mode is Markdown + await gotoWithStablePrefs(page, '/settings/preferences'); + const putResponse = page.waitForResponse((res) => res.url().includes('/api/preferences') && res.request().method() === 'PUT'); + await page.getByTestId('pref-mode-markdown').click(); + await putResponse; + + // When the user opens the note + await gotoWithStablePrefs(page, '/'); + await noteCard(page, title).click(); + + // Then the note editor opens in markdown mode showing the raw source + await expect(page.getByTestId('note-content-input')).toBeVisible(); + await expect(page.getByTestId('note-content-input')).toHaveValue('Some **bold** text'); + }); + test('Scenario: Footer toggle hides and shows footer', async ({ authenticatedPage: page }) => { diff --git a/website/index.html b/website/index.html index 3ca8ff4..ff1bedb 100644 --- a/website/index.html +++ b/website/index.html @@ -292,7 +292,7 @@