diff options
Diffstat (limited to 'spec/frontend/groups/members/utils_spec.js')
-rw-r--r-- | spec/frontend/groups/members/utils_spec.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/spec/frontend/groups/members/utils_spec.js b/spec/frontend/groups/members/utils_spec.js new file mode 100644 index 00000000000..b0921c7642f --- /dev/null +++ b/spec/frontend/groups/members/utils_spec.js @@ -0,0 +1,51 @@ +import { membersJsonString, membersParsed } from './mock_data'; +import { + parseDataAttributes, + memberRequestFormatter, + groupLinkRequestFormatter, +} from '~/groups/members/utils'; + +describe('group member utils', () => { + describe('parseDataAttributes', () => { + let el; + + beforeEach(() => { + el = document.createElement('div'); + el.setAttribute('data-members', membersJsonString); + el.setAttribute('data-group-id', '234'); + }); + + afterEach(() => { + el = null; + }); + + it('correctly parses the data attributes', () => { + expect(parseDataAttributes(el)).toEqual({ + members: membersParsed, + sourceId: 234, + }); + }); + }); + + describe('memberRequestFormatter', () => { + it('returns expected format', () => { + expect( + memberRequestFormatter({ + accessLevel: 50, + expires_at: '2020-10-16', + }), + ).toEqual({ group_member: { access_level: 50, expires_at: '2020-10-16' } }); + }); + }); + + describe('groupLinkRequestFormatter', () => { + it('returns expected format', () => { + expect( + groupLinkRequestFormatter({ + accessLevel: 50, + expires_at: '2020-10-16', + }), + ).toEqual({ group_link: { group_access: 50, expires_at: '2020-10-16' } }); + }); + }); +}); |