| /** |
| * Copyright (c) HashiCorp, Inc. |
| * SPDX-License-Identifier: MPL-2.0 |
| */ |
| |
| import { Response } from 'miragejs'; |
| |
| export const OIDC_BASE_URL = `/vault/access/oidc`; |
| |
| export const SELECTORS = { |
| oidcHeader: '[data-test-oidc-header]', |
| oidcClientCreateButton: '[data-test-oidc-configure]', |
| oidcRouteTabs: '[data-test-oidc-tabs]', |
| oidcLandingImg: '[data-test-oidc-img]', |
| confirmActionButton: '[data-test-confirm-button="true"]', |
| inlineAlert: '[data-test-inline-alert]', |
| // client route |
| clientSaveButton: '[data-test-oidc-client-save]', |
| clientCancelButton: '[data-test-oidc-client-cancel]', |
| clientDeleteButton: '[data-test-oidc-client-delete] button', |
| clientEditButton: '[data-test-oidc-client-edit]', |
| clientDetailsTab: '[data-test-oidc-client-details]', |
| clientProvidersTab: '[data-test-oidc-client-providers]', |
| |
| // assignment route |
| assignmentSaveButton: '[data-test-oidc-assignment-save]', |
| assignmentCreateButton: '[data-test-oidc-assignment-create]', |
| assignmentEditButton: '[data-test-oidc-assignment-edit]', |
| assignmentDeleteButton: '[data-test-oidc-assignment-delete] button', |
| assignmentCancelButton: '[data-test-oidc-assignment-cancel]', |
| assignmentDetailsTab: '[data-test-oidc-assignment-details]', |
| |
| // scope routes |
| scopeSaveButton: '[data-test-oidc-scope-save]', |
| scopeCancelButton: '[data-test-oidc-scope-cancel]', |
| scopeDeleteButton: '[data-test-oidc-scope-delete] button', |
| scopeEditButton: '[data-test-oidc-scope-edit]', |
| scopeDetailsTab: '[data-test-oidc-scope-details]', |
| scopeEmptyState: '[data-test-oidc-scope-empty-state]', |
| scopeCreateButtonEmptyState: '[data-test-oidc-scope-create-empty-state]', |
| scopeCreateButton: '[data-test-oidc-scope-create]', |
| |
| // key route |
| keySaveButton: '[data-test-oidc-key-save]', |
| keyCancelButton: '[data-test-oidc-key-cancel]', |
| keyDeleteButton: '[data-test-oidc-key-delete] button', |
| keyEditButton: '[data-test-oidc-key-edit]', |
| keyRotateButton: '[data-test-oidc-key-rotate] button', |
| keyDetailsTab: '[data-test-oidc-key-details]', |
| keyClientsTab: '[data-test-oidc-key-clients]', |
| |
| // provider route |
| providerSaveButton: '[data-test-oidc-provider-save]', |
| providerCancelButton: '[data-test-oidc-provider-cancel]', |
| providerDeleteButton: '[data-test-oidc-provider-delete] button', |
| providerEditButton: '[data-test-oidc-provider-edit]', |
| providerDetailsTab: '[data-test-oidc-provider-details]', |
| providerClientsTab: '[data-test-oidc-provider-clients]', |
| }; |
| |
| export function overrideMirageResponse(httpStatus, data) { |
| if (httpStatus === 403) { |
| return new Response( |
| 403, |
| { 'Content-Type': 'application/json' }, |
| JSON.stringify({ errors: ['permission denied'] }) |
| ); |
| } |
| if (httpStatus === 404) { |
| return new Response(404, { 'Content-Type': 'application/json' }); |
| } |
| if (httpStatus === 200) { |
| return new Response(200, { 'Content-Type': 'application/json' }, JSON.stringify(data)); |
| } |
| return { |
| request_id: crypto.randomUUID(), |
| lease_id: '', |
| renewable: false, |
| lease_duration: 0, |
| wrap_info: null, |
| warnings: null, |
| auth: null, |
| data: { ...data }, |
| }; |
| } |
| |
| export function overrideCapabilities(requestPath, capabilitiesArray) { |
| // sample of capabilitiesArray: ['read', 'update'] |
| return { |
| request_id: '40f7e44d-af5c-9b60-bd20-df72eb17e294', |
| lease_id: '', |
| renewable: false, |
| lease_duration: 0, |
| data: { |
| capabilities: capabilitiesArray, |
| [requestPath]: capabilitiesArray, |
| }, |
| wrap_info: null, |
| warnings: null, |
| auth: null, |
| }; |
| } |
| |
| export async function clearRecord(store, modelType, id) { |
| await store |
| .findRecord(modelType, id) |
| .then((model) => { |
| deleteModelRecord(model); |
| }) |
| .catch(() => { |
| // swallow error |
| }); |
| } |
| |
| const deleteModelRecord = async (model) => { |
| await model.destroyRecord(); |
| }; |
| |
| // MOCK RESPONSES: |
| |
| export const CLIENT_LIST_RESPONSE = { |
| keys: ['test-app', 'app-1'], |
| key_info: { |
| 'test-app': { |
| assignments: ['allow_all'], |
| client_id: 'whaT7KB0C3iBH1l3rXhd5HPf0n6vXU0s', |
| client_secret: 'hvo_secret_nkJSTu2NVYqylXwFbFijsTxJHg4Ic4gqSJw7uOZ4FbSXcObngDkKoVsvyndrf2O8', |
| client_type: 'confidential', |
| id_token_ttl: 0, |
| key: 'default', |
| redirect_uris: [], |
| }, |
| 'app-1': { |
| assignments: ['allow_all'], |
| client_id: 'HkmsTA4GG17j0Djy4EUAB2VAyzuLVewg', |
| client_secret: 'hvo_secret_g3f30MxAJWLXhhrCejbG4zY3O4LEHhEIO24aMy181AYKnfQtWTVV924ZmnlpUFUw', |
| client_type: 'confidential', |
| id_token_ttl: 0, |
| key: 'test-key', |
| redirect_uris: [], |
| }, |
| }, |
| }; |
| |
| export const CLIENT_DATA_RESPONSE = { |
| access_token_ttl: 0, |
| assignments: ['allow_all'], |
| client_id: 'whaT7KB0C3iBH1l3rXhd5HPf0n6vXU0s', |
| client_secret: 'hvo_secret_nkJSTu2NVYqylXwFbFijsTxJHg4Ic4gqSJw7uOZ4FbSXcObngDkKoVsvyndrf2O8', |
| client_type: 'confidential', |
| id_token_ttl: 0, |
| key: 'default', |
| redirect_uris: [], |
| }; |
| |
| export const ASSIGNMENT_LIST_RESPONSE = { |
| keys: ['allow_all', 'test-assignment'], |
| }; |
| |
| export const ASSIGNMENT_DATA_RESPONSE = { |
| group_ids: ['262ca5b9-7b69-0a84-446a-303dc7d778af'], |
| entity_ids: ['b6094ac6-baf4-6520-b05a-2bd9f07c66da'], |
| }; |
| |
| export const SCOPE_LIST_RESPONSE = { |
| keys: ['test-scope'], |
| }; |
| |
| export const SCOPE_DATA_RESPONSE = { |
| description: 'this is a test', |
| template: `{ |
| "groups": {{identity.entity.groups.names}} |
| }`, |
| }; |
| |
| export const PROVIDER_LIST_RESPONSE = { |
| keys: ['test-provider'], |
| }; |
| |
| export const PROVIDER_DATA_RESPONSE = { |
| allowed_client_ids: ['*'], |
| issuer: '', |
| scopes_supported: ['test-scope'], |
| }; |