Skip to content
Snippets Groups Projects
Commit c1aa43a6 authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-4078-check-xdomea-files' (#311) from...

Merge pull request 'OZG-4078-check-xdomea-files' (#311) from OZG-4078-check-xdomea-files into master

Reviewed-on: https://git.ozg-sh.de/mgm/goofy/pulls/311


Reviewed-by: default avatarOZGCloud <ozgcloud@mgm-tp.com>
parents 2b5b1697 f000291f
No related branches found
No related tags found
No related merge requests found
...@@ -29,10 +29,11 @@ import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-lis ...@@ -29,10 +29,11 @@ import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-lis
import { VorgangE2E } from '../../../model/vorgang'; import { VorgangE2E } from '../../../model/vorgang';
import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
import { VorgangPage } from '../../../page-objects/vorgang.po'; import { VorgangPage } from '../../../page-objects/vorgang.po';
import { dropCollections } from '../../../support/cypress-helper'; import { countDownloadFiles, deleteDownloadFolder, dropCollections } from '../../../support/cypress-helper';
import { exist, notExist } from '../../../support/cypress.util'; import { exist, haveValue, notExist } from '../../../support/cypress.util';
import { loginAsSabine } from '../../../support/user-util'; import { loginAsSabine } from '../../../support/user-util';
import { createVorgang, initVorgaenge } from '../../../support/vorgang-util'; import { createVorgang, initVorgaenge } from '../../../support/vorgang-util';
import * as fs from 'fs';
registerLocaleData(localeDe, 'de', localeDeExtra); registerLocaleData(localeDe, 'de', localeDeExtra);
...@@ -83,11 +84,14 @@ describe('Vorgang exportieren', () => { ...@@ -83,11 +84,14 @@ describe('Vorgang exportieren', () => {
exist(menuItem.getButton()); exist(menuItem.getButton());
}) })
it('should download', () => { it('should have 1 file in download folder after download', () => {
menuItem.getButton().click(); menuItem.getButton().click();
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
//TODO In Cypress 10+ implement something like https://docs.cypress.io/api/commands/task#Return-number-of-files-in-the-folder countDownloadFiles().then((count) => {
expect(count).to.eq(1);
deleteDownloadFolder();
});
}) })
it('should close menu after download', () => { it('should close menu after download', () => {
......
...@@ -37,6 +37,8 @@ enum CypressTasks { ...@@ -37,6 +37,8 @@ enum CypressTasks {
INIT_VORGANG_DATA = 'initVorgangData', INIT_VORGANG_DATA = 'initVorgangData',
INIT_VORGANG_ATTACHED_ITEM_DATA = 'initVorgangAttachedItemData', INIT_VORGANG_ATTACHED_ITEM_DATA = 'initVorgangAttachedItemData',
INIT_USERMANAGER_DATA = 'initUsermanagerData', INIT_USERMANAGER_DATA = 'initUsermanagerData',
COUNT_FILES = 'countFiles',
DELETE_FOLDER = 'deleteFolder'
} }
enum MongoCollections { enum MongoCollections {
...@@ -48,6 +50,8 @@ enum MongoCollections { ...@@ -48,6 +50,8 @@ enum MongoCollections {
USER = "User" USER = "User"
} }
const DOWNLOAD_FOLDER: string = 'cypress/downloads';
export function login(userJsonPath: string): void { export function login(userJsonPath: string): void {
cy.fixture(userJsonPath).then(user => { cy.fixture(userJsonPath).then(user => {
cy.login(user.name, user.password); cy.login(user.name, user.password);
...@@ -108,6 +112,14 @@ export function dropCollections() { ...@@ -108,6 +112,14 @@ export function dropCollections() {
cy.task(CypressTasks.DROP_USER_MANAGER_COLLECTIONS, [MongoCollections.USER]); cy.task(CypressTasks.DROP_USER_MANAGER_COLLECTIONS, [MongoCollections.USER]);
} }
export function countDownloadFiles(): Cypress.Chainable<number> {
return cy.task(CypressTasks.COUNT_FILES, DOWNLOAD_FOLDER);
}
export function deleteDownloadFolder(): void {
cy.task(CypressTasks.DELETE_FOLDER, DOWNLOAD_FOLDER);
}
export function scrollToWindowBottom(): void { export function scrollToWindowBottom(): void {
cy.window().scrollTo('bottom'); cy.window().scrollTo('bottom');
} }
...@@ -143,7 +155,7 @@ export function reload(): void { ...@@ -143,7 +155,7 @@ export function reload(): void {
} }
export function readFileFromDownloads(fileName: string) { export function readFileFromDownloads(fileName: string) {
return cy.readFile(`cypress/downloads/${fileName}`); return cy.readFile(`${DOWNLOAD_FOLDER}/${fileName}`);
} }
export function pressTab(): void { export function pressTab(): void {
......
import { rmdir } from 'fs';
import { Long, MongoClient, ObjectId } from 'mongodb'; import { Long, MongoClient, ObjectId } from 'mongodb';
const Binary = require('mongodb').Binary; const Binary = require('mongodb').Binary;
...@@ -43,7 +44,16 @@ module.exports = (on: any, config: any) => { ...@@ -43,7 +44,16 @@ module.exports = (on: any, config: any) => {
console.log('dropUserManagerCollections: ', collections); console.log('dropUserManagerCollections: ', collections);
dropUserManagerCollectionsFromDatabase(config, collections); dropUserManagerCollectionsFromDatabase(config, collections);
return 0; return 0;
} },
countFiles(folderName:string) {
console.log('counting files in folder %s', folderName);
return countFiles(folderName);
},
deleteFolder(folderName:string) {
console.log('deleting folder %s', folderName);
deleteFolder(folderName);
return 0;
},
}); });
// Workaround für Angular 13 und Cypress mit Webpack 4, // Workaround für Angular 13 und Cypress mit Webpack 4,
...@@ -296,3 +306,27 @@ function dropCollections(databaseUrl, databaseName, collections){ ...@@ -296,3 +306,27 @@ function dropCollections(databaseUrl, databaseName, collections){
} }
}); });
} }
function countFiles(folderName:string): Promise<number> {
return new Promise((resolve, reject) => {
fs.readdir(folderName, (err, files) => {
if (err) {
console.error(err)
return reject(err)
}
resolve(files.length)
})
})
}
function deleteFolder(folderName:string): void {
new Promise((resolve, reject) => {
rmdir(folderName, { maxRetries: 10, recursive: true }, (err) => {
if (err) {
console.error(err)
return reject(err)
}
resolve(null)
})
})
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment