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