|
20 | 20 | import expect from '@kbn/expect'; |
21 | 21 | import { FtrProviderContext } from '../ftr_provider_context'; |
22 | 22 |
|
| 23 | +type AppName = 'visualize' | 'dashboard' | 'map'; |
| 24 | + |
23 | 25 | export function ListingTableProvider({ getService, getPageObjects }: FtrProviderContext) { |
24 | 26 | const testSubjects = getService('testSubjects'); |
25 | 27 | const find = getService('find'); |
26 | 28 | const log = getService('log'); |
27 | 29 | const retry = getService('retry'); |
28 | 30 | const { common, header } = getPageObjects(['common', 'header']); |
29 | | - const prefixMap = { visualize: 'vis', dashboard: 'dashboard' }; |
| 31 | + const prefixMap = { visualize: 'vis', dashboard: 'dashboard', map: 'map' }; |
30 | 32 |
|
31 | | - /** |
32 | | - * This class provides functions for dashboard and visualize landing pages |
33 | | - */ |
34 | 33 | class ListingTable { |
35 | 34 | private async getSearchFilter() { |
36 | | - const searchFilter = await find.allByCssSelector('main .euiFieldSearch'); |
37 | | - return searchFilter[0]; |
| 35 | + return await testSubjects.find('tableListSearchBox'); |
38 | 36 | } |
39 | 37 |
|
40 | 38 | /** |
@@ -86,9 +84,8 @@ export function ListingTableProvider({ getService, getPageObjects }: FtrProvider |
86 | 84 |
|
87 | 85 | /** |
88 | 86 | * Returns items count on landing page |
89 | | - * @param appName 'visualize' | 'dashboard' |
90 | 87 | */ |
91 | | - public async expectItemsCount(appName: 'visualize' | 'dashboard', count: number) { |
| 88 | + public async expectItemsCount(appName: AppName, count: number) { |
92 | 89 | await retry.try(async () => { |
93 | 90 | const elements = await find.allByCssSelector( |
94 | 91 | `[data-test-subj^="${prefixMap[appName]}ListingTitleLink"]` |
@@ -126,14 +123,8 @@ export function ListingTableProvider({ getService, getPageObjects }: FtrProvider |
126 | 123 |
|
127 | 124 | /** |
128 | 125 | * Searches for item on Landing page and retruns items count that match `ListingTitleLink-${name}` pattern |
129 | | - * @param appName 'visualize' | 'dashboard' |
130 | | - * @param name item name |
131 | 126 | */ |
132 | | - public async searchAndExpectItemsCount( |
133 | | - appName: 'visualize' | 'dashboard', |
134 | | - name: string, |
135 | | - count: number |
136 | | - ) { |
| 127 | + public async searchAndExpectItemsCount(appName: AppName, name: string, count: number) { |
137 | 128 | await this.searchForItemWithName(name); |
138 | 129 | await retry.try(async () => { |
139 | 130 | const links = await testSubjects.findAll( |
@@ -165,10 +156,8 @@ export function ListingTableProvider({ getService, getPageObjects }: FtrProvider |
165 | 156 |
|
166 | 157 | /** |
167 | 158 | * Clicks item on Landing page by link name if it is present |
168 | | - * @param appName 'dashboard' | 'visualize' |
169 | | - * @param name item name |
170 | 159 | */ |
171 | | - public async clickItemLink(appName: 'dashboard' | 'visualize', name: string) { |
| 160 | + public async clickItemLink(appName: AppName, name: string) { |
172 | 161 | await testSubjects.click( |
173 | 162 | `${prefixMap[appName]}ListingTitleLink-${name.split(' ').join('-')}` |
174 | 163 | ); |
@@ -204,6 +193,12 @@ export function ListingTableProvider({ getService, getPageObjects }: FtrProvider |
204 | 193 | } |
205 | 194 | }); |
206 | 195 | } |
| 196 | + |
| 197 | + public async onListingPage(appName: AppName) { |
| 198 | + return await testSubjects.exists(`${appName}LandingPage`, { |
| 199 | + timeout: 5000, |
| 200 | + }); |
| 201 | + } |
207 | 202 | } |
208 | 203 |
|
209 | 204 | return new ListingTable(); |
|
0 commit comments