diff --git a/ui/admin/app/components/form/field/secret-input/index.hbs b/ui/admin/app/components/form/field/secret-input/index.hbs
index 3b45d9e12..c3c1ab1a0 100644
--- a/ui/admin/app/components/form/field/secret-input/index.hbs
+++ b/ui/admin/app/components/form/field/secret-input/index.hbs
@@ -3,7 +3,7 @@
SPDX-License-Identifier: MPL-2.0
}}
-
+
{{#if (or this.isDisabled this.isActionable)}}
{{/if}}
@@ -15,7 +15,6 @@
name={{@name}}
disabled={{or @isDisabled (not this.isEditing)}}
@hasVisibilityToggle={{false}}
- ...attributes
as |F|
>
{{yield F}}
diff --git a/ui/admin/app/components/form/storage-bucket/aws/index.hbs b/ui/admin/app/components/form/storage-bucket/aws/index.hbs
index 7397d762b..f7c1cf71d 100644
--- a/ui/admin/app/components/form/storage-bucket/aws/index.hbs
+++ b/ui/admin/app/components/form/storage-bucket/aws/index.hbs
@@ -302,6 +302,7 @@
@isDisabled={{form.disabled}}
@showEditButton={{true}}
@cancel={{fn @rollbackSecretAttrs 'access_key_id'}}
+ data-test-access-key-id
{{on 'input' (set-from-event @model 'access_key_id')}}
as |F|
>
@@ -322,6 +323,7 @@
@isDisabled={{form.disabled}}
@showEditButton={{true}}
@cancel={{fn @rollbackSecretAttrs 'secret_access_key'}}
+ data-test-secret-access-key
{{on 'input' (set-from-event @model 'secret_access_key')}}
as |F|
>
diff --git a/ui/admin/app/components/form/storage-bucket/minio/index.hbs b/ui/admin/app/components/form/storage-bucket/minio/index.hbs
index 9a3196a69..ad494f593 100644
--- a/ui/admin/app/components/form/storage-bucket/minio/index.hbs
+++ b/ui/admin/app/components/form/storage-bucket/minio/index.hbs
@@ -276,6 +276,7 @@
@isDisabled={{form.disabled}}
@showEditButton={{true}}
@cancel={{fn @rollbackSecretAttrs 'access_key_id'}}
+ data-test-access-key-id
{{on 'input' (set-from-event @model 'access_key_id')}}
as |F|
>
@@ -296,6 +297,7 @@
@isDisabled={{form.disabled}}
@showEditButton={{true}}
@cancel={{fn @rollbackSecretAttrs 'secret_access_key'}}
+ data-test-secret-access-key
{{on 'input' (set-from-event @model 'secret_access_key')}}
as |F|
>
diff --git a/ui/admin/tests/acceptance/storage-buckets/create-test.js b/ui/admin/tests/acceptance/storage-buckets/create-test.js
index 3c03607d3..d9ea5995d 100644
--- a/ui/admin/tests/acceptance/storage-buckets/create-test.js
+++ b/ui/admin/tests/acceptance/storage-buckets/create-test.js
@@ -10,6 +10,7 @@ import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
import a11yAudit from 'ember-a11y-testing/test-support/audit';
import { Response } from 'miragejs';
import { authenticateSession } from 'ember-simple-auth/test-support';
+import * as selectors from './selectors';
module('Acceptance | storage-buckets | create', function (hooks) {
setupApplicationTest(hooks);
@@ -18,25 +19,6 @@ module('Acceptance | storage-buckets | create', function (hooks) {
let features;
let getStorageBucketCount;
- const SAVE_BTN_SELECTOR = '[type="submit"]';
- const CANCEL_BTN_SELECTOR = '.rose-form-actions [type="button"]';
- const NAME_FIELD_SELECTOR = '[name="name"]';
- const ALERT_TEXT_SELECTOR = '[role="alert"] div';
- const FIELD_ERROR_TEXT_SELECTOR = '.hds-form-error__message';
- const NAME_FIELD_TEXT = 'random string';
- const BUCKET_NAME_FIELD_SELECTOR = '[name="bucket_name"]';
- const BUCKET_PREFIX_FIELD_SELECTOR = '[name="bucket_prefix"]';
- const STATIC_CREDENTIAL_SELECTOR = '[value="static"]';
- const DYNAMIC_CREDENTIAL_SELECTOR = '[value="dynamic"]';
- const ROLE_ARN_SELECTOR = '[name="role_arn"]';
- const ACCESS_KEY_SELECTOR = '[name="access_key_id"]';
- const SECRET_KEY_SELECTOR = '[name="secret_access_key"]';
- const SCOPE_SELECTOR = '[name=scope]';
- const CREDENTIAL_TYPE_GROUP_SELECTOR = '[name=credential_type]';
- const MINIO_PLUGIN_TYPE_SELECTOR = '[value=minio]';
- const ENDPOINT_URL_SELECTOR = '[name=endpoint_url]';
- const ENDPOINT_URL_TEXT = 'http://www.hashicorp.com';
-
const instances = {
scopes: {
global: null,
@@ -72,20 +54,20 @@ module('Acceptance | storage-buckets | create', function (hooks) {
await visit(urls.storageBuckets);
await click(`[href="${urls.newStorageBucket}"]`);
- await fillIn(NAME_FIELD_SELECTOR, NAME_FIELD_TEXT);
- await select(SCOPE_SELECTOR, 'global');
+ await fillIn(selectors.FIELD_NAME, selectors.FIELD_NAME_VALUE);
+ await select(selectors.FIELD_SCOPE, 'global');
- assert.dom(BUCKET_NAME_FIELD_SELECTOR).isNotDisabled();
- assert.dom(BUCKET_PREFIX_FIELD_SELECTOR).isNotDisabled();
- assert.dom(BUCKET_NAME_FIELD_SELECTOR).doesNotHaveAttribute('readOnly');
- assert.dom(BUCKET_PREFIX_FIELD_SELECTOR).doesNotHaveAttribute('readOnly');
+ assert.dom(selectors.FIELD_BUCKET_NAME).isNotDisabled();
+ assert.dom(selectors.FIELD_BUCKET_PREFIX).isNotDisabled();
+ assert.dom(selectors.FIELD_BUCKET_NAME).doesNotHaveAttribute('readOnly');
+ assert.dom(selectors.FIELD_BUCKET_PREFIX).doesNotHaveAttribute('readOnly');
- await click(SAVE_BTN_SELECTOR);
+ await click(selectors.SAVE_BTN);
const storageBucket = this.server.schema.storageBuckets.findBy({
- name: NAME_FIELD_TEXT,
+ name: selectors.FIELD_NAME_VALUE,
});
- assert.strictEqual(storageBucket.name, NAME_FIELD_TEXT);
+ assert.strictEqual(storageBucket.name, selectors.FIELD_NAME_VALUE);
assert.strictEqual(storageBucket.scopeId, 'global');
assert.strictEqual(getStorageBucketCount(), storageBucketCount + 1);
});
@@ -95,21 +77,21 @@ module('Acceptance | storage-buckets | create', function (hooks) {
await visit(urls.storageBuckets);
await click(`[href="${urls.newStorageBucket}"]`);
- await fillIn(NAME_FIELD_SELECTOR, NAME_FIELD_TEXT);
- await select(SCOPE_SELECTOR, instances.scopes.org.id);
+ await fillIn(selectors.FIELD_NAME, selectors.FIELD_NAME_VALUE);
+ await select(selectors.FIELD_SCOPE, instances.scopes.org.id);
- assert.dom(BUCKET_NAME_FIELD_SELECTOR).isNotDisabled();
- assert.dom(BUCKET_PREFIX_FIELD_SELECTOR).isNotDisabled();
- assert.dom(BUCKET_NAME_FIELD_SELECTOR).doesNotHaveAttribute('readOnly');
- assert.dom(BUCKET_PREFIX_FIELD_SELECTOR).doesNotHaveAttribute('readOnly');
+ assert.dom(selectors.FIELD_BUCKET_NAME).isNotDisabled();
+ assert.dom(selectors.FIELD_BUCKET_PREFIX).isNotDisabled();
+ assert.dom(selectors.FIELD_BUCKET_NAME).doesNotHaveAttribute('readOnly');
+ assert.dom(selectors.FIELD_BUCKET_PREFIX).doesNotHaveAttribute('readOnly');
- await click(SAVE_BTN_SELECTOR);
+ await click(selectors.SAVE_BTN);
const storageBucket = this.server.schema.storageBuckets.findBy({
- name: NAME_FIELD_TEXT,
+ name: selectors.FIELD_NAME_VALUE,
});
- assert.dom(ALERT_TEXT_SELECTOR).hasText('Saved successfully.');
- assert.strictEqual(storageBucket.name, NAME_FIELD_TEXT);
+ assert.dom(selectors.TOAST).hasText(selectors.TOAST_SUCCESSFULL_VALUE);
+ assert.strictEqual(storageBucket.name, selectors.FIELD_NAME_VALUE);
assert.strictEqual(storageBucket.scopeId, instances.scopes.org.id);
assert.strictEqual(getStorageBucketCount(), storageBucketCount + 1);
});
@@ -122,24 +104,30 @@ module('Acceptance | storage-buckets | create', function (hooks) {
await click(`[href="${urls.newStorageBucket}"]`);
// Fill the form
- await fillIn(NAME_FIELD_SELECTOR, NAME_FIELD_TEXT);
- await click(MINIO_PLUGIN_TYPE_SELECTOR);
- await select(SCOPE_SELECTOR, instances.scopes.org.id);
- await fillIn(ENDPOINT_URL_SELECTOR, ENDPOINT_URL_TEXT);
- await fillIn(BUCKET_NAME_FIELD_SELECTOR, 'Test SB');
- await fillIn(ACCESS_KEY_SELECTOR, 'access_key_id');
- await fillIn(SECRET_KEY_SELECTOR, 'secret_access_key');
- await click(SAVE_BTN_SELECTOR);
+ await fillIn(selectors.FIELD_NAME, selectors.FIELD_NAME_VALUE);
+ await click(selectors.FIELD_PLUGIN_TYPE_MINIO);
+ await select(selectors.FIELD_SCOPE, instances.scopes.org.id);
+ await fillIn(
+ selectors.FIELD_ENDPOINT_URL,
+ selectors.FIELD_ENDPOINT_URL_VALUE,
+ );
+ await fillIn(
+ selectors.FIELD_BUCKET_NAME,
+ selectors.FIELD_BUCKET_NAME_VALUE,
+ );
+ await fillIn(selectors.FIELD_ACCESS_KEY, selectors.FIELD_ACCESS_KEY_VALUE);
+ await fillIn(selectors.FIELD_SECRET_KEY, selectors.FIELD_SECRET_KEY_VALUE);
+ await click(selectors.SAVE_BTN);
// Assertions
const storageBucket = this.server.schema.storageBuckets.findBy({
- name: NAME_FIELD_TEXT,
+ name: selectors.FIELD_NAME_VALUE,
});
- assert.dom(ALERT_TEXT_SELECTOR).hasText('Saved successfully.');
- assert.strictEqual(storageBucket.name, NAME_FIELD_TEXT);
+ assert.dom(selectors.TOAST).hasText(selectors.TOAST_SUCCESSFULL_VALUE);
+ assert.strictEqual(storageBucket.name, selectors.FIELD_NAME_VALUE);
assert.strictEqual(
storageBucket.attributes.endpoint_url,
- ENDPOINT_URL_TEXT,
+ selectors.FIELD_ENDPOINT_URL_VALUE,
);
assert.strictEqual(storageBucket.attributes.role_arn, null);
assert.strictEqual(storageBucket.plugin.name, 'minio');
@@ -152,22 +140,22 @@ module('Acceptance | storage-buckets | create', function (hooks) {
await visit(urls.storageBuckets);
await click(`[href="${urls.newStorageBucket}"]`);
- await fillIn(NAME_FIELD_SELECTOR, NAME_FIELD_TEXT);
+ await fillIn(selectors.FIELD_NAME, selectors.FIELD_NAME_VALUE);
// There are 2 credential types
assert
- .dom(`${CREDENTIAL_TYPE_GROUP_SELECTOR} .hds-form-radio-card`)
+ .dom(`${selectors.GROUP_CREDENTIAL_TYPE} .hds-form-radio-card`)
.exists({ count: 2 });
- await click(DYNAMIC_CREDENTIAL_SELECTOR);
- await fillIn(ROLE_ARN_SELECTOR, 'test-arn-id');
+ await click(selectors.FIELD_DYNAMIC_CREDENTIAL);
+ await fillIn(selectors.FIELD_ROLE_ARN, selectors.FIELD_ROLE_ARN_VALUE);
- await click(SAVE_BTN_SELECTOR);
+ await click(selectors.SAVE_BTN);
const storageBucket = this.server.schema.storageBuckets.findBy({
- name: NAME_FIELD_TEXT,
+ name: selectors.FIELD_NAME_VALUE,
});
- assert.strictEqual(storageBucket.name, NAME_FIELD_TEXT);
+ assert.strictEqual(storageBucket.name, selectors.FIELD_NAME_VALUE);
//for dynamic credentials, there should be no secret field
assert.notOk(storageBucket.secret);
assert.strictEqual(getStorageBucketCount(), storageBucketCount + 1);
@@ -178,22 +166,22 @@ module('Acceptance | storage-buckets | create', function (hooks) {
await visit(urls.storageBuckets);
await click(`[href="${urls.newStorageBucket}"]`);
- await fillIn(NAME_FIELD_SELECTOR, NAME_FIELD_TEXT);
+ await fillIn(selectors.FIELD_NAME, selectors.FIELD_NAME_VALUE);
assert
- .dom(`${CREDENTIAL_TYPE_GROUP_SELECTOR} .hds-form-radio-card`)
+ .dom(`${selectors.GROUP_CREDENTIAL_TYPE} .hds-form-radio-card`)
.exists({ count: 2 });
- await click(STATIC_CREDENTIAL_SELECTOR);
- await fillIn(ACCESS_KEY_SELECTOR, 'access_key_id');
- await fillIn(SECRET_KEY_SELECTOR, 'secret_access_key');
+ await click(selectors.FIELD_STATIC_CREDENTIAL);
+ await fillIn(selectors.FIELD_ACCESS_KEY, selectors.FIELD_ACCESS_KEY_VALUE);
+ await fillIn(selectors.FIELD_SECRET_KEY, selectors.FIELD_SECRET_KEY_VALUE);
- await click(SAVE_BTN_SELECTOR);
+ await click(selectors.SAVE_BTN);
const storageBucket = this.server.schema.storageBuckets.findBy({
- name: NAME_FIELD_TEXT,
+ name: selectors.FIELD_NAME_VALUE,
});
- assert.strictEqual(storageBucket.name, NAME_FIELD_TEXT);
+ assert.strictEqual(storageBucket.name, selectors.FIELD_NAME_VALUE);
//for static credentials, role_arn should be null
assert.strictEqual(storageBucket.attributes.role_arn, null);
assert.strictEqual(getStorageBucketCount(), storageBucketCount + 1);
@@ -207,25 +195,31 @@ module('Acceptance | storage-buckets | create', function (hooks) {
await click(`[href="${urls.newStorageBucket}"]`);
// Fill the form
- await fillIn(NAME_FIELD_SELECTOR, NAME_FIELD_TEXT);
- await click(MINIO_PLUGIN_TYPE_SELECTOR);
- await fillIn(ENDPOINT_URL_SELECTOR, ENDPOINT_URL_TEXT);
- await fillIn(BUCKET_NAME_FIELD_SELECTOR, 'Test SB');
- await fillIn(ACCESS_KEY_SELECTOR, 'access_key_id');
- await fillIn(SECRET_KEY_SELECTOR, 'secret_access_key');
+ await fillIn(selectors.FIELD_NAME, selectors.FIELD_NAME_VALUE);
+ await click(selectors.FIELD_PLUGIN_TYPE_MINIO);
+ await fillIn(
+ selectors.FIELD_ENDPOINT_URL,
+ selectors.FIELD_ENDPOINT_URL_VALUE,
+ );
+ await fillIn(
+ selectors.FIELD_BUCKET_NAME,
+ selectors.FIELD_BUCKET_NAME_VALUE,
+ );
+ await fillIn(selectors.FIELD_ACCESS_KEY, selectors.FIELD_ACCESS_KEY_VALUE);
+ await fillIn(selectors.FIELD_SECRET_KEY, selectors.FIELD_SECRET_KEY_VALUE);
- await click(SAVE_BTN_SELECTOR);
+ await click(selectors.SAVE_BTN);
// Retrieve recently created SB
const storageBucket = await this.server.schema.storageBuckets.findBy({
- name: NAME_FIELD_TEXT,
+ name: selectors.FIELD_NAME_VALUE,
});
// Assertions
- assert.strictEqual(storageBucket.name, NAME_FIELD_TEXT);
+ assert.strictEqual(storageBucket.name, selectors.FIELD_NAME_VALUE);
assert.strictEqual(
storageBucket.attributes.endpoint_url,
- ENDPOINT_URL_TEXT,
+ selectors.FIELD_ENDPOINT_URL_VALUE,
);
assert.strictEqual(storageBucket.attributes.role_arn, null);
assert.strictEqual(storageBucket.plugin.name, 'minio');
@@ -238,8 +232,9 @@ module('Acceptance | storage-buckets | create', function (hooks) {
await visit(urls.storageBuckets);
await click(`[href="${urls.newStorageBucket}"]`);
- await fillIn(NAME_FIELD_SELECTOR, NAME_FIELD_TEXT);
- await click(CANCEL_BTN_SELECTOR);
+ await fillIn(selectors.FIELD_NAME, selectors.FIELD_NAME_VALUE);
+
+ await click(selectors.CANCEL_BTN);
assert.strictEqual(currentURL(), urls.storageBuckets);
assert.strictEqual(getStorageBucketCount(), storageBucketCount);
@@ -257,8 +252,8 @@ module('Acceptance | storage-buckets | create', function (hooks) {
details: {
request_fields: [
{
- name: 'name',
- description: 'Name is required.',
+ name: 'bucket_name',
+ description: 'This is a required field.',
},
],
},
@@ -268,11 +263,13 @@ module('Acceptance | storage-buckets | create', function (hooks) {
await visit(urls.storageBuckets);
await click(`[href="${urls.newStorageBucket}"]`);
- await click(SAVE_BTN_SELECTOR);
+ await click(selectors.SAVE_BTN);
await a11yAudit();
- assert.dom(ALERT_TEXT_SELECTOR).hasText('The request was invalid.');
- assert.dom(FIELD_ERROR_TEXT_SELECTOR).hasText('Name is required.');
+ assert.dom(selectors.TOAST).hasText('The request was invalid.');
+ assert
+ .dom(selectors.FIELD_BUCKET_NAME_ERROR)
+ .hasText('This is a required field.');
});
test('users cannot directly navigate to new storage bucket route without proper authorization', async function (assert) {
diff --git a/ui/admin/tests/acceptance/storage-buckets/selectors.js b/ui/admin/tests/acceptance/storage-buckets/selectors.js
new file mode 100644
index 000000000..98803cc1c
--- /dev/null
+++ b/ui/admin/tests/acceptance/storage-buckets/selectors.js
@@ -0,0 +1,32 @@
+export const SAVE_BTN = '[type=submit]';
+export const CANCEL_BTN = '.rose-form-actions [type=button]';
+export const EDIT_BTN = '.rose-form-actions [type=button]';
+export const FIELD_NAME = '[name=name]';
+export const FIELD_NAME_VALUE = 'Random name';
+export const FIELD_SCOPE = '[name=scope]';
+export const FIELD_PLUGIN_TYPE = '[name=plugin_type]';
+export const FIELD_PLUGIN_TYPE_MINIO = '[value=minio]'; // Provider
+export const FIELD_ENDPOINT_URL = '[name=endpoint_url]';
+export const FIELD_ENDPOINT_URL_VALUE = 'http://www.hashicorp.com';
+export const FIELD_BUCKET_NAME = '[name=bucket_name]';
+export const FIELD_BUCKET_NAME_VALUE = 'Test Bucket name';
+export const FIELD_BUCKET_NAME_ERROR = '[data-test-bucket-name-error]';
+export const FIELD_BUCKET_PREFIX = '[name=bucket_prefix]';
+export const FIELD_REGION = '[name=region]';
+export const GROUP_CREDENTIAL_TYPE = '[name=credential_type]';
+export const FIELD_STATIC_CREDENTIAL = '[value=static]';
+export const FIELD_DYNAMIC_CREDENTIAL = '[value=dynamic]';
+export const FIELD_ROLE_ARN = '[name=role_arn]';
+export const FIELD_ROLE_ARN_VALUE = 'test-arn-id';
+export const FIELD_ACCESS_KEY = '[name=access_key_id]';
+export const FIELD_ACCESS_KEY_EDIT_BTN =
+ '[data-test-access-key-id] [type=button]';
+export const FIELD_ACCESS_KEY_VALUE = '45$#@%!783528';
+export const FIELD_SECRET_KEY = '[name=secret_access_key] ';
+export const FIELD_SECRET_KEY_VALUE = '87^%$#@^86382';
+export const FIELD_SECRET_KEY_EDIT_BTN =
+ '[data-test-secret-access-key] [type=button]';
+export const FIELD_WORKER_FILTER = '[name=worker_filter]';
+export const FIELD_WORKER_FILTER_ERROR = '[data-test-worker-filter-error]';
+export const TOAST = '[role=alert] div';
+export const TOAST_SUCCESSFULL_VALUE = 'Saved successfully.';
diff --git a/ui/admin/tests/acceptance/storage-buckets/update-test.js b/ui/admin/tests/acceptance/storage-buckets/update-test.js
index 253d1b4ce..779cf4bf1 100644
--- a/ui/admin/tests/acceptance/storage-buckets/update-test.js
+++ b/ui/admin/tests/acceptance/storage-buckets/update-test.js
@@ -4,11 +4,12 @@
*/
import { module, test } from 'qunit';
-import { visit, click, fillIn, findAll } from '@ember/test-helpers';
+import { visit, click, fillIn } from '@ember/test-helpers';
import { setupApplicationTest } from 'ember-qunit';
import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
import { Response } from 'miragejs';
import { authenticateSession } from 'ember-simple-auth/test-support';
+import * as selectors from './selectors';
module('Acceptance | storage-buckets | update', function (hooks) {
setupApplicationTest(hooks);
@@ -16,26 +17,6 @@ module('Acceptance | storage-buckets | update', function (hooks) {
let features;
- const BUTTON_SELECTOR = '.rose-form-actions [type="button"]';
- const SAVE_BUTTON_SELECTOR = '.rose-form-actions [type="submit"]';
- const NAME_FIELD_SELECTOR = '[name="name"]';
- const ALERT_TEXT_SELECTOR = '[role="alert"] div';
- const SECRET_FIELD_BUTTON_SELECTOR = '.secret-input [type="button"]';
- const ACCESS_KEY_ID_FIELD_SELECTOR = '[name="access_key_id"]';
- const SECRET_ACCESS_KEY_FIELD_SELECTOR = '[name="secret_access_key"]';
- const NAME_FIELD_TEXT = 'Updated storage-bucket name';
- const ACCESS_KEY_ID_FIELD_TEXT = 'Updated access key id';
- const SECRET_ACCESS_KEY_FIELD_TEXT = 'Update secret access key';
- const BUCKET_NAME_FIELD_SELECTOR = '[name="bucket_name"]';
- const BUCKET_PREFIX_FIELD_SELECTOR = '[name="bucket_prefix"]';
- const WORKER_FILTER = '[name="worker_filter"]';
- const FIELD_STORAGE_BUCKET_NAME_ERROR = '[data-test-bucket-name-error]';
- const FIELD_WORKER_FILTER_ERROR = '[data-test-worker-filter-error]';
- const FIELD_REGION = '[name=region]';
- const FIELD_PROVIDER = '[name=plugin_type]';
- const FIELD_ENDPOINT_URL = '[name=endpoint_url]';
- const FIELD_SCOPE = '[name=scope]';
-
const instances = {
scopes: {
global: null,
@@ -72,13 +53,16 @@ module('Acceptance | storage-buckets | update', function (hooks) {
await visit(urls.storageBuckets);
await click(`[href="${urls.storageBucket}"]`);
- await click(BUTTON_SELECTOR, 'Click edit mode');
- await fillIn(NAME_FIELD_SELECTOR, NAME_FIELD_TEXT);
- await click(SAVE_BUTTON_SELECTOR, 'Click save');
+ await click(selectors.EDIT_BTN, 'Click edit mode');
+ await fillIn(selectors.FIELD_NAME, selectors.FIELD_NAME_VALUE);
+ await click(selectors.SAVE_BTN, 'Click save');
assert.dom(`[href="${urls.storageBucket}"]`).isVisible();
- assert.dom(NAME_FIELD_SELECTOR).hasValue(NAME_FIELD_TEXT);
- assert.strictEqual(instances.storageBucket.name, NAME_FIELD_TEXT);
+ assert.dom(selectors.FIELD_NAME).hasValue(selectors.FIELD_NAME_VALUE);
+ assert.strictEqual(
+ instances.storageBucket.name,
+ selectors.FIELD_NAME_VALUE,
+ );
});
test('can cancel changes to an existing storage-bucket', async function (assert) {
@@ -86,11 +70,11 @@ module('Acceptance | storage-buckets | update', function (hooks) {
await visit(urls.storageBuckets);
await click(`[href="${urls.storageBucket}"]`);
- await click(BUTTON_SELECTOR, 'Click edit mode');
- await fillIn(NAME_FIELD_SELECTOR, NAME_FIELD_TEXT);
- await click(BUTTON_SELECTOR, 'Click cancel');
+ await click(selectors.EDIT_BTN, 'Click edit mode');
+ await fillIn(selectors.FIELD_NAME, selectors.FIELD_NAME_VALUE);
+ await click(selectors.CANCEL_BTN, 'Click cancel');
- assert.dom(NAME_FIELD_SELECTOR).hasValue(`${name}`);
+ assert.dom(selectors.FIELD_NAME).hasValue(`${name}`);
assert.strictEqual(instances.storageBucket.name, name);
});
@@ -98,55 +82,58 @@ module('Acceptance | storage-buckets | update', function (hooks) {
await visit(urls.storageBuckets);
await click(`[href="${urls.storageBucket}"]`);
+ assert.dom(selectors.FIELD_ACCESS_KEY_EDIT_BTN).exists();
+ assert.dom(selectors.FIELD_SECRET_KEY_EDIT_BTN).exists();
- assert.dom(SECRET_FIELD_BUTTON_SELECTOR).exists({ count: 2 });
+ assert.dom(selectors.FIELD_ACCESS_KEY_EDIT_BTN).isDisabled();
+ assert.dom(selectors.FIELD_SECRET_KEY_EDIT_BTN).isDisabled();
- assert.dom(SECRET_FIELD_BUTTON_SELECTOR).isDisabled();
+ await click(selectors.EDIT_BTN, 'Click edit mode');
- await click(BUTTON_SELECTOR, 'Click edit mode');
+ assert.dom(selectors.FIELD_ACCESS_KEY_EDIT_BTN).isEnabled();
+ assert.dom(selectors.FIELD_SECRET_KEY_EDIT_BTN).isEnabled();
- assert.dom(SECRET_FIELD_BUTTON_SELECTOR).isEnabled();
- assert.dom(SECRET_FIELD_BUTTON_SELECTOR).hasText('Edit');
+ assert.dom(selectors.FIELD_ACCESS_KEY_EDIT_BTN).hasText('Edit');
+ assert.dom(selectors.FIELD_SECRET_KEY_EDIT_BTN).hasText('Edit');
- await click(SECRET_FIELD_BUTTON_SELECTOR);
- await click(findAll(SECRET_FIELD_BUTTON_SELECTOR)[1]);
+ await click(selectors.FIELD_ACCESS_KEY_EDIT_BTN);
+ assert.dom(selectors.FIELD_ACCESS_KEY_EDIT_BTN).hasText('Cancel');
+ await click(selectors.FIELD_SECRET_KEY_EDIT_BTN);
+ assert.dom(selectors.FIELD_SECRET_KEY_EDIT_BTN).hasText('Cancel');
- assert.dom(SECRET_FIELD_BUTTON_SELECTOR).hasText('Cancel');
+ await fillIn(selectors.FIELD_ACCESS_KEY, selectors.FIELD_ACCESS_KEY_VALUE);
+ await fillIn(selectors.FIELD_SECRET_KEY, selectors.FIELD_SECRET_KEY_VALUE);
- await fillIn(ACCESS_KEY_ID_FIELD_SELECTOR, ACCESS_KEY_ID_FIELD_TEXT);
- await fillIn(
- SECRET_ACCESS_KEY_FIELD_SELECTOR,
- SECRET_ACCESS_KEY_FIELD_TEXT,
- );
- await click(SAVE_BUTTON_SELECTOR, 'Click save');
+ await click(selectors.SAVE_BTN, 'Click save');
- assert.dom(SECRET_FIELD_BUTTON_SELECTOR).isDisabled();
- assert.dom(ACCESS_KEY_ID_FIELD_SELECTOR).hasNoValue();
- assert.dom(SECRET_ACCESS_KEY_FIELD_SELECTOR).hasNoValue();
+ assert.dom(selectors.FIELD_ACCESS_KEY_EDIT_BTN).isDisabled();
+ assert.dom(selectors.FIELD_SECRET_KEY_EDIT_BTN).isDisabled();
+
+ assert.dom(selectors.FIELD_ACCESS_KEY).hasNoValue();
+ assert.dom(selectors.FIELD_SECRET_KEY).hasNoValue();
});
test('can cancel changes to access key fields', async function (assert) {
await visit(urls.storageBuckets);
await click(`[href="${urls.storageBucket}"]`);
- await click(BUTTON_SELECTOR, 'Click edit mode');
- await click(SECRET_FIELD_BUTTON_SELECTOR, 'Click edit button');
- await click(findAll(SECRET_FIELD_BUTTON_SELECTOR)[1], 'Click edit button');
- await fillIn(ACCESS_KEY_ID_FIELD_SELECTOR, ACCESS_KEY_ID_FIELD_TEXT);
- await fillIn(
- SECRET_ACCESS_KEY_FIELD_SELECTOR,
- SECRET_ACCESS_KEY_FIELD_TEXT,
- );
- await click(SECRET_FIELD_BUTTON_SELECTOR, 'Click cancel button');
- await click(
- findAll(SECRET_FIELD_BUTTON_SELECTOR)[1],
- 'Click cancel button',
- );
- await click(SAVE_BUTTON_SELECTOR, 'Click save');
+ await click(selectors.EDIT_BTN, 'Click edit mode');
+ await click(selectors.FIELD_ACCESS_KEY_EDIT_BTN);
+ await click(selectors.FIELD_SECRET_KEY_EDIT_BTN);
- assert.dom(SECRET_FIELD_BUTTON_SELECTOR).isDisabled();
- assert.dom(ACCESS_KEY_ID_FIELD_SELECTOR).hasNoValue();
- assert.dom(SECRET_ACCESS_KEY_FIELD_SELECTOR).hasNoValue();
+ await fillIn(selectors.FIELD_ACCESS_KEY, selectors.FIELD_ACCESS_KEY_VALUE);
+ await fillIn(selectors.FIELD_SECRET_KEY, selectors.FIELD_SECRET_KEY_VALUE);
+
+ await click(selectors.FIELD_ACCESS_KEY_EDIT_BTN, 'Click cancel button');
+ await click(selectors.FIELD_SECRET_KEY_EDIT_BTN, 'Click cancel button');
+
+ await click(selectors.SAVE_BTN, 'Click save');
+
+ assert.dom(selectors.FIELD_ACCESS_KEY_EDIT_BTN).isDisabled();
+ assert.dom(selectors.FIELD_SECRET_KEY_EDIT_BTN).isDisabled();
+
+ assert.dom(selectors.FIELD_ACCESS_KEY).hasNoValue();
+ assert.dom(selectors.FIELD_SECRET_KEY).hasNoValue();
});
test('saving an existing storage-bucket with invalid fields will display error messages', async function (assert) {
@@ -176,15 +163,17 @@ module('Acceptance | storage-buckets | update', function (hooks) {
});
await click(`[href="${urls.storageBucket}"]`);
- await click(BUTTON_SELECTOR, 'Activate edit mode');
- await fillIn(WORKER_FILTER, 'random string');
- await click(SAVE_BUTTON_SELECTOR);
+ await click(selectors.EDIT_BTN, 'Activate edit mode');
+ await fillIn(selectors.FIELD_WORKER_FILTER, 'random string');
+ await click(selectors.SAVE_BTN);
- assert.dom(ALERT_TEXT_SELECTOR).hasText('The request was invalid.');
+ assert.dom(selectors.TOAST).hasText('The request was invalid.');
assert
- .dom(FIELD_STORAGE_BUCKET_NAME_ERROR)
+ .dom(selectors.FIELD_BUCKET_NAME_ERROR)
.hasText('This is a required field.');
- assert.dom(FIELD_WORKER_FILTER_ERROR).hasText('Worker filter is required.');
+ assert
+ .dom(selectors.FIELD_WORKER_FILTER_ERROR)
+ .hasText('Worker filter is required.');
});
test('user cannot edit scope, provider, bucket name, bucket prefix and region fields in a Amazon S3 storage bucket form', async function (assert) {
@@ -192,19 +181,19 @@ module('Acceptance | storage-buckets | update', function (hooks) {
await click(`[href="${urls.storageBucket}"]`);
- assert.dom(BUCKET_NAME_FIELD_SELECTOR).isDisabled();
- assert.dom(BUCKET_PREFIX_FIELD_SELECTOR).isDisabled();
+ assert.dom(selectors.FIELD_BUCKET_NAME).isDisabled();
+ assert.dom(selectors.FIELD_BUCKET_PREFIX).isDisabled();
- await click(BUTTON_SELECTOR, 'Click edit mode');
+ await click(selectors.EDIT_BTN, 'Click edit mode');
- assert.dom(FIELD_SCOPE).doesNotExist();
- assert.dom(FIELD_PROVIDER).isDisabled();
- assert.dom(BUCKET_NAME_FIELD_SELECTOR).hasAttribute('readOnly');
- assert.dom(BUCKET_PREFIX_FIELD_SELECTOR).hasAttribute('readOnly');
- assert.dom(FIELD_REGION).hasAttribute('readOnly');
- assert.dom(BUCKET_NAME_FIELD_SELECTOR).isNotDisabled();
- assert.dom(BUCKET_PREFIX_FIELD_SELECTOR).isNotDisabled();
- assert.dom(FIELD_REGION).isNotDisabled();
+ assert.dom(selectors.FIELD_SCOPE).doesNotExist();
+ assert.dom(selectors.FIELD_PLUGIN_TYPE).isDisabled();
+ assert.dom(selectors.FIELD_BUCKET_NAME).hasAttribute('readOnly');
+ assert.dom(selectors.FIELD_BUCKET_PREFIX).hasAttribute('readOnly');
+ assert.dom(selectors.FIELD_REGION).hasAttribute('readOnly');
+ assert.dom(selectors.FIELD_BUCKET_NAME).isNotDisabled();
+ assert.dom(selectors.FIELD_BUCKET_PREFIX).isNotDisabled();
+ assert.dom(selectors.FIELD_REGION).isNotDisabled();
});
test('user cannot edit scope, provider, endpoint_url, bucket name or region fields in a MinIO storage bucket', async function (assert) {
@@ -212,14 +201,14 @@ module('Acceptance | storage-buckets | update', function (hooks) {
await click(`[href="${urls.storageBucketMinio}"]`);
- assert.dom(BUCKET_NAME_FIELD_SELECTOR).isDisabled();
+ assert.dom(selectors.FIELD_BUCKET_NAME).isDisabled();
- await click(BUTTON_SELECTOR, 'Click edit mode');
+ await click(selectors.EDIT_BTN, 'Click edit mode');
- assert.dom(FIELD_SCOPE).doesNotExist();
- assert.dom(FIELD_PROVIDER).isDisabled();
- assert.dom(FIELD_ENDPOINT_URL).isNotDisabled();
- assert.dom(BUCKET_NAME_FIELD_SELECTOR).hasAttribute('readOnly');
- assert.dom(FIELD_REGION).hasAttribute('readOnly');
+ assert.dom(selectors.FIELD_SCOPE).doesNotExist();
+ assert.dom(selectors.FIELD_PLUGIN_TYPE).isDisabled();
+ assert.dom(selectors.FIELD_ENDPOINT_URL).isNotDisabled();
+ assert.dom(selectors.FIELD_BUCKET_NAME).hasAttribute('readOnly');
+ assert.dom(selectors.FIELD_REGION).hasAttribute('readOnly');
});
});