mirror of https://github.com/Squidex/squidex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
5.3 KiB
173 lines
5.3 KiB
/*
|
|
* Squidex Headless CMS
|
|
*
|
|
* @license
|
|
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved.
|
|
*/
|
|
|
|
import { readFile } from 'fs/promises';
|
|
import path from 'path';
|
|
import { AssetsPage } from '../pages';
|
|
import { getRandomId } from '../utils';
|
|
import { expect, test } from './_fixture';
|
|
|
|
test.beforeEach(async ({ appName, assetsPage }) => {
|
|
await assetsPage.goto(appName);
|
|
});
|
|
|
|
test('has header', async ({ page }) => {
|
|
const header = page.getByRole('heading', { name: /Assets/ });
|
|
|
|
await expect(header).toBeVisible();
|
|
});
|
|
|
|
test('upload asset', async ({ assetsPage }) => {
|
|
const assetName = await uploadRandomAsset(assetsPage);
|
|
const assetCard = await assetsPage.getAssetCard(assetName);
|
|
|
|
await expect(assetCard.root).toBeVisible();
|
|
});
|
|
|
|
test('delete asset', async ({ assetsPage }) => {
|
|
const assetName = await uploadRandomAsset(assetsPage);
|
|
const assetCard = await assetsPage.getAssetCard(assetName);
|
|
await assetCard.delete();
|
|
|
|
await expect(assetCard.root).not.toBeVisible();
|
|
});
|
|
|
|
test('not delete asset if cancelled', async ({ assetsPage }) => {
|
|
const assetName = await uploadRandomAsset(assetsPage);
|
|
const assetCard = await assetsPage.getAssetCard(assetName);
|
|
await assetCard.delete(/No/);
|
|
|
|
await expect(assetCard.root).toBeVisible();
|
|
});
|
|
|
|
test('edit asset name', async ({ assetsPage }) => {
|
|
const assetName = await uploadRandomAsset(assetsPage);
|
|
const assetCard = await assetsPage.getAssetCard(assetName);
|
|
|
|
const newName = `file-${getRandomId()}`;
|
|
const assetDialog = await assetCard.edit();
|
|
await assetDialog.enterName(newName);
|
|
await assetDialog.save();
|
|
|
|
const newCard = await assetsPage.getAssetCard(newName);
|
|
|
|
await expect(newCard.root).toBeVisible();
|
|
});
|
|
|
|
test('edit asset metadata', async ({ assetsPage }) => {
|
|
const assetName = await uploadRandomAsset(assetsPage);
|
|
const assetCard = await assetsPage.getAssetCard(assetName);
|
|
|
|
const w = '42';
|
|
const h = '13';
|
|
|
|
const assetDialog = await assetCard.edit();
|
|
await assetDialog.enterMetadata('pixelWidth', w);
|
|
await assetDialog.enterMetadata('pixelHeight', h);
|
|
await assetDialog.save();
|
|
|
|
const newCard = await assetsPage.getAssetCard(`${w}x${h}px`);
|
|
|
|
await expect(newCard.root).toBeVisible();
|
|
});
|
|
|
|
test('add asset folder', async ({ assetsPage }) => {
|
|
const folderName = `folder-${getRandomId()}`;
|
|
|
|
const folderDialog = await assetsPage.openAssetFolderDialog();
|
|
await folderDialog.enterName(folderName);
|
|
await folderDialog.save();
|
|
|
|
const folderCard = await assetsPage.getAssetFolderCard(folderName);
|
|
|
|
await expect(folderCard.root).toBeVisible();
|
|
});
|
|
|
|
test('open asset folder', async ({ assetsPage }) => {
|
|
const folderName = `folder-${getRandomId()}`;
|
|
|
|
const folderDialog = await assetsPage.openAssetFolderDialog();
|
|
await folderDialog.enterName(folderName);
|
|
await folderDialog.save();
|
|
|
|
const folderCard = await assetsPage.getAssetFolderCard(folderName);
|
|
await folderCard.open();
|
|
|
|
const moveUpCard = await assetsPage.getAssetFolderCard('<Parent>');
|
|
|
|
await expect(moveUpCard.root).toBeVisible();
|
|
});
|
|
|
|
test('rename asset folder', async ({ assetsPage }) => {
|
|
const folderName = `folder-${getRandomId()}`;
|
|
|
|
const folderDialog = await assetsPage.openAssetFolderDialog();
|
|
await folderDialog.enterName(folderName);
|
|
await folderDialog.save();
|
|
const folderCard = await assetsPage.getAssetFolderCard(folderName);
|
|
|
|
const newName = `folder-${getRandomId()}`;
|
|
|
|
const renameDialog = await folderCard.rename();
|
|
await renameDialog.enterName(newName);
|
|
await renameDialog.rename();
|
|
const renamedCard = await assetsPage.getAssetFolderCard(newName);
|
|
|
|
await expect(renamedCard.root).toBeVisible();
|
|
});
|
|
|
|
test('delete asset folder', async ({ assetsPage }) => {
|
|
const folderName = `folder-${getRandomId()}`;
|
|
|
|
const folderDialog = await assetsPage.openAssetFolderDialog();
|
|
await folderDialog.enterName(folderName);
|
|
await folderDialog.save();
|
|
|
|
const folderCard = await assetsPage.getAssetFolderCard(folderName);
|
|
|
|
const dropdown = await folderCard.openOptionsDropdown();
|
|
await dropdown.delete();
|
|
|
|
await expect(folderCard.root).not.toBeVisible();
|
|
});
|
|
|
|
test('add asset folder to parent', async ({ assetsPage }) => {
|
|
const parentName = `folder-${getRandomId()}`;
|
|
|
|
const parentDialog = await assetsPage.openAssetFolderDialog();
|
|
await parentDialog.enterName(parentName);
|
|
await parentDialog.save();
|
|
|
|
const parentcard = await assetsPage.getAssetFolderCard(parentName);
|
|
await parentcard.open();
|
|
|
|
const childName = `folder-${getRandomId()}`;
|
|
|
|
const childDialog = await assetsPage.openAssetFolderDialog();
|
|
await childDialog.enterName(childName);
|
|
await childDialog.save();
|
|
|
|
const childCard = await assetsPage.getAssetFolderCard(childName);
|
|
|
|
const moveUpCard = await assetsPage.getAssetFolderCard('<Parent>');
|
|
await moveUpCard.open();
|
|
|
|
await expect(childCard.root).not.toBeVisible();
|
|
|
|
await parentcard.open();
|
|
|
|
await expect(childCard.root).toBeVisible();
|
|
});
|
|
|
|
async function uploadRandomAsset(assetsPage: AssetsPage) {
|
|
const fileName = `file-${getRandomId()}`;
|
|
const fileBuffer = await readFile(path.join(__dirname, '../../assets/logo-squared.png'));
|
|
|
|
await assetsPage.uploadFile({ name: fileName, mimeType: 'image/png', buffer: fileBuffer });
|
|
|
|
return fileName;
|
|
}
|