tia
Version:
Time is All (logs driven test engine with ExtJs support)
86 lines (73 loc) • 2.29 kB
text/typescript
import * as path from 'path';
import * as fs from 'fs';
import { inspect } from 'util';
import * as utils from './extjs-utils';
import * as api from './extjs-api-actions';
import * as explore from './extjs-exploration';
import * as query from './new-api/tia-extjs-query';
import { EnableLog } from '../common-types';
import * as msgBox from './extjs-msgbox';
import * as wait from './extjs-waits';
async function setEJSelectors(enableLog?: EnableLog) {
const objStr = inspect(gT.globalConfig.ejSelectors, { compact: true, breakLength: 200 });
return gIn.wrap({
msg: 'setEJSelectors ... ',
enableLog,
act: () => {
const scriptStr = `return tiaEJ.setSelectors(${objStr});`;
return gT.s.browser.executeScriptWrapper(scriptStr).then(res => {
if (res !== true) {
throw new Error('setEJSelectors: Unexpected return value');
}
});
},
});
}
// for gT.e.initTiaExtJsBrHelpers
const brHelpers = [
'e-br.js',
'e-br-actions.js',
'e-br-check.js',
'e-br-cmp-wrappers.js',
'e-br-content.js',
'e-br-get-html-els.js',
'e-br-msgbox.js',
'e-br-search.js',
];
export class ExtJsAPI {
static utils = utils;
static explore = explore;
static msgBox = msgBox;
static wait = wait;
static query = query;
static q = query;
/**
* Initializes TIA ExtJs Browser helpers.
* Loads and runs scripts from the extjs/browser-part directory in context of current browser window.
* Adds some ExtJs helpers to window object.
*
* @param {boolean} [enableLog=true] - is logging needed for this action.
*
* @returns {Promise}.
*/
static initTiaExtJsBrHelpers(enableLog?: EnableLog) {
return gIn.wrap({
msg: 'Initialization of TIA ExtJs helpers ... ',
enableLog,
act: async () => {
for (const fName of brHelpers) {
// eslint-disable-line no-restricted-syntax
const scriptStr = fs.readFileSync(
path.join(gT.tiaDir, 'src', 'api', 'extjs', 'browser-part', fName),
'utf8'
);
await gT.s.browser.executeScriptWrapper(scriptStr);
}
await setEJSelectors(enableLog);
if (gT.cLParams.debugLocale) {
await gT.e.utils.setDebugLocaleMode(true);
}
},
});
}
}