Files
tolaria/tests/smoke/create-note-in-folder.spec.ts
2026-05-26 11:56:28 +02:00

45 lines
1.6 KiB
TypeScript

import fs from 'fs'
import path from 'path'
import { test, expect } from '@playwright/test'
import {
createFixtureVaultCopy,
openFixtureVaultDesktopHarness,
removeFixtureVaultCopy,
} from '../helpers/fixtureVault'
import { executeCommand, openCommandPalette } from './helpers'
let tempVaultDir: string
function untitledNotesInProject(): string[] {
const projectDir = path.join(tempVaultDir, 'project')
return fs.readdirSync(projectDir).filter((name) => /^untitled-note-\d+(?:-\d+)?\.md$/.test(name))
}
test.beforeEach(async ({ page }) => {
tempVaultDir = createFixtureVaultCopy()
await openFixtureVaultDesktopHarness(page, tempVaultDir, {
folders: [{ children: [], name: 'project', path: 'project' }],
})
await expect(page.getByTestId('folder-row:project')).toBeVisible({ timeout: 5_000 })
})
test.afterEach(() => {
removeFixtureVaultCopy(tempVaultDir)
})
test('creates new notes inside the targeted folder @smoke', async ({ page }) => {
await page.getByTestId('folder-row:project').click({ button: 'right' })
await page.getByTestId('create-node-in-folder-menu-item').click()
await expect.poll(untitledNotesInProject, { timeout: 5_000 }).toHaveLength(1)
await page.getByTestId('folder-row:project').click()
await openCommandPalette(page)
await executeCommand(page, 'Create New Note in Current Folder')
await expect.poll(untitledNotesInProject, { timeout: 5_000 }).toHaveLength(2)
for (const filename of untitledNotesInProject()) {
expect(fs.readFileSync(path.join(tempVaultDir, 'project', filename), 'utf8')).toContain('type: Note')
}
})