diff --git a/package.json b/package.json index 61cb470..a700f91 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,9 @@ "dev:web": "pnpm --filter @notesuite/client dev & pnpm --filter @notesuite/common dev", "dev:server": "pnpm --filter @notesuite/server start", "dev:client": "pnpm --filter @notesuite/client tauri dev & pnpm --filter @notesuite/common dev", + "demo": "playwright test --debug --config=playwright.demo.config.ts", "test": "playwright test", + "shutdown": "./scripts/shutdown.sh", "test:headed": "playwright test --debug", "clean": "pnpm --filter @notesuite/server clean" }, diff --git a/playwright.demo.config.ts b/playwright.demo.config.ts new file mode 100644 index 0000000..af0c9cb --- /dev/null +++ b/playwright.demo.config.ts @@ -0,0 +1,16 @@ +import { PlaywrightTestConfig } from 'playwright/test'; + +const config: PlaywrightTestConfig = { + testDir: 'tests', + use: { + browserName: 'chromium', + }, + projects: [ + { + name: 'demo', + testMatch: 'tests/common/demo.ts', + }, + ], +}; + +export default config; diff --git a/scripts/shutdown.sh b/scripts/shutdown.sh new file mode 100755 index 0000000..efa2e3e --- /dev/null +++ b/scripts/shutdown.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +killport() { + if [ -z "$1" ]; then + echo "Usage: killport " + return 1 + fi + kill $(lsof -i :$1 | grep node | awk '{print $2}') +} + +killport 5173 +killport 3000 diff --git a/tests/common/agent.ts b/tests/common/agent.ts index 53f88f4..eff6eef 100644 --- a/tests/common/agent.ts +++ b/tests/common/agent.ts @@ -58,6 +58,10 @@ class WebAgentInterface { } } +class DesktopAgentInterface { + constructor(private agent: TestAgent) {} +} + class MockAgentInterface { constructor(private agent: TestAgent) {} } @@ -65,6 +69,7 @@ class MockAgentInterface { export class TestAgent { runner = new AppRunner(); web = new WebAgentInterface(this); + desktop = new DesktopAgentInterface(this); mock = new MockAgentInterface(this); workspaceId = ''; diff --git a/tests/common/demo.ts b/tests/common/demo.ts new file mode 100644 index 0000000..2e2c302 --- /dev/null +++ b/tests/common/demo.ts @@ -0,0 +1,20 @@ +import { test } from 'playwright/test'; +import { TestAgent } from './agent.js'; + +test('demo', async ({ page }) => { + const agent = new TestAgent(); + await agent.start({ + name: 'demo', + webPort: 5173, + backendPort: 3000, + }); + await page.goto(agent.web.baseUrl); + // await page.pause(); + + await agent.web.createWorkspace(page, 'hello'); + await agent.web.createDoc(page, 'First Doc'); + await agent.web.createDoc(page, 'Second Doc'); + await agent.web.createDoc(page, 'Third Doc'); + // await page.pause(); + // await agent.stop(); +});