const { I } = inject(); import { logger } from '../Logger/logger'; import { DewElement } from './element'; import { Wait } from './dewWait'; import { ReadLocators } from "../readLocators"; const locators:any = ReadLocators.readJson(); /** * Dew File Upload class */ export class DewFileUpload { /** * To upload file * ```js * await DewFileUpload.uploadFile("C:/Downloads/image.png","image.png"); * ``` * @param {string}filePath * @param {string}fullFileName */ static async uploadFile(filePath: string, fullFileName: string) { try { await I.attachFile(locators.dewUploadFileXpath, filePath); await Wait.waitForDefaultTimeout(10); await DewElement.verifyIfISeeElement(`.//*[@title='${fullFileName}']`); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while uploading file`); throw error; } } /** * To upload single or multiple files * ```js * await DewFileUpload.uploadFileUsingLocator(locators.dewFileUploadXpath,"C:/Downloads/image.png","C:/Downloads/test.pdf"); * await DewFileUpload.uploadFileUsingLocator(loctors.dewFileUploadXpath,"C:/Downloads/image.png"); * ``` * @param {any}locatorParam * @param {string}fullFileName */ static async uploadFileUsingLocator(locatorParam: any, ...listOfFiles: string[]) { let locator:string; if (Array.isArray(locatorParam)) { locator = locatorParam[0]; } else { locator = locatorParam; } try { for (const files of listOfFiles) { I.attachFile(locator, files); } await Wait.waitForDefaultTimeout(10); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while uploading file`); throw error; } } }