fix: Default group.member_ids to an empty array

This commit is contained in:
Susmitha Girumala committed 2020-09-08 16:23:04 -04:00
1 parent 90ff86a3f8
commit 8a5130932b
3 files changed
+17 -2

No files matched your search

+3 -1
View File
@@ -1,6 +1,7 @@
import GeneratedGroupModel from '../generated/models/group';
import { attr } from '@ember-data/model';
import { computed } from '@ember/object';
import { A } from '@ember/array';
export default class GroupModel extends GeneratedGroupModel {
@@ -10,13 +11,14 @@ export default class GroupModel extends GeneratedGroupModel {
* Members is read-only under normal circumstances. But members can
* be persisted via calls to `addMembers()` or `removeMembers()`.
*/
@attr({readOnly: true}) member_ids;
@attr({readOnly: true, defaultValue: () => A()}) member_ids;
/**
* An array of resolved user instances.
* Unresolvable instances are excluded from the array.
* @type {[UserModel]}
*/
// TODO: Use fragments array to read cross scope members.
@computed('member_ids.[]')
get members() {
return this.member_ids
@@ -130,4 +130,17 @@ module('Unit | Model | group', function(hooks) {
const model = store.peekRecord('group', '123abc');
await model.removeMember('3');
});
test('it defaults `members_ids` to an empty array when model instance does not define it', function(assert) {
assert.expect(1);
const store = this.owner.lookup('service:store');
store.push({
data: {
id: 'group_123',
type: 'group'
}
});
const group = store.peekRecord('group', 'group_123');
assert.equal(group.member_ids.length, 0, 'Group has empty member_ids by default');
});
});
@@ -9,7 +9,7 @@
>
<form.actions
@submitText={{t "actions.add-host-sets"}}
@submitText={{t "actions.add-members"}}
@cancelText={{t "actions.cancel"}} />
<Rose::Table as |table|>