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. (#148013)
  • Loading branch information
azasypkin authored Dec 22, 2022
1 parent 5b53a8e commit 3a5f562
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ describe('APIKeysGridPage', () => {
const secondKey = getByText(/second-api-key/).closest('td');
const secondKeyEuiLink = secondKey!.querySelector('button');
expect(secondKeyEuiLink).not.toBeNull();
expect(secondKeyEuiLink!.getAttribute('data-test-subj')).toBe('roleRowName-second-api-key');
expect(secondKeyEuiLink!.getAttribute('data-test-subj')).toBe('apiKeyRowName-second-api-key');
});

afterAll(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -518,7 +518,7 @@ export class APIKeysGridPage extends Component<Props, State> {
return (
<EuiText color="subdued" size="s">
<EuiLink
data-test-subj={`roleRowName-${recordAP.name}`}
data-test-subj={`apiKeyRowName-${recordAP.name}`}
onClick={() => {
this.setState({ selectedApiKey: recordAP, isUpdateFlyoutVisible: true });
}}
Expand Down
18 changes: 16 additions & 2 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,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
const testSubjects = getService('testSubjects');
const find = getService('find');
const browser = getService('browser');
const retry = getService('retry');

const testRoles: Record<string, any> = {
viewer: {
Expand All @@ -37,8 +38,17 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
},
};

// Failing: See https://github.com/elastic/kibana/issues/141868
describe.skip('Home page', function () {
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 () => {
await clearAllApiKeys(es, log);
await security.testUser.setRoles(['kibana_admin']);
Expand Down Expand Up @@ -392,6 +402,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
await pageObjects.apiKeys.clickOnPromptCreateApiKey();
await pageObjects.apiKeys.setApiKeyName('api key 1');
await pageObjects.apiKeys.clickSubmitButtonOnApiKeyFlyout();
await ensureApiKeysExist(['api key 1']);
});

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

// 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
6 changes: 5 additions & 1 deletion x-pack/test/functional/page_objects/api_keys_page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,11 @@ export function ApiKeysPageProvider({ getService }: FtrProviderContext) {
},

async clickExistingApiKeyToOpenFlyout(apiKeyName: string) {
await testSubjects.click(`roleRowName-${apiKeyName}`);
await testSubjects.click(`apiKeyRowName-${apiKeyName}`);
},

async ensureApiKeyExists(apiKeyName: string) {
await testSubjects.existOrFail(`apiKeyRowName-${apiKeyName}`);
},

async getMetadataSwitch() {
Expand Down

0 comments on commit 3a5f562

Please sign in to comment.