185 lines
5.4 KiB
JavaScript
185 lines
5.4 KiB
JavaScript
/**
|
|
* 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'],
|
|
};
|