PGP key list input fix (#13038)

* fixes issue with pgp list file input count not matching key shares number

* adds changelog entry
This commit is contained in:
Jordan Reimer 2021-11-04 14:25:15 -06:00 committed by GitHub
parent 74577e3a77
commit af72de27b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 4 deletions

3
changelog/13038.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note:bug
ui: Fixes issue with the number of PGP Key inputs not matching the key shares number in the initialization form on change
```

View File

@ -31,10 +31,7 @@ export default Component.extend({
list = this.listData.slice(0, this.listLength);
} else if (this.listLength > this.listData.length) {
// add to the current list by creating a new list and copying over existing list
list = this.newList(this.listLength);
if (this.listData.length) {
list.splice(0, this.listData.length, ...this.listData);
}
list = [...this.listData, ...this.newList(this.listLength - this.listData.length)];
}
this.set('listData', list || this.listData);
this.onDataUpdate((list || this.listData).compact().map(k => k.value));

View File

@ -128,4 +128,26 @@ module('Integration | Component | pgp list', function(hooks) {
'lengthening the list with an array with one base64 converted files'
);
});
test('it should render correct amount of file components on listLength change', async function(assert) {
assert.expect(4);
this.set('listLength', null);
await render(hbs`
<PgpList
@listLength={{this.listLength}}
/>
`);
[1, 5, 3, 0].forEach(count => {
this.set('listLength', count);
if (count) {
assert
.dom('[data-test-pgp-file]')
.exists({ count }, `Correct number of file inputs render when listLength is updated to ${count}`);
} else {
assert.dom('[data-test-empty-text]').exists('Placeholder renders when list length is zero');
}
});
});
});