heynote/tests/note-format.spec.js
Jonatan Heyman 7be0a304d0 WIP: Multiple notes support
Add support for migrating old buffer file to new library.

Add support for changing location for the notes library.

Replace theme toggle in status bar with a dropdown in Appearance settings.

Improve New Note and Update Note dialogs.

Implement UI for confirming note delete (the actualal deltion is still to be implemented).
2024-12-09 12:37:05 +01:00

62 lines
1.9 KiB
JavaScript

import { test, expect } from "@playwright/test";
import { HeynotePage } from "./test-utils.js";
import { NoteFormat } from "../src/common/note-format.js";
let heynotePage
test.beforeEach(async ({ page }) => {
heynotePage = new HeynotePage(page)
await heynotePage.goto()
});
test("test restore cursor position", async ({ page, browserName }) => {
await heynotePage.setContent(`{"formatVersion":"1.0.0", "cursors":{"ranges":[{"anchor":13,"head":13}],"main":0}}
∞∞∞text
Textblock`)
await page.locator("body").press((heynotePage.isMac ? "Meta" : "Control") + "+Alt+Enter")
expect(await heynotePage.getContent()).toBe(`
∞∞∞text
Text
∞∞∞text
block`)
})
test("test save cursor positions", async ({ page, browserName }) => {
await heynotePage.setContent(`{"formatVersion":"1.0.0", "cursors":{"ranges":[{"anchor":9,"head":9}],"main":0}}
∞∞∞text
this
is
a
text
block`)
await page.locator("body").press((heynotePage.isMac ? "Meta" : "Control") + "+Alt+ArrowDown")
await page.locator("body").press((heynotePage.isMac ? "Meta" : "Control") + "+Alt+ArrowDown")
await page.locator("body").press("Delete")
expect(await heynotePage.getContent()).toBe(`
∞∞∞text
his
s
text
block`)
const bufferData = await heynotePage.getBufferData()
const note = NoteFormat.load(bufferData)
expect(note.cursors.ranges.length).toBe(3)
})
test("unknown note metadata keys is kept", async ({ page, browserName }) => {
await heynotePage.setContent(`{"yoda":[123], "formatVersion":"1.0.0", "cursors":{"ranges":[{"anchor":15,"head":15}],"main":0}}
∞∞∞text
block 1`)
await page.locator("body").pressSequentially("hello")
expect(await heynotePage.getContent()).toBe(`
∞∞∞text
block hello1`)
const bufferData = await heynotePage.getBufferData()
const note = NoteFormat.load(bufferData)
expect(note.metadata.yoda).toStrictEqual([123])
})