Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-03-18 09:11:52 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-03-18 09:11:52 +0300
commit4d16568658ac6fb0003b407e07a76c11e607f44f (patch)
tree9084e7660f101d2cd70568f293257678ac5f2ef5 /spec/frontend/set_status_modal
parentf5410eefec8642bed6e7e3051319c52d7cbfb101 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/set_status_modal')
-rw-r--r--spec/frontend/set_status_modal/set_status_modal_wrapper_spec.js58
1 files changed, 49 insertions, 9 deletions
diff --git a/spec/frontend/set_status_modal/set_status_modal_wrapper_spec.js b/spec/frontend/set_status_modal/set_status_modal_wrapper_spec.js
index 21b9721438d..403f9509f84 100644
--- a/spec/frontend/set_status_modal/set_status_modal_wrapper_spec.js
+++ b/spec/frontend/set_status_modal/set_status_modal_wrapper_spec.js
@@ -44,6 +44,7 @@ describe('SetStatusModalWrapper', () => {
const findNoEmojiPlaceholder = () => wrapper.find('.js-no-emoji-placeholder');
const findToggleEmojiButton = () => wrapper.find('.js-toggle-emoji-menu');
const findAvailabilityCheckbox = () => wrapper.find(GlFormCheckbox);
+ const findClearStatusAtMessage = () => wrapper.find('[data-testid="clear-status-at-message"]');
const initModal = ({ mockOnUpdateSuccess = true, mockOnUpdateFailure = true } = {}) => {
const modal = findModal();
@@ -57,18 +58,18 @@ describe('SetStatusModalWrapper', () => {
return wrapper.vm.$nextTick();
};
- beforeEach(async () => {
- mockEmoji = await initEmojiMock();
- wrapper = createComponent();
- return initModal();
- });
-
afterEach(() => {
wrapper.destroy();
mockEmoji.restore();
});
describe('with minimum props', () => {
+ beforeEach(async () => {
+ mockEmoji = await initEmojiMock();
+ wrapper = createComponent();
+ return initModal();
+ });
+
it('sets the hidden status emoji field', () => {
const field = findFormField('emoji');
expect(field.exists()).toBe(true);
@@ -96,6 +97,14 @@ describe('SetStatusModalWrapper', () => {
findToggleEmojiButton().trigger('click');
expect(wrapper.vm.showEmojiMenu).toHaveBeenCalled();
});
+
+ it('displays the clear status at dropdown', () => {
+ expect(wrapper.find('[data-testid="clear-status-at-dropdown"]').exists()).toBe(true);
+ });
+
+ it('does not display the clear status at message', () => {
+ expect(findClearStatusAtMessage().exists()).toBe(false);
+ });
});
describe('with no currentMessage set', () => {
@@ -146,9 +155,28 @@ describe('SetStatusModalWrapper', () => {
});
});
+ describe('with currentClearStatusAfter set', () => {
+ beforeEach(async () => {
+ mockEmoji = await initEmojiMock();
+ wrapper = createComponent({ currentClearStatusAfter: '2021-01-01 00:00:00 UTC' });
+ return initModal();
+ });
+
+ it('displays the clear status at message', () => {
+ const clearStatusAtMessage = findClearStatusAtMessage();
+
+ expect(clearStatusAtMessage.exists()).toBe(true);
+ expect(clearStatusAtMessage.text()).toBe('Your status resets on 2021-01-01 00:00:00 UTC.');
+ });
+ });
+
describe('update status', () => {
describe('succeeds', () => {
- beforeEach(() => {
+ beforeEach(async () => {
+ mockEmoji = await initEmojiMock();
+ wrapper = createComponent();
+ await initModal();
+
jest.spyOn(UserApi, 'updateUserStatus').mockResolvedValue();
});
@@ -167,18 +195,26 @@ describe('SetStatusModalWrapper', () => {
// set the availability status
findAvailabilityCheckbox().vm.$emit('input', true);
+ // set the currentClearStatusAfter to 30 minutes
+ wrapper.find('[data-testid="thirtyMinutes"]').vm.$emit('click');
+
findModal().vm.$emit('ok');
await wrapper.vm.$nextTick();
- const commonParams = { emoji: defaultEmoji, message: defaultMessage };
+ const commonParams = {
+ emoji: defaultEmoji,
+ message: defaultMessage,
+ };
expect(UserApi.updateUserStatus).toHaveBeenCalledTimes(2);
expect(UserApi.updateUserStatus).toHaveBeenNthCalledWith(1, {
availability: AVAILABILITY_STATUS.NOT_SET,
+ clearStatusAfter: null,
...commonParams,
});
expect(UserApi.updateUserStatus).toHaveBeenNthCalledWith(2, {
availability: AVAILABILITY_STATUS.BUSY,
+ clearStatusAfter: '30_minutes',
...commonParams,
});
});
@@ -208,7 +244,11 @@ describe('SetStatusModalWrapper', () => {
});
describe('with errors', () => {
- beforeEach(() => {
+ beforeEach(async () => {
+ mockEmoji = await initEmojiMock();
+ wrapper = createComponent();
+ await initModal();
+
jest.spyOn(UserApi, 'updateUserStatus').mockRejectedValue();
});