summaryrefslogtreecommitdiff
path: root/spec/frontend/set_status_modal/user_profile_set_status_wrapper_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/set_status_modal/user_profile_set_status_wrapper_spec.js')
-rw-r--r--spec/frontend/set_status_modal/user_profile_set_status_wrapper_spec.js81
1 files changed, 30 insertions, 51 deletions
diff --git a/spec/frontend/set_status_modal/user_profile_set_status_wrapper_spec.js b/spec/frontend/set_status_modal/user_profile_set_status_wrapper_spec.js
index eaee0e77311..a4a2a86dc73 100644
--- a/spec/frontend/set_status_modal/user_profile_set_status_wrapper_spec.js
+++ b/spec/frontend/set_status_modal/user_profile_set_status_wrapper_spec.js
@@ -1,8 +1,6 @@
import { nextTick } from 'vue';
import { cloneDeep } from 'lodash';
import { mountExtended } from 'helpers/vue_test_utils_helper';
-import { resetHTMLFixture } from 'helpers/fixtures';
-import { useFakeDate } from 'helpers/fake_date';
import UserProfileSetStatusWrapper from '~/set_status_modal/user_profile_set_status_wrapper.vue';
import SetStatusForm from '~/set_status_modal/set_status_form.vue';
import { TIME_RANGES_WITH_NEVER, NEVER_TIME_RANGE } from '~/set_status_modal/constants';
@@ -51,7 +49,7 @@ describe('UserProfileSetStatusWrapper', () => {
emoji: defaultProvide.fields.emoji.value,
message: defaultProvide.fields.message.value,
availability: true,
- clearStatusAfter: NEVER_TIME_RANGE,
+ clearStatusAfter: null,
currentClearStatusAfter: defaultProvide.fields.clearStatusAfter.value,
});
});
@@ -69,27 +67,41 @@ describe('UserProfileSetStatusWrapper', () => {
);
});
- describe('when clear status after dropdown is set to `Never`', () => {
- it('renders hidden clear status after input with value unset', () => {
- createComponent();
+ describe('when clear status after has previously been set', () => {
+ describe('when clear status after dropdown is not set', () => {
+ it('does not render hidden clear status after input', () => {
+ createComponent();
- expect(
- findInput(defaultProvide.fields.clearStatusAfter.name).attributes('value'),
- ).toBeUndefined();
+ expect(findInput(defaultProvide.fields.clearStatusAfter.name).exists()).toBe(false);
+ });
});
- });
- describe('when clear status after dropdown has a value selected', () => {
- it('renders hidden clear status after input with value set', async () => {
- createComponent();
+ describe('when clear status after dropdown is set to `Never`', () => {
+ it('renders hidden clear status after input with value unset', async () => {
+ createComponent();
- findSetStatusForm().vm.$emit('clear-status-after-click', TIME_RANGES_WITH_NEVER[1]);
+ findSetStatusForm().vm.$emit('clear-status-after-click', NEVER_TIME_RANGE);
- await nextTick();
+ await nextTick();
- expect(findInput(defaultProvide.fields.clearStatusAfter.name).attributes('value')).toBe(
- TIME_RANGES_WITH_NEVER[1].shortcut,
- );
+ expect(
+ findInput(defaultProvide.fields.clearStatusAfter.name).attributes('value'),
+ ).toBeUndefined();
+ });
+ });
+
+ describe('when clear status after dropdown is set to a time range', () => {
+ it('renders hidden clear status after input with value set', async () => {
+ createComponent();
+
+ findSetStatusForm().vm.$emit('clear-status-after-click', TIME_RANGES_WITH_NEVER[1]);
+
+ await nextTick();
+
+ expect(findInput(defaultProvide.fields.clearStatusAfter.name).attributes('value')).toBe(
+ TIME_RANGES_WITH_NEVER[1].shortcut,
+ );
+ });
});
});
@@ -120,37 +132,4 @@ describe('UserProfileSetStatusWrapper', () => {
expect(findInput(defaultProvide.fields.message.name).attributes('value')).toBe(newMessage);
});
});
-
- describe('when form is successfully submitted', () => {
- // 2022-09-02 00:00:00 UTC
- useFakeDate(2022, 8, 2);
-
- const form = document.createElement('form');
- form.classList.add('js-edit-user');
-
- beforeEach(async () => {
- document.body.appendChild(form);
- createComponent();
-
- const oneDay = TIME_RANGES_WITH_NEVER[4];
-
- findSetStatusForm().vm.$emit('clear-status-after-click', oneDay);
-
- await nextTick();
-
- form.dispatchEvent(new Event('ajax:success'));
- });
-
- afterEach(() => {
- resetHTMLFixture();
- });
-
- it('updates clear status after dropdown to `Never`', () => {
- expect(findSetStatusForm().props('clearStatusAfter')).toBe(NEVER_TIME_RANGE);
- });
-
- it('updates `currentClearStatusAfter` prop', () => {
- expect(findSetStatusForm().props('currentClearStatusAfter')).toBe('2022-09-03 00:00:00 UTC');
- });
- });
});