MindMap/mind-elixir-core-master/tests/interaction.spec.ts

104 lines
3.1 KiB
TypeScript
Raw Normal View History

import { test, expect } from './mind-elixir-test'
const id = 'root-id'
const topic = 'root-topic'
const childTopic = 'child-topic'
const data = {
nodeData: {
topic,
id,
children: [
{
id: 'middle',
topic: 'middle',
children: [
{
id: 'child',
topic: childTopic,
},
],
},
],
},
}
test.beforeEach(async ({ me }) => {
await me.init(data)
})
test('Edit Node', async ({ page, me }) => {
await me.dblclick(topic)
await expect(page.locator('#input-box')).toBeVisible()
await page.keyboard.insertText('update node')
await page.keyboard.press('Enter')
await expect(page.locator('#input-box')).toBeHidden()
await expect(page.getByText('update node')).toBeVisible()
await me.toHaveScreenshot()
})
test('Clear and reset', async ({ page, me }) => {
await me.dblclick(topic)
await expect(page.locator('#input-box')).toBeVisible()
await page.keyboard.press('Backspace')
await page.keyboard.press('Enter')
await expect(page.locator('#input-box')).toBeHidden()
await expect(page.getByText(topic)).toBeVisible()
await me.toHaveScreenshot()
})
test('Remove Node', async ({ page, me }) => {
await me.click(childTopic)
await page.keyboard.press('Delete')
await expect(page.getByText(childTopic)).toBeHidden()
await me.toHaveScreenshot()
})
test('Add Sibling', async ({ page, me }) => {
await me.click(childTopic)
await page.keyboard.press('Enter')
await page.keyboard.press('Enter')
await expect(page.locator('#input-box')).toBeHidden()
await expect(page.getByText('New Node')).toBeVisible()
await me.toHaveScreenshot()
})
test('Add Before', async ({ page, me }) => {
await me.click(childTopic)
await page.keyboard.press('Shift+Enter')
await page.keyboard.press('Enter')
await expect(page.locator('#input-box')).toBeHidden()
await expect(page.getByText('New Node')).toBeVisible()
await me.toHaveScreenshot()
})
test('Add Parent', async ({ page, me }) => {
await me.click(childTopic)
await page.keyboard.press('Control+Enter')
await page.keyboard.insertText('new node')
await page.keyboard.press('Enter')
await expect(page.locator('#input-box')).toBeHidden()
await expect(page.getByText('new node')).toBeVisible()
await me.toHaveScreenshot()
})
test('Add Child', async ({ page, me }) => {
await me.click(childTopic)
await page.keyboard.press('Tab')
await page.keyboard.insertText('new node')
await page.keyboard.press('Enter')
await expect(page.locator('#input-box')).toBeHidden()
await expect(page.getByText('new node')).toBeVisible()
await me.toHaveScreenshot()
})
test('Copy and Paste', async ({ page, me }) => {
await me.click('middle')
await page.keyboard.press('Control+c')
await me.click('child-topic')
await page.keyboard.press('Control+v')
// I guess Playwright will auto-scroll before taking screenshots
// After changing the scrolling solution to transform, we can't get complete me-nodes screenshot through scrolling
// This is indeed a very quirky "feature"
await me.toHaveScreenshot(page.locator('.map-container'))
})