fix: Default group.member_ids to an empty array
This commit is contained in:
3 files changed
+17
-2
No files matched your search
@@ -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|>
|
||||
|
||||
Reference in new issue
Block a user