Skip to content

Commit

Permalink
Ensure that API keys are rendered before performing bulk delete in fu…
Browse files Browse the repository at this point in the history
…nctional tests. (elastic#148013)

(cherry picked from commit 3a5f562)

# Conflicts:
#	x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_keys_grid_page.test.tsx
#	x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_keys_grid_page.tsx
#	x-pack/test/functional/apps/api_keys/home_page.ts
#	x-pack/test/functional/page_objects/api_keys_page.ts
  • Loading branch information
azasypkin committed Dec 23, 2022
1 parent 67a0f93 commit 69c2169
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,7 @@ export class APIKeysGridPage extends Component<Props, State> {
defaultMessage: 'Name',
}),
sortable: true,
'data-test-subj': 'apiKeyNameCell',
},
]);

Expand Down
15 changes: 15 additions & 0 deletions x-pack/test/functional/apps/api_keys/home_page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,17 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
const testSubjects = getService('testSubjects');
const find = getService('find');
const browser = getService('browser');
const retry = getService('retry');

async function ensureApiKeysExist(apiKeysNames: string[]) {
await retry.try(async () => {
for (const apiKeyName of apiKeysNames) {
log.debug(`Checking if API key ("${apiKeyName}") exists.`);
await pageObjects.apiKeys.ensureApiKeyExists(apiKeyName);
log.debug(`API key ("${apiKeyName}") exists.`);
}
});
}

describe('Home page', function () {
before(async () => {
Expand Down Expand Up @@ -109,6 +120,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
await pageObjects.apiKeys.clickOnPromptCreateApiKey();
await pageObjects.apiKeys.setApiKeyName('api key 1');
await pageObjects.apiKeys.submitOnCreateApiKey();
await ensureApiKeysExist(['api key 1']);
});

it('one by one', async () => {
Expand All @@ -123,6 +135,9 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
await pageObjects.apiKeys.setApiKeyName('api key 2');
await pageObjects.apiKeys.submitOnCreateApiKey();

// Make sure all API keys we want to delete are created and rendered.
await ensureApiKeysExist(['api key 1', 'api key 2']);

await pageObjects.apiKeys.bulkDeleteApiKeys();
expect(await pageObjects.apiKeys.getApiKeysFirstPromptTitle()).to.be(
'Create your first API key'
Expand Down
11 changes: 11 additions & 0 deletions x-pack/test/functional/page_objects/api_keys_page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,5 +92,16 @@ export function ApiKeysPageProvider({ getService }: FtrProviderContext) {
await testSubjects.click('confirmModalConfirmButton');
}
},

async ensureApiKeyExists(apiKeyName: string) {
const existingApiKeyNameCells = await testSubjects.findAll('apiKeyNameCell');
for (const existingApiKeyNameCell of existingApiKeyNameCells) {
if (apiKeyName === (await existingApiKeyNameCell.getVisibleText())) {
return;
}
}

throw new Error(`API key ("${apiKeyName}") does not exist.`);
},
};
}

0 comments on commit 69c2169

Please sign in to comment.