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

OZG-4078 added check for downloaded file

parent c83fde38
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,8 @@ const MongoClient = require('mongodb').MongoClient;
const Binary = require('mongodb').Binary;
const ObjectId = require('mongodb').ObjectId;
const Long = require('mongodb').Long;
const fs = require('fs');
const {rmdir} = require('fs');
const cypressJsonConfig = {
baseUrl: 'http://localhost:4300',
......@@ -91,7 +93,30 @@ export default defineConfig({
console.log('dropUserManagerCollections: ', collections);
dropUserManagerCollectionsFromDatabase(config, collections);
return 0;
}
},
countDownloadFiles(folderName) {
return new Promise((resolve, reject) => {
fs.readdir(folderName, (err, files) => {
if (err) {
return reject(err)
}
resolve(files.length)
})
})},
deleteDownloadFolder(folderName) {
console.log('deleting folder %s', folderName)
return new Promise((resolve, reject) => {
rmdir(folderName, { maxRetries: 10, recursive: true }, (err) => {
if (err) {
console.error(err)
return reject(err)
}
resolve(null)
})
})
},
});
// Workaround für Angular 13 und Cypress mit Webpack 4,
......
......@@ -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);
......@@ -46,6 +47,7 @@ describe('Vorgang exportieren', () => {
const vorgangExportieren: VorgangE2E = { ...createVorgang(), name: 'DoExportieren' };
before(() => {
dropCollections();
initVorgaenge([vorgangExportieren]);
loginAsSabine();
......@@ -83,11 +85,14 @@ describe('Vorgang exportieren', () => {
exist(menuItem.getButton());
})
it('should download', () => {
it('should be 1 file in download folder', () => {
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_DOWNLOAD_FILES = 'countDownloadFiles',
DELETE_DOWNLOAD_FOLDER = 'deleteDownloadFolder'
}
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_DOWNLOAD_FILES, DOWNLOAD_FOLDER);
}
export function deleteDownloadFolder() {
cy.task(CypressTasks.DELETE_DOWNLOAD_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 {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment