diff --git a/ui/lib/core/addon/components/string-list.js b/ui/lib/core/addon/components/string-list.js
index bc9f9369d4ce..22eb11d478f2 100644
--- a/ui/lib/core/addon/components/string-list.js
+++ b/ui/lib/core/addon/components/string-list.js
@@ -1,6 +1,7 @@
import ArrayProxy from '@ember/array/proxy';
import Component from '@ember/component';
import { set, computed } from '@ember/object';
+import autosize from 'autosize';
import layout from '../templates/components/string-list';
export default Component.extend({
@@ -85,6 +86,16 @@ export default Component.extend({
this.send('addInput');
},
+ didInsertElement() {
+ this._super(...arguments);
+ autosize(this.element.querySelector('textarea'));
+ },
+
+ didUpdate() {
+ this._super(...arguments);
+ autosize.update(this.element.querySelector('textarea'));
+ },
+
setType() {
const list = this.inputList;
if (!list) {
diff --git a/ui/lib/core/addon/templates/components/string-list.hbs b/ui/lib/core/addon/templates/components/string-list.hbs
index ed0bdf87fbcd..c7e0287bafd1 100644
--- a/ui/lib/core/addon/templates/components/string-list.hbs
+++ b/ui/lib/core/addon/templates/components/string-list.hbs
@@ -12,9 +12,8 @@
{{#each inputList as |data index|}}
- {{input
+ {{textarea
data-test-string-list-input=index
- type="text"
class="input"
value=data.value
name=(concat elementId "-" index)
diff --git a/ui/tests/acceptance/settings/configure-secret-backends/pki/section-urls-test.js b/ui/tests/acceptance/settings/configure-secret-backends/pki/section-urls-test.js
index 76b903dcce42..0e437a281fa0 100644
--- a/ui/tests/acceptance/settings/configure-secret-backends/pki/section-urls-test.js
+++ b/ui/tests/acceptance/settings/configure-secret-backends/pki/section-urls-test.js
@@ -20,7 +20,7 @@ module('Acceptance | settings/configure/secrets/pki/urls', function(hooks) {
await page.form.fields
.objectAt(0)
- .input('foo')
+ .textarea('foo')
.change();
await page.form.submit();
@@ -28,7 +28,7 @@ module('Acceptance | settings/configure/secrets/pki/urls', function(hooks) {
await page.form.fields
.objectAt(0)
- .input('foo.example.com')
+ .textarea('foo.example.com')
.change();
await page.form.submit();
assert.equal(page.lastMessage, 'The urls config for this backend has been updated.');
diff --git a/ui/tests/integration/components/form-field-test.js b/ui/tests/integration/components/form-field-test.js
index d8cc0374a1ef..cdd912797e18 100644
--- a/ui/tests/integration/components/form-field-test.js
+++ b/ui/tests/integration/components/form-field-test.js
@@ -123,7 +123,7 @@ module('Integration | Component | form field', function(hooks) {
await component.fields
.objectAt(0)
- .input('array')
+ .textarea('array')
.change();
assert.deepEqual(model.get('foo'), ['array'], 'sets the value on the model');
assert.deepEqual(spy.args[0], ['foo', ['array']], 'onChange called with correct args');
diff --git a/ui/tests/pages/components/form-field.js b/ui/tests/pages/components/form-field.js
index 15f6d4285aac..bbf5def0ac89 100644
--- a/ui/tests/pages/components/form-field.js
+++ b/ui/tests/pages/components/form-field.js
@@ -32,7 +32,7 @@ export default {
input: fillable('input'),
select: fillable('select'),
textarea: fillable('textarea'),
- change: triggerable('keyup', 'input'),
+ change: triggerable('keyup', '.input'),
inputValue: value('input'),
textareaValue: value('textarea'),
inputChecked: attribute('checked', 'input[type=checkbox]'),
diff --git a/ui/tests/pages/secrets/backend/pki/edit-role.js b/ui/tests/pages/secrets/backend/pki/edit-role.js
index 2ad5ba6091a1..d12a8e25c89f 100644
--- a/ui/tests/pages/secrets/backend/pki/edit-role.js
+++ b/ui/tests/pages/secrets/backend/pki/edit-role.js
@@ -9,7 +9,7 @@ export default create({
toggleOptions: clickable('[data-test-toggle-group="Options"]'),
name: fillable('[data-test-input="name"]'),
allowAnyName: clickable('[data-test-input="allowAnyName"]'),
- allowedDomains: fillable('[data-test-input="allowedDomains"] input'),
+ allowedDomains: fillable('[data-test-input="allowedDomains"] .input'),
save: clickable('[data-test-role-create]'),
createRole(name, allowedDomains) {