mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2026-04-23 22:30:24 +00:00
[ACS-11617] added test for XAT-19318 and fixed false positives for viewer e2es (#5163)
* [ACS-11617] added test for XAT-19318 and fixed false positives for viewer e2es * [ACS-11617] cleaned exclude file * [ACS-11617] added 1s delay in openFileInViewer * [ACS-11617] changed name for override-ci to ci:skip-e2e
This commit is contained in:
6
.github/workflows/pull-request.yml
vendored
6
.github/workflows/pull-request.yml
vendored
@@ -109,7 +109,7 @@ jobs:
|
||||
run: npm run ci:test -- $TEST_OPTS
|
||||
|
||||
e2es-playwright:
|
||||
if: ${{ !contains(github.event.pull_request.labels.*.name, 'override-ci') }}
|
||||
if: ${{ !contains(github.event.pull_request.labels.*.name, 'ci:skip-e2e') }}
|
||||
needs: [lint, build, unit-tests]
|
||||
name: E2E | ${{ matrix.browser || 'chromium' }} | ${{ matrix.e2e-suites.name }} | Playwright
|
||||
runs-on: ubuntu-24.04
|
||||
@@ -258,8 +258,8 @@ jobs:
|
||||
run: exit 1
|
||||
|
||||
- name: Check e2e skipped
|
||||
if: ${{ contains(github.event.pull_request.labels.*.name, 'override-ci') }}
|
||||
run: echo "E2E tests were skipped due to override-ci label"
|
||||
if: ${{ contains(github.event.pull_request.labels.*.name, 'ci:skip-e2e') }}
|
||||
run: echo "E2E tests were skipped due to ci:skip-e2e label"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"all": {
|
||||
"XAT-5523": "https://hyland.atlassian.net/browse/ACA-4697",
|
||||
"XAT-5516": "https://hyland.atlassian.net/browse/ACS-9889",
|
||||
"XAT-5546": "https://hyland.atlassian.net/browse/ACS-10621"
|
||||
"XAT-5516": "https://hyland.atlassian.net/browse/ACS-9889"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,8 @@ import {
|
||||
Utils,
|
||||
TrashcanApi,
|
||||
PersonalFilesPage,
|
||||
timeouts
|
||||
timeouts,
|
||||
logger
|
||||
} from '@alfresco/aca-playwright-shared';
|
||||
|
||||
test.use({ channel: 'chrome' });
|
||||
@@ -49,6 +50,7 @@ test.describe('viewer file types', () => {
|
||||
const randomMp3Name = `${TEST_FILES.MP3_FILE.name}-${randomString}.mp3`;
|
||||
const randomMp4Name = `${TEST_FILES.MP4_FILE.name}-${randomString}.mp4`;
|
||||
const randomWebmName = `${TEST_FILES.WEBM_FILE.name}-${randomString}.webm`;
|
||||
const randomAzw3Name = `${TEST_FILES.AZW3_FILE.name}-${randomString}.azw3`;
|
||||
let nodesApi: NodesApi;
|
||||
let trashcanApi: TrashcanApi;
|
||||
let fileActionApi: FileActionsApi;
|
||||
@@ -61,7 +63,9 @@ test.describe('viewer file types', () => {
|
||||
await apiClientFactory.createUser({ username });
|
||||
} catch (exception) {
|
||||
if (JSON.parse(exception.message).error.statusCode !== 409) {
|
||||
throw new Error(`----- beforeAll failed : ${exception}`);
|
||||
const errorMessage = `----- beforeAll failed : ${exception}`;
|
||||
logger.error(errorMessage);
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +82,8 @@ test.describe('viewer file types', () => {
|
||||
{ path: TEST_FILES.PPTX_FILE.path, name: randomPptxName },
|
||||
{ path: TEST_FILES.MP3_FILE.path, name: randomMp3Name },
|
||||
{ path: TEST_FILES.MP4_FILE.path, name: randomMp4Name },
|
||||
{ path: TEST_FILES.WEBM_FILE.path, name: randomWebmName }
|
||||
{ path: TEST_FILES.WEBM_FILE.path, name: randomWebmName },
|
||||
{ path: TEST_FILES.AZW3_FILE.path, name: randomAzw3Name }
|
||||
];
|
||||
|
||||
for (const file of filesToUpload) {
|
||||
@@ -86,6 +91,7 @@ test.describe('viewer file types', () => {
|
||||
}
|
||||
|
||||
await fileActionApi.waitForNodes(randomWebmName, { expect: 1 });
|
||||
await fileActionApi.waitForNodes(randomAzw3Name, { expect: 1 });
|
||||
});
|
||||
|
||||
test.beforeEach(async ({ loginPage }) => {
|
||||
@@ -96,14 +102,25 @@ test.describe('viewer file types', () => {
|
||||
await Utils.deleteNodesSitesEmptyTrashcan(nodesApi, trashcanApi, 'afterAll failed');
|
||||
});
|
||||
|
||||
async function openFileInViewer(page: PersonalFilesPage, fileName: string) {
|
||||
await page.dataTable.performClickFolderOrFileToOpen(fileName);
|
||||
expect(await page.viewer.isViewerOpened(), 'Viewer is not opened').toBe(true);
|
||||
await page.viewer.waitForViewerLoaderToFinish(timeouts.fortySeconds);
|
||||
await Utils.delayInSeconds(1);
|
||||
}
|
||||
|
||||
async function checkViewerDisplay(
|
||||
page: PersonalFilesPage,
|
||||
fileName: string,
|
||||
fileType: 'viewerImage' | 'viewerDocument' | 'viewerMedia' = 'viewerImage'
|
||||
) {
|
||||
await page.dataTable.performClickFolderOrFileToOpen(fileName);
|
||||
expect(await page.viewer.isViewerOpened(), 'Viewer is not opened').toBe(true);
|
||||
await page.viewer.waitForViewerLoaderToFinish(timeouts.fortySeconds);
|
||||
await openFileInViewer(page, fileName);
|
||||
|
||||
if (await page.viewer.unknownFormat.isVisible()) {
|
||||
const unknownFormatErrorMessage = `File ${fileName} is not displayed in the viewer. Unknown format message is shown instead.`;
|
||||
logger.error(unknownFormatErrorMessage);
|
||||
throw new Error(unknownFormatErrorMessage);
|
||||
}
|
||||
|
||||
const viewerElements = {
|
||||
viewerImage: page.viewer.viewerImage,
|
||||
@@ -113,12 +130,19 @@ test.describe('viewer file types', () => {
|
||||
|
||||
const viewerElement = viewerElements[fileType];
|
||||
if (!viewerElement) {
|
||||
throw new Error(`Wrong viewer file type: ${fileType}`);
|
||||
const errorMessage = `Wrong viewer file type: ${fileType}`;
|
||||
logger.error(errorMessage);
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
|
||||
await expect(viewerElement).toBeVisible();
|
||||
}
|
||||
|
||||
async function checkViewerDisplayUnknownFormat(page: PersonalFilesPage, fileName: string) {
|
||||
await openFileInViewer(page, fileName);
|
||||
await expect(page.viewer.unknownFormat).toBeVisible();
|
||||
}
|
||||
|
||||
test('[XAT-17177] Image files are properly displayed in the viewer - JPG', async ({ personalFiles }) => {
|
||||
await checkViewerDisplay(personalFiles, randomJpgName, 'viewerImage');
|
||||
});
|
||||
@@ -155,6 +179,10 @@ test.describe('viewer file types', () => {
|
||||
await checkViewerDisplay(personalFiles, randomWebmName, 'viewerMedia');
|
||||
});
|
||||
|
||||
test('[XAT-19318] Unsupported file types have proper fallback', async ({ personalFiles }) => {
|
||||
await checkViewerDisplayUnknownFormat(personalFiles, randomAzw3Name);
|
||||
});
|
||||
|
||||
test('[XAT-5485] User can select a document page through the thumbnail pane', async ({ personalFiles }) => {
|
||||
await personalFiles.dataTable.performClickFolderOrFileToOpen(randomPdfName);
|
||||
expect(await personalFiles.viewer.isViewerOpened(), 'Viewer is not opened').toBe(true);
|
||||
|
||||
Binary file not shown.
@@ -107,5 +107,9 @@ export const TEST_FILES = {
|
||||
name: 'file-protected',
|
||||
data: 'Lorem ipsum dolor sit amet',
|
||||
password: '0000'
|
||||
},
|
||||
AZW3_FILE: {
|
||||
path: resolve(__dirname, 'file-azw3.azw3'),
|
||||
name: 'file-azw3'
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user