2024-12-04 16:52:35 +01:00
|
|
|
import {expect, test} from "@playwright/test";
|
|
|
|
import {HeynotePage} from "./test-utils.js";
|
|
|
|
|
|
|
|
import { AUTO_SAVE_INTERVAL } from "../src/common/constants.js"
|
|
|
|
import { NoteFormat } from "../src/common/note-format.js"
|
|
|
|
import exp from "constants";
|
|
|
|
|
|
|
|
let heynotePage
|
|
|
|
|
|
|
|
test.beforeEach(async ({page}) => {
|
|
|
|
heynotePage = new HeynotePage(page)
|
|
|
|
await heynotePage.goto()
|
|
|
|
|
|
|
|
expect((await heynotePage.getBlocks()).length).toBe(1)
|
|
|
|
await heynotePage.setContent(`
|
|
|
|
∞∞∞text
|
|
|
|
Block A
|
|
|
|
∞∞∞text
|
|
|
|
Block B
|
|
|
|
∞∞∞text
|
|
|
|
Block C`)
|
|
|
|
await page.waitForTimeout(100);
|
|
|
|
// check that blocks are created
|
|
|
|
expect((await heynotePage.getBlocks()).length).toBe(3)
|
|
|
|
|
|
|
|
// check that visual block layers are created
|
|
|
|
await expect(page.locator("css=.heynote-blocks-layer > div")).toHaveCount(3)
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
test("default buffer saved", async ({page}) => {
|
|
|
|
// make some change and make sure content is auto saved in default scratch buffer
|
|
|
|
await page.locator("body").pressSequentially("YAY")
|
|
|
|
await page.waitForTimeout(AUTO_SAVE_INTERVAL + 50);
|
|
|
|
const bufferList = await heynotePage.getStoredBufferList()
|
|
|
|
expect(Object.keys(bufferList).length).toBe(1)
|
|
|
|
expect(bufferList["scratch.txt"]).toBeTruthy()
|
|
|
|
})
|
|
|
|
|
|
|
|
test("create new buffer from block", async ({page}) => {
|
|
|
|
await page.locator("body").press(heynotePage.agnosticKey("Mod+S"))
|
|
|
|
await page.waitForTimeout(50)
|
|
|
|
await page.locator("body").pressSequentially("My New Buffer")
|
|
|
|
await page.locator("body").press("Enter")
|
2024-12-09 13:38:14 +01:00
|
|
|
await page.waitForTimeout(150)
|
2024-12-04 16:52:35 +01:00
|
|
|
await page.locator("body").press("Enter")
|
|
|
|
await page.locator("body").pressSequentially("New buffer content")
|
|
|
|
await page.waitForTimeout(AUTO_SAVE_INTERVAL + 50);
|
|
|
|
|
|
|
|
const buffers = Object.keys(await heynotePage.getStoredBufferList())
|
|
|
|
expect(buffers).toContain("scratch.txt")
|
|
|
|
expect(buffers).toContain("my-new-buffer.txt")
|
|
|
|
|
|
|
|
const defaultBuffer = NoteFormat.load(await heynotePage.getStoredBuffer("scratch.txt"))
|
|
|
|
const newBuffer = NoteFormat.load(await heynotePage.getStoredBuffer("my-new-buffer.txt"))
|
|
|
|
|
|
|
|
expect(defaultBuffer.content).toBe(`
|
|
|
|
∞∞∞text
|
|
|
|
Block A
|
|
|
|
∞∞∞text
|
|
|
|
Block B`)
|
|
|
|
|
|
|
|
expect(newBuffer.content).toBe(`
|
|
|
|
∞∞∞text
|
|
|
|
Block C
|
|
|
|
New buffer content`)
|
|
|
|
|
|
|
|
})
|
2024-12-04 20:58:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
test("create new empty note", async ({page}) => {
|
|
|
|
await page.locator("body").press("Enter")
|
|
|
|
await page.locator("body").press("Backspace")
|
|
|
|
await page.locator("body").press(heynotePage.agnosticKey("Mod+N"))
|
|
|
|
await page.locator("body").pressSequentially("New Empty Buffer")
|
|
|
|
await page.locator("body").press("Enter")
|
|
|
|
await page.waitForTimeout(AUTO_SAVE_INTERVAL + 50);
|
|
|
|
|
|
|
|
const buffers = Object.keys(await heynotePage.getStoredBufferList())
|
|
|
|
expect(buffers).toContain("scratch.txt")
|
|
|
|
expect(buffers).toContain("new-empty-buffer.txt")
|
|
|
|
|
|
|
|
const defaultBuffer = NoteFormat.load(await heynotePage.getStoredBuffer("scratch.txt"))
|
|
|
|
const newBuffer = NoteFormat.load(await heynotePage.getStoredBuffer("new-empty-buffer.txt"))
|
|
|
|
|
|
|
|
expect(defaultBuffer.content).toBe(`
|
|
|
|
∞∞∞text
|
|
|
|
Block A
|
|
|
|
∞∞∞text
|
|
|
|
Block B
|
|
|
|
∞∞∞text
|
|
|
|
Block C`)
|
|
|
|
|
|
|
|
expect(newBuffer.content).toBe(`
|
|
|
|
∞∞∞text-a
|
|
|
|
`)
|
|
|
|
})
|