MindMap/mind-elixir-core-master/tests/multiple-node.spec.ts

95 lines
2.3 KiB
TypeScript

import type { Page } from '@playwright/test'
import { test, expect } from './mind-elixir-test'
const data = {
nodeData: {
topic: 'root',
id: 'root',
children: [
{
id: 'middle1',
topic: 'middle1',
children: [
{
id: 'child1',
topic: 'child1',
},
{
id: 'child2',
topic: 'child2',
},
],
},
{
id: 'middle2',
topic: 'middle2',
children: [
{
id: 'child3',
topic: 'child3',
},
{
id: 'child4',
topic: 'child4',
},
],
},
],
},
}
test.beforeEach(async ({ me }) => {
await me.init(data)
})
const select = async (page: Page) => {
await page.mouse.move(200, 100)
await page.mouse.down()
await page.getByText('child2').hover({ force: true })
await page.mouse.up()
}
test('Multiple seletion', async ({ page }) => {
await select(page)
await expect(page.locator('.selected').filter({ hasText: 'child1' })).toBeVisible()
await expect(page.locator('.selected').filter({ hasText: 'child2' })).toBeVisible()
})
test('Multiple Move Before', async ({ page, me }) => {
await select(page)
await page.getByText('child1').hover({ force: true })
await page.mouse.down()
await me.dragOver('child3', 'before')
await expect(page.locator('.insert-preview.before')).toBeVisible()
await page.mouse.up()
await me.toHaveScreenshot()
})
test('Multiple Move After', async ({ page, me }) => {
await select(page)
await page.getByText('child1').hover({ force: true })
await page.mouse.down()
await me.dragOver('child3', 'after')
await expect(page.locator('.insert-preview.after')).toBeVisible()
await page.mouse.up()
await me.toHaveScreenshot()
})
test('Multiple Move In', async ({ page, me }) => {
await select(page)
await page.getByText('child1').hover({ force: true })
await page.mouse.down()
await me.dragOver('child3', 'in')
await expect(page.locator('.insert-preview.in')).toBeVisible()
await page.mouse.up()
await me.toHaveScreenshot()
})
test('Multiple Copy', async ({ page, me }) => {
await select(page)
await page.keyboard.press('Control+c')
await me.click('child3')
await page.keyboard.press('Control+v')
await me.toHaveScreenshot()
})