contract.spec.ts 864 Bytes
import { expect, test } from '@playwright/test'
import { mockFlowBootstrap } from '../helpers/mock-flow-api'

test('新项目基线页应暴露稳定的编辑器实例契约', async ({ page }) => {
  await mockFlowBootstrap(page)

  await page.goto('/')
  await expect(page.locator('.vue-flow-editor')).toBeVisible()

  const contract = await page.evaluate(() => {
    return window.__FLOW_EDITOR_TEST_API__?.getEditorContract()
  })

  expect(contract?.hasEditor).toBe(true)
  expect(contract?.hasCommander).toBe(true)
  expect(contract?.hasDelete).toBe(true)
  expect(contract?.hasUndo).toBe(true)
  expect(contract?.hasRedo).toBe(true)
  expect(contract?.hasOpenModel).toBe(true)
  expect(contract?.hasCloseModel).toBe(true)
  expect(contract?.hasAddNode).toBe(true)
  expect(contract?.hasUpdateModel).toBe(true)
  expect(contract?.hasGraphRead).toBe(true)
})