[AAE-7660] file preview from info drawer (#2463)

* [AAE-7660] file preview from info drawer

* condition update

* wait for node to be searchable
This commit is contained in:
rafalszmit
2022-03-01 15:46:42 +01:00
committed by GitHub
parent 2f1a908fd5
commit 803f59b57c
3 changed files with 92 additions and 0 deletions

View File

@@ -46,6 +46,7 @@ export class InfoDrawer extends Component {
expandDetailsButton = TestElement.byCss(`button[title='Expand']`);
selectedTab = TestElement.byCss(`.mat-tab-list [aria-selected='true'] div`);
expandedDetailsPermissionsTab = TestElement.byText('.acs-details-container .mat-tab-label-content', 'Permissions');
previewButton = TestElement.byCss(`button[title='Preview File']`);
constructor(ancestor?: string) {
super('adf-info-drawer', ancestor);

View File

@@ -34,6 +34,7 @@ export class SearchInput extends Component {
searchControl = browser.element(by.css('.app-search-control'));
searchInput = TestElement.byCss('input[id="app-control-input"]');
searchResult = TestElement.byCss('.search-file-name');
searchOptionsArea = browser.element(by.id('search-options'));
searchFilesOption = this.searchOptionsArea.element(by.cssContainingText('.mat-checkbox', 'Files'));
@@ -156,4 +157,23 @@ export class SearchInput extends Component {
await this.searchInput.typeText(text);
await BrowserActions.click(this.searchButton);
}
async searchByURL(text: string){
const query = Buffer.from(text, 'utf-8').toString();
await BrowserActions.getUrl(`#/search;q=${query}`);
}
async searchUntilResult(text: string, methodType: 'URL' | 'UI', waitPerSearch: number = 2000, timeout: number = 20000) {
const attempts = Math.round(timeout/waitPerSearch);
let loopCount = 0;
let myPromise = new Promise((resolve, reject) => {
const check = async () => {
loopCount++;
loopCount >= attempts ? reject('File not found') : methodType === 'UI' ? await this.searchFor(text) : await this.searchByURL(text);
await this.searchResult.isPresent(waitPerSearch) ? resolve('File found') : setTimeout(check, waitPerSearch);
}
return check();
});
return myPromise;
}
}