Skip to content

Commit

Permalink
Merge branch 'next-37296/refactor-uploadimage-not-using-filesystem' i…
Browse files Browse the repository at this point in the history
…nto 'trunk'

NEXT-37296 - Refactor UploadImage not using filesystem savings anymore

See merge request shopware/6/product/platform!14263
  • Loading branch information
frobel committed Jul 17, 2024
2 parents c49e63b + 234501a commit 3f90497
Showing 1 changed file with 11 additions and 25 deletions.
36 changes: 11 additions & 25 deletions tests/acceptance/tasks/ShopAdmin/Product/UploadImage.ts
Original file line number Diff line number Diff line change
@@ -1,36 +1,28 @@
import { test as base, expect } from '@playwright/test';
import type { FixtureTypes, Task } from '@fixtures/AcceptanceTest';
import { createRandomImage, getMediaId } from '@fixtures/AcceptanceTest';
import fs from 'fs';

export const UploadImage = base.extend<{ UploadImage: Task }, FixtureTypes>({
UploadImage: async ({ AdminProductDetail, AdminApiContext }, use ) => {

let imageFilePath: string;
let fileName: string;
let uploadedMediaName: string;

const task = (imageName: string) => {
return async function UploadImage() {

fileName = imageName;
imageFilePath = `./tmp/${ imageName }.png`;

if (!fs.existsSync('./tmp/')) {
try {
fs.mkdirSync('./tmp/');
} catch (err) {
console.error(err);
}
}
uploadedMediaName = imageName;

// Create Image
const image = createRandomImage();
fs.writeFileSync(imageFilePath, image.toBuffer());

const fileChooserPromise = AdminProductDetail.page.waitForEvent('filechooser');
await AdminProductDetail.uploadMediaButton.click();
const fileChooser = await fileChooserPromise;
await fileChooser.setFiles(imageFilePath);
await fileChooser.setFiles({
name: `${ imageName }.png`,
mimeType: 'image/png',
buffer: Buffer.from(image.toBuffer(), 'utf-8'),
});

// Wait until media is saved via API
const response = await AdminProductDetail.page.waitForResponse(`${ process.env['APP_URL'] }api/search/media`);
Expand All @@ -52,15 +44,9 @@ export const UploadImage = base.extend<{ UploadImage: Task }, FixtureTypes>({
await use(task);

// Delete image from database
const uploadedMediaId = await getMediaId(fileName, AdminApiContext);
const deleteUploadedMedia = await AdminApiContext.delete(`media/${ uploadedMediaId }`);
expect(deleteUploadedMedia.ok()).toBeTruthy();

// Delete image from dir
fs.unlink(imageFilePath, (err) => {
if (err) {
throw err;
}
});
if(uploadedMediaName) {
const uploadedMediaId = await getMediaId(uploadedMediaName, AdminApiContext);
await AdminApiContext.delete(`media/${uploadedMediaId}`);
}
},
});

0 comments on commit 3f90497

Please sign in to comment.