58 lines
1.9 KiB
TypeScript
58 lines
1.9 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
test.describe('Excalidraw Integration', () => {
|
|
test('should load and display Excalidraw editor', async ({ page }) => {
|
|
await page.goto('http://localhost:4200');
|
|
|
|
// Wait for app to load
|
|
await page.waitForSelector('body', { timeout: 10000 });
|
|
|
|
// Check if test drawing file exists in file list
|
|
const testFile = page.locator('text=test-drawing');
|
|
if (await testFile.isVisible({ timeout: 5000 }).catch(() => false)) {
|
|
await testFile.click();
|
|
|
|
// Wait for Excalidraw editor to load
|
|
await page.waitForSelector('excalidraw-editor', { timeout: 10000 });
|
|
|
|
// Verify editor is present
|
|
const editor = page.locator('excalidraw-editor');
|
|
await expect(editor).toBeVisible();
|
|
}
|
|
});
|
|
|
|
test('should handle file API with query params', async ({ page, request }) => {
|
|
// Test GET endpoint with query param
|
|
const response = await request.get('http://localhost:4200/api/files', {
|
|
params: { path: 'test-drawing.excalidraw.md' }
|
|
});
|
|
|
|
if (response.ok()) {
|
|
const data = await response.json();
|
|
expect(data).toHaveProperty('elements');
|
|
expect(Array.isArray(data.elements)).toBeTruthy();
|
|
}
|
|
});
|
|
|
|
test('should parse Obsidian format correctly', async ({ request }) => {
|
|
// Test that the backend can parse Obsidian format
|
|
const response = await request.get('http://localhost:4200/api/files', {
|
|
params: { path: 'test-drawing.excalidraw.md' }
|
|
});
|
|
|
|
if (response.ok()) {
|
|
const data = await response.json();
|
|
|
|
// Verify structure
|
|
expect(data).toHaveProperty('elements');
|
|
expect(data).toHaveProperty('appState');
|
|
expect(data).toHaveProperty('files');
|
|
|
|
// Verify types
|
|
expect(Array.isArray(data.elements)).toBeTruthy();
|
|
expect(typeof data.appState).toBe('object');
|
|
expect(typeof data.files).toBe('object');
|
|
}
|
|
});
|
|
});
|