Newer
Older
import { Interception, RouteHandler, RouteMatcher } from 'cypress/types/net-stubbing';
import { GridFsChunkE2E, GridFsFileDataE2E, GridFsFileE2E } from '../model/binary-file';
import { CommandE2E } from '../model/command';
import { VorgangE2E } from '../model/vorgang';
import { VorgangAttachedItemE2E } from '../model/vorgang-attached-item';
DROP_COLLECTION = 'dropCollection',
DROP_COLLECTIONS = 'dropCollections',
INIT_COMMAND_DATA = 'initCommandData',
INIT_GRID_FS_FILE_DATA = 'initGridFsFileData',
INIT_GRID_FS_CHUNK_DATA = 'initGridFsChunkData',
INIT_VORGANG_ATTACHED_ITEM_DATA = 'initVorgangAttachedItemData'
FS_CHUNKS = 'fs.chunks',
FS_FILES = 'fs.files',
VORGANG = 'vorgang',
VORGANG_ATTACHED_ITEM = 'vorgangAttachedItem'
export function login(userJsonPath: string): void {
cy.fixture(userJsonPath).then(user => {
cy.login(user.name, user.password);
})
}
export function visitUrl(url: string): void {
cy.visit(url);
}
export function initCommandData(data: CommandE2E[]): void {
cy.task(CypressTasks.INIT_COMMAND_DATA, { collection: MongoCollections.COMMAND, data });
}
export function initGridFsData(data: GridFsFileDataE2E[]) {
const files: GridFsFileE2E[] = [];
let chunks: GridFsChunkE2E[] = [];
data.forEach(singleData => {
files.push(singleData.file);
chunks = chunks.concat(singleData.chunks);
initGridFsFileData(files);
initGridFsChunkData(chunks);
}
function initGridFsFileData(data: GridFsFileE2E[]) {
cy.task(CypressTasks.INIT_GRID_FS_FILE_DATA, { collection: MongoCollections.FS_FILES, data });
}
function initGridFsChunkData(data: GridFsChunkE2E[]) {
cy.task(CypressTasks.INIT_GRID_FS_CHUNK_DATA, { collection: MongoCollections.FS_CHUNKS, data });
}
export function initVorgangAttachedItemData(data: VorgangAttachedItemE2E[]): void {
cy.task(CypressTasks.INIT_VORGANG_ATTACHED_ITEM_DATA, { collection: MongoCollections.VORGANG_ATTACHED_ITEM, data });
}
export function initVorgangData(data: VorgangE2E[]): void {
cy.task(CypressTasks.INIT_VORGANG_DATA, { collection: MongoCollections.VORGANG, data });
}
export function initSearchIndexData(vorgaenge: VorgangE2E[]): void {
cy.removeAllDocumentsFromSearchIndex();
cy.addVorgangToSearchIndex(vorgang)
export function dropCollections() {
cy.task(CypressTasks.DROP_COLLECTIONS, [MongoCollections.COMMAND, MongoCollections.VORGANG, MongoCollections.VORGANG_ATTACHED_ITEM, MongoCollections.FS_FILES, MongoCollections.FS_CHUNKS]);
}
export function scrollToWindowBottom(): void {
cy.window().scrollTo('bottom');
}
export function intercept(method: string, url: string): Cypress.Chainable<null> {
return cy.intercept(method, url);
}
export function interceptWithResponse(method, url: RouteMatcher, response: RouteHandler): Cypress.Chainable<null> {
return cy.intercept(method, url, response);
}
export function waitOfInterceptor(interceptor: string): Cypress.Chainable<Interception> {
return cy.wait('@' + interceptor);
export function getTestElement(value: string) {
return cy.getTestElement(value);
}
export function getElement(value: string) {
return cy.get(value);
}
//TODO: anders loesen -> bad practice
export function wait(ms: number): void {
cy.wait(ms);
}
export function reload(): void {
cy.reload();
}
export function readFileFromDownloads(fileName: string) {
return cy.readFile(`cypress/downloads/${fileName}`);
}
//Config
export function getBaseUrl() {
return Cypress.config().baseUrl;
}
//Env
export function getCypressEnv(value: string) {
return Cypress.env(value);