Files
site-builder/tests/media-blocks-verify.spec.js

53 lines
2.0 KiB
JavaScript
Raw Normal View History

const { test, expect } = require('@playwright/test');
const { waitForEditor, addBlockById, clearCanvas } = require('./helpers');
test.describe('Media Category Blocks Verification', () => {
test('should show Image, Video, and File/PDF blocks in Media category', async ({ page }) => {
await waitForEditor(page);
// Verify all three blocks exist and are in Media category
const mediaBlocks = await page.evaluate(() => {
const editor = window.editor;
const bm = editor.BlockManager;
return ['image-block', 'video-block', 'file-embed'].map(id => {
const block = bm.get(id);
if (!block) return { id, found: false };
const cat = block.get('category');
return {
id,
found: true,
label: block.get('label'),
category: typeof cat === 'string' ? cat : (cat && cat.id),
};
});
});
for (const block of mediaBlocks) {
expect(block.found).toBe(true);
expect(block.category).toBe('Media');
}
console.log('All Media blocks are registered!');
// Test adding Image block via API
const imgResult = await addBlockById(page, 'image-block');
expect(imgResult.success).toBe(true);
const canvas = page.frameLocator('#gjs iframe').first();
const img = canvas.locator('img');
await expect(img).toBeVisible({ timeout: 3000 });
console.log('Image block added successfully');
// Clear canvas
await clearCanvas(page);
// Test adding Video block via API
const vidResult = await addBlockById(page, 'video-block');
expect(vidResult.success).toBe(true);
const videoWrapper = canvas.locator('.video-wrapper');
await expect(videoWrapper).toBeVisible({ timeout: 3000 });
console.log('Video block added successfully');
});
});