heynote/tests/note-format.spec.js

49 lines
1.3 KiB
JavaScript
Raw Normal View History

import { test, expect } from "@playwright/test";
import { HeynotePage } from "./test-utils.js";
import { NoteFormat } from "../src/editor/note-format.js";
let heynotePage
test.beforeEach(async ({ page }) => {
heynotePage = new HeynotePage(page)
await heynotePage.goto()
});
test("test restore cursor position", async ({ page, browserName }) => {
heynotePage.setContent(`{"formatVersion":"1.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 }) => {
heynotePage.setContent(`{"formatVersion":"1.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)
})