fix: 🐛 Remove json_object from payload for non-json credentials (#1576)
* fix: 🐛 Remove json_object from payload for non-json credentials * refactor: 💡 update new route logic for type specific attributes * test: 💍 remove typeIn and use fillIn for json credential test
This commit is contained in:
1 parent
f7c80c8869
commit
b02dc0aa43
4 files changed
+92
-6
No files matched your search
+11
-6
@@ -29,23 +29,28 @@ export default class ScopesScopeCredentialStoresCredentialStoreCredentialsNewRou
|
||||
'scopes.scope.credential-stores.credential-store'
|
||||
);
|
||||
let name, description;
|
||||
/**
|
||||
* this sets the credential attribute json_object to a string that
|
||||
* replicates an empty json blob as CodeMirror expects a string
|
||||
*/
|
||||
const json_object = '{}';
|
||||
|
||||
if (this.currentModel?.isNew) {
|
||||
({ name, description } = this.currentModel);
|
||||
this.currentModel.rollbackAttributes();
|
||||
}
|
||||
|
||||
/**
|
||||
* this sets the credential attribute json_object to a string that
|
||||
* replicates an empty json blob as CodeMirror expects a string
|
||||
*/
|
||||
const typeSpecificAttrs = {};
|
||||
switch (type) {
|
||||
case 'json':
|
||||
typeSpecificAttrs.json_object = '{}';
|
||||
}
|
||||
|
||||
return this.store.createRecord('credential', {
|
||||
type,
|
||||
credential_store_id,
|
||||
name,
|
||||
description,
|
||||
json_object,
|
||||
...typeSpecificAttrs,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -166,6 +166,24 @@ module(
|
||||
assert.strictEqual(getCredentialsCount(), credentialsCount);
|
||||
});
|
||||
|
||||
test('users can switch away from JSON type credentials and the json_object value will be cleared', async function (assert) {
|
||||
assert.expect(2);
|
||||
const editorSelector = '[data-test-code-editor-field-editor]';
|
||||
const newSecret = '{"test": "value"}';
|
||||
|
||||
await visit(urls.credentials);
|
||||
await click(`[href="${urls.newCredential}"]`);
|
||||
await click('[value="json"]');
|
||||
|
||||
await fillIn(`${editorSelector} textarea`, newSecret);
|
||||
assert.dom(editorSelector).includesText(newSecret);
|
||||
|
||||
await click('[value="username_password"]');
|
||||
|
||||
await click('[value="json"]');
|
||||
assert.dom(editorSelector).includesText('{}');
|
||||
});
|
||||
|
||||
test('users cannot navigate to new credential route without proper authorization', async function (assert) {
|
||||
assert.expect(2);
|
||||
instances.staticCredentialStore.authorized_collection_actions.credentials =
|
||||
|
||||
Reference in new issue
Block a user