summaryrefslogtreecommitdiff
path: root/spec/frontend/groups/members/utils_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/groups/members/utils_spec.js')
-rw-r--r--spec/frontend/groups/members/utils_spec.js51
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' } });
+ });
+ });
+});