Select Git revision
cypress-tasks.ts
cypress-tasks.ts 9.70 KiB
import { rmdir } from 'fs';
import { Long, MongoClient, ObjectId } from 'mongodb';
const Binary = require('mongodb').Binary;
module.exports = (on: any, config: any) => {
on('task', {
initCommandData({collection, data}) {
console.log('initCommandData');
insertIntoDatabase(config, collection, parseCommandData(data));
return 0;
},
initGridFsFileData({collection, data}) {
console.log('initGridFsFileData');
insertIntoDatabase(config, collection, parseGridFsFileData(data));
return 0;
},
initGridFsChunkData({collection, data}) {
console.log('initGridFsChunkData');
insertIntoDatabase(config, collection, parseGridFsChunkData(data));
return 0;
},
initVorgangData({collection, data}) {
console.log('initVorgangData');
insertIntoDatabase(config, collection, parseVorgangData(data));
return 0;
},
initVorgangAttachedItemData({collection, data}) {
console.log('initVorgangAttachedItemData');
insertIntoDatabase(config, collection, parseVorgangAttachedItemData(data));
return 0;
},
initUsermanagerData({collection, data}) {
console.log('initUsermanagerData');
insertIntoUserManagerDatabase(config, collection, parseUserData(data));
return 0;
},
dropCollections(collections) {
console.log('dropCollections: ', collections);
dropCollectionsFromDatabase(config, collections);
return 0;
},
dropUserManagerCollections(collections) {
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,
// Siehe https://github.com/cypress-io/cypress/issues/19066#issuecomment-1012055705
// Entfernen, sobald Cypress Webpack 5 nutzt - https://github.com/cypress-io/cypress/issues/19555
// Ursache: Angular linker needed to link partial-ivy code,
// see https://angular.io/guide/creating-libraries#consuming-partial-ivy-code-outside-the-angular-cli
// Fehlerbild:
// - Anwendung läuft im Browser, aber nicht in Cypress.
// - Fehlermeldung in Cypress: The injectable 'SystemDateTimeProvider' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available.
// Lösung:
// - NPM-Paket identifizieren, dass "SystemDateTimeProvider" enthält.
// - NPM-Paket im "test" Attribut unten hinzufügen.
const webpackPreprocessor = require('@cypress/webpack-batteries-included-preprocessor');