mirror of
https://github.com/hashicorp/vault.git
synced 2025-11-23 19:51:09 +01:00
* Allow Managed clusters to see Secrets Sync Overview and Sidebar nav (#26649) * update badge text and allow hvd on secrets sync views * update logic in Secrets Sync overview and cta for hvd. * spacing * rearrange based on pr feedback * fix return on badgeText and cluster nav test * fix landing cta tests * update test to reflect new changes * moved call to feature-flags from application route to the service to match patterns * add managed test coverage on overview component test and remove premium feature so cta message appplies to both managed and non-managed clusters * missed service name and unskip admin test * clean up * fix tests * flags test fix * Rename isManaged and managedNamespaceRoot (#26697) * renames * lowercase HVD to match * missed some * test failure * [Secrets Sync] enable access to Sync clients page for HVD clusters (#26713) * feat: split client counts navbar into separate component * acceptance/clients/counts/overview-test: remove tests now covered by int tests * clients counts route: rename isSecretsSyncActivated to showSecretsSync * sync clients page: show unactivated state unless sync client history or feature is activated * client counts navbar: show sync tab only if client history or is /able to be/ activated * clients overview page: only show sync charts if activated * fix: rename isManaged to isHvd * acceptance/counts/overview-test: add HVD tests * acceptance/counts/overview-test: clean up unused cruft * aceptance/clients/counts/overview-test: ensure we dont get false negatives * chore: move Clients::Error to Clients::Counts::Error * chore: calculate showSecretSync in page component instead of route * chore: add copyright headers * acceptance/clients/counts/overview-test: stub activated flags to fix test * [Secrets sync] update sync test selectors (#26824) * acceptance/clients/counts/overview-test: use imported test selectors * general-selectors: add missing emptyStateSubtitle property * acceptance/clients/counts/sync: nest tests in top level module for easier test runs * Add permissions check to show/hide activate button (#26840) * add permissions check to flags service and consume in overview template * add back missing refresh * fix test failures * add test coverage * clean up * address flaky test * grr * address test failures * add changelog * try to fix test failure only on gh * fix fetch to match previous implementation of feature-flags * fix failing test * update comment --------- Co-authored-by: Noelle Daley <noelledaley@users.noreply.github.com> Co-authored-by: clairebontempo@gmail.com <clairebontempo@gmail.com>
106 lines
4.0 KiB
JavaScript
106 lines
4.0 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import { click, fillIn } from '@ember/test-helpers';
|
|
import { GENERAL } from 'vault/tests/helpers/general-selectors';
|
|
|
|
export const PAGE = {
|
|
...GENERAL,
|
|
cta: {
|
|
summary: '[data-test-cta-container] p',
|
|
link: '[data-test-cta-doc-link]',
|
|
button: '[data-test-cta-button]',
|
|
},
|
|
associations: {
|
|
list: {
|
|
name: '[data-test-association-name]',
|
|
status: '[data-test-association-status]',
|
|
updated: '[data-test-association-updated]',
|
|
refresh: '[data-test-refresh-list]',
|
|
menu: {
|
|
sync: '[data-test-association-action="sync"]',
|
|
view: '[data-test-association-action="view"]',
|
|
unsync: '[data-test-association-action="unsync"]',
|
|
},
|
|
},
|
|
},
|
|
destinations: {
|
|
deleteBanner: '[data-test-delete-status-banner]',
|
|
details: {
|
|
sectionHeader: '[data-test-section-header]',
|
|
},
|
|
sync: {
|
|
mountSelect: '[data-test-sync-mount-select]',
|
|
mountInput: '[data-test-sync-mount-input]',
|
|
submit: '[data-test-sync-submit]',
|
|
cancel: '[data-test-sync-cancel]',
|
|
successMessage: '[data-test-sync-success-message]',
|
|
},
|
|
list: {
|
|
icon: '[data-test-destination-icon]',
|
|
name: '[data-test-destination-name]',
|
|
type: '[data-test-destination-type]',
|
|
deleteAction: '[data-test-delete]',
|
|
create: '[data-test-create-destination]',
|
|
menu: {
|
|
details: '[data-test-details]',
|
|
edit: '[data-test-edit]',
|
|
},
|
|
},
|
|
},
|
|
overview: {
|
|
optInBanner: '[data-test-secrets-sync-opt-in-banner]',
|
|
optInBannerEnable: '[data-test-secrets-sync-opt-in-banner-enable]',
|
|
optInBannerDescription: '[data-test-secrets-sync-opt-in-banner-description]',
|
|
optInDismiss: '[data-test-secrets-sync-opt-in-banner] [data-test-icon="x"]',
|
|
optInModal: '[data-test-secrets-sync-opt-in-modal]',
|
|
optInCheck: '[data-test-opt-in-check]',
|
|
optInConfirm: '[data-test-opt-in-confirm]',
|
|
optInCancel: '[data-test-opt-in-cancel]',
|
|
optInError: '[data-test-opt-in-error]',
|
|
createDestination: '[data-test-create-destination]',
|
|
table: {
|
|
row: '[data-test-overview-table-row]',
|
|
icon: (index) => `[data-test-overview-table-icon="${index}"]`,
|
|
name: (index) => `[data-test-overview-table-name="${index}"]`,
|
|
badge: (index) => `[data-test-overview-table-badge="${index}"]`,
|
|
total: (index) => `[data-test-overview-table-total="${index}"]`,
|
|
updated: (index) => `[data-test-overview-table-updated="${index}"]`,
|
|
actionToggle: (index) => `[data-test-overview-table-action-toggle="${index}"]`,
|
|
action: (name) => `[data-test-overview-table-action="${name}"]`,
|
|
},
|
|
},
|
|
badgeText: {
|
|
icon: (name) => `[data-test-icon="${name}"]`,
|
|
text: '.hds-badge__text',
|
|
},
|
|
selectType: (type) => `[data-test-select-destination="${type}"]`,
|
|
createCancel: '[data-test-destination-create-cancel]',
|
|
saveButton: '[data-test-save]',
|
|
toolbar: (btnText) => `[data-test-toolbar="${btnText}"]`,
|
|
form: {
|
|
enableInput: (attr) => `[data-test-enable-field="${attr}"] [data-test-icon="edit"]`,
|
|
fillInByAttr: async (attr, value) => {
|
|
// for handling more complex form input elements by attr name
|
|
switch (attr) {
|
|
case 'granularity':
|
|
return await click(`[data-test-radio="secret-key"]`);
|
|
case 'credentials':
|
|
await click('[data-test-text-toggle]');
|
|
return fillIn('[data-test-text-file-textarea]', value);
|
|
case 'customTags':
|
|
await fillIn('[data-test-kv-key="0"]', 'foo');
|
|
return fillIn('[data-test-kv-value="0"]', value);
|
|
case 'deploymentEnvironments':
|
|
await click('[data-test-input="deploymentEnvironments"] input#development');
|
|
await click('[data-test-input="deploymentEnvironments"] input#preview');
|
|
return await click('[data-test-input="deploymentEnvironments"] input#production');
|
|
default:
|
|
return fillIn(`[data-test-input="${attr}"]`, value);
|
|
}
|
|
},
|
|
},
|
|
};
|