tia
Version:
Time is All (logs driven test engine with ExtJs support)
103 lines (91 loc) • 3.42 kB
text/typescript
// TODO: Move undependent types to another file.
/**
* The TEQ (Tia ExtJs Query) search string.
* The TEQ is a mix of following two abilities:
* https://docs.sencha.com/extjs/6.5.3/classic/Ext.ComponentQuery.html
* https://docs.sencha.com/extjs/6.5.3/classic/Ext.ComponentQuery.html#method-query
* https://docs.sencha.com/extjs/6.5.3/classic/Ext.Component.html#cfg-reference
*
* Note: There is a difference in default flag for xtype search.
* Do not use the xtype(true) syntax in TEQ, because (true)
* is added by default. I.e. ExtJs query has (false) by default, but TEQ has (true) by default.
* And you have not ability to pass (false) in TEQ. So you always search by exact xtype and not
* by the inheritance chain.
*
* Locale: Front end locale, which is set by gT.e.utils.setLocaleObject().
* In the component queries, substrings like 'l"locale_key"' will be replaced by '"value_for_key"',
* i.e. '[text=l"settings"]' will be changed to '[text="Настройки"] for russian locale.
*
* Extra locale: Back end locale, which is set by gT.e.utils.setExtraLocaleObject()
* In the component queries, substrings like 'el"locale_key"' will be replaced by '"value_for_key"',
* i.e. '[text=el"settings"]' will be changed to '[text="Настройки"] for russian extra locale.
*
* Also fake ids id like '##idKey' will be replaced by '#realId' from tiaEJ.idMap.
*
* References can be specified using '&' prefix. Say if your TEQ string is:
* '#someId &someReference someXType', then the function will search the component with id 'someId',
* then it will be equal to:
* Ext.ComponentQuery('#someId).lookupReference('someReference').query(someXType)
*/
export type Teq = string;
/**
* For TableCellByModelFields - tuple ["Field Name", "Field Value"].
* For TableCellByColumns - tuple ["Column Text (or Tooltip)", "Field Value"].
*/
type RowSearchParams = [string, string];
/**
* Used to find row in some table using Model Field Names.
* Only visible columns are allowed.
*/
export interface TableCellByModelFields {
/**
* Data specifying row to click.
*/
row: RowSearchParams[];
/**
* Field name, specifying column to click.
*/
field: string;
/**
* Index inside found rows. Note 'FOUND' and not 'ALL'.
* 0 by default.
* Negative index is subtracted from length. I.e. -1 means last. -2 means before last, etc.
*/
index?: number;
/**
* If true and there more then one row, exception is generated.
* true by default.
*/
one?: boolean;
/**
* For some group tree nodes there is no corresponding fieldName in table header visible columns.
* So there is no corresponding cell.
* You can set useRowIfCellAbsent to true to use row instead of cell.
*/
useRowIfCellAbsent?: boolean;
}
/**
* Used to find row in some table using Column texts or tooltips.
* Only visible columns are allowed.
*/
export interface TableCellByColumns {
/**
* Data specifying row to click.
*/
row: RowSearchParams[];
/**
* Column header text or tooltip, specifying column to click.
*/
column: string;
/**
* Index inside found rows. Note 'FOUND' and not 'ALL'.
* 0 by default.
* Negative index is subtracted from length. I.e. -1 means last. -2 means before last, etc.
*/
index?: number;
/**
* If true and there more then one row, exception is generated.
* true by default.
*/
one?: boolean;
}