diff --git a/addons/api/addon/models/storage-bucket.js b/addons/api/addon/models/storage-bucket.js index 6f7d1b28e..8a1a4f1f7 100644 --- a/addons/api/addon/models/storage-bucket.js +++ b/addons/api/addon/models/storage-bucket.js @@ -38,7 +38,13 @@ export default class StorageBucketModel extends GeneratedStorageBucketModel { * @type {string} */ get credentialType() { - if (!this.#credentialType) return 'static'; + if (!this.#credentialType) { + if (this.role_arn) { + this.#credentialType = TYPE_CREDENTIAL_DYNAMIC; + } else { + this.#credentialType = TYPE_CREDENTIAL_STATIC; + } + } return this.#credentialType; } diff --git a/addons/api/tests/unit/models/storage-bucket-test.js b/addons/api/tests/unit/models/storage-bucket-test.js index 81ffa60e3..e88417da5 100644 --- a/addons/api/tests/unit/models/storage-bucket-test.js +++ b/addons/api/tests/unit/models/storage-bucket-test.js @@ -46,7 +46,7 @@ module('Unit | Model | storage bucket', function (hooks) { }); test('it has credentialType property and returns the expected values', async function (assert) { - assert.expect(2); + assert.expect(4); const store = this.owner.lookup('service:store'); const modelA = store.createRecord('storage-bucket', { role_arn: 'test-role-arn', @@ -58,8 +58,18 @@ module('Unit | Model | storage bucket', function (hooks) { access_key_id: 'test-access-key-id', credentialType: TYPE_CREDENTIAL_STATIC, }); + const modelC = store.createRecord('storage-bucket', { + role_arn: null, + access_key_id: 'test-access-key-id', + }); + const modelD = store.createRecord('storage-bucket', { + role_arn: 'test-role-arn', + access_key_id: null, + }); assert.strictEqual(modelA.credentialType, TYPE_CREDENTIAL_DYNAMIC); assert.strictEqual(modelB.credentialType, TYPE_CREDENTIAL_STATIC); + assert.strictEqual(modelC.credentialType, TYPE_CREDENTIAL_STATIC); + assert.strictEqual(modelD.credentialType, TYPE_CREDENTIAL_DYNAMIC); }); test('it has isAWS property and returns the expected values', async function (assert) {