refactor: 💡 fix routing for static credentials from targets (#1347)

* refactor: 💡 fix routing for static credentials from targets

✅ Closes: ICU-6155

* chore: 🤖 Add comment to isStatic credential helper method
This commit is contained in:
Cameron Perera authored and GitHub committed 2022-09-21 15:10:28 -05:00
1 parent 9e55f5f157
commit e6d68c2e4a
4 files changed
+23 -12

No files matched your search

+7 -2
View File
@@ -1,5 +1,4 @@
import GeneratedCredentialModel from '../generated/models/credential';
import { equal } from '@ember/object/computed';
/**
* Supported Credential types.
@@ -9,9 +8,15 @@ export const types = ['username_password', 'ssh_private_key'];
export default class CredentialModel extends GeneratedCredentialModel {
// =attributes
/**
* All Credentials are prefixed with "cred" and are considered
* static due to their relation with Static Credential Stores.
*
* True if credential starts with the "cred" prefix.
* @type {boolean}
*/
@equal('type', 'username_password') isUsernamePassword;
get isStatic() {
return this.id.startsWith('cred');
}
/**
* True if credential is an unknown type.
@@ -10,21 +10,27 @@ module('Unit | Model | credential', function (hooks) {
assert.ok(model);
});
test('it has isUsernamePassword property and returns the expected values', async function (assert) {
assert.expect(2);
test('it has isStatic property and returns the expected values', async function (assert) {
assert.expect(3);
const store = this.owner.lookup('service:store');
const modelA = store.createRecord('credential', { type: 'username_password' });
const modelB = store.createRecord('credential', { type: 'ssh_private_key' });
const modelA = store.createRecord('credential', { id: 'credup_123' });
const modelB = store.createRecord('credential', { id: 'credspk_123' });
const modelC = store.createRecord('credential', { id: 'notstatic_123' });
assert.true(modelA.isUsernamePassword);
assert.false(modelB.isUsernamePassword);
assert.true(modelA.isStatic);
assert.true(modelB.isStatic);
assert.false(modelC.isStatic);
});
test('it has isUnknown property and returns the expected values', async function (assert) {
assert.expect(3);
const store = this.owner.lookup('service:store');
const modelA = store.createRecord('credential', { type: 'username_password' });
const modelB = store.createRecord('credential', { type: 'ssh_private_key' });
const modelA = store.createRecord('credential', {
type: 'username_password',
});
const modelB = store.createRecord('credential', {
type: 'ssh_private_key',
});
const modelC = store.createRecord('credential', { type: 'unknown' });
assert.false(modelA.isUnknown);
@@ -40,7 +40,7 @@
{{#if brokeredCredentialSource.isUnknown}}
{{brokeredCredentialSource.displayName}}
{{else}}
{{#if brokeredCredentialSource.isUsernamePassword}}
{{#if brokeredCredentialSource.isStatic}}
<LinkTo
@route='scopes.scope.credential-stores.credential-store.credentials.credential'
@models={{array
@@ -42,7 +42,7 @@
{{#if injectedApplicationCredentialSource.isUnknown}}
{{injectedApplicationCredentialSource.displayName}}
{{else}}
{{#if injectedApplicationCredentialSource.isUsernamePassword}}
{{#if injectedApplicationCredentialSource.isStatic}}
<LinkTo
@route='scopes.scope.credential-stores.credential-store.credentials.credential'
@models={{array