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
import { VorgangE2E } from '../../../model/vorgang';
import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
import { VorgangPage } from '../../../page-objects/vorgang.po';
import { dropCollections } from '../../../support/cypress-helper';
import { exist, notExist } from '../../../support/cypress.util';
import { countDownloadFiles, deleteDownloadFolder, dropCollections } from '../../../support/cypress-helper';
import { exist, haveValue, notExist } from '../../../support/cypress.util';
import { loginAsSabine } from '../../../support/user-util';
import { createVorgang, initVorgaenge } from '../../../support/vorgang-util';
import * as fs from 'fs';
registerLocaleData(localeDe, 'de', localeDeExtra);
......@@ -83,11 +84,14 @@ describe('Vorgang exportieren', () => {
exist(menuItem.getButton());
})
it('should download', () => {
it('should have 1 file in download folder after download', () => {
menuItem.getButton().click();
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', () => {
......
......@@ -37,6 +37,8 @@ enum CypressTasks {
INIT_VORGANG_DATA = 'initVorgangData',
INIT_VORGANG_ATTACHED_ITEM_DATA = 'initVorgangAttachedItemData',
INIT_USERMANAGER_DATA = 'initUsermanagerData',
COUNT_FILES = 'countFiles',
DELETE_FOLDER = 'deleteFolder'
}
enum MongoCollections {
......@@ -48,6 +50,8 @@ enum MongoCollections {
USER = "User"
}
const DOWNLOAD_FOLDER: string = 'cypress/downloads';
export function login(userJsonPath: string): void {
cy.fixture(userJsonPath).then(user => {
cy.login(user.name, user.password);
......@@ -108,6 +112,14 @@ export function dropCollections() {
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 {
cy.window().scrollTo('bottom');
}
......@@ -143,7 +155,7 @@ export function reload(): void {
}
export function readFileFromDownloads(fileName: string) {
return cy.readFile(`cypress/downloads/${fileName}`);
return cy.readFile(`${DOWNLOAD_FOLDER}/${fileName}`);
}
export function pressTab(): void {
......
import { rmdir } from 'fs';
import { Long, MongoClient, ObjectId } from 'mongodb';
const Binary = require('mongodb').Binary;
......@@ -43,7 +44,16 @@ module.exports = (on: any, config: any) => {
console.log('dropUserManagerCollections: ', collections);
dropUserManagerCollectionsFromDatabase(config, collections);
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,
......@@ -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