45 lines
1.6 KiB
TypeScript
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')
|
|
}
|
|
})
|