diff options
Diffstat (limited to 'spec/frontend/access_tokens/components')
3 files changed, 64 insertions, 8 deletions
diff --git a/spec/frontend/access_tokens/components/access_token_table_app_spec.js b/spec/frontend/access_tokens/components/access_token_table_app_spec.js index 6013fa3ec39..aed3db4aa4c 100644 --- a/spec/frontend/access_tokens/components/access_token_table_app_spec.js +++ b/spec/frontend/access_tokens/components/access_token_table_app_spec.js @@ -190,6 +190,21 @@ describe('~/access_tokens/components/access_token_table_app', () => { expect(button.props('category')).toBe('tertiary'); }); + describe('revoke path', () => { + beforeEach(() => { + createComponent({ showRole: true }); + }); + + it.each([{ revoke_path: null }, { revoke_path: undefined }])( + 'with %p, does not show revoke button', + async (input) => { + await triggerSuccess(defaultActiveAccessTokens.map((data) => ({ ...data, ...input }))); + + expect(findCells().at(6).findComponent(GlButton).exists()).toBe(false); + }, + ); + }); + it('sorts rows alphabetically', async () => { createComponent({ showRole: true }); await triggerSuccess(); diff --git a/spec/frontend/access_tokens/components/expires_at_field_spec.js b/spec/frontend/access_tokens/components/expires_at_field_spec.js index 646dc0d703f..491d2a0e323 100644 --- a/spec/frontend/access_tokens/components/expires_at_field_spec.js +++ b/spec/frontend/access_tokens/components/expires_at_field_spec.js @@ -58,4 +58,20 @@ describe('~/access_tokens/components/expires_at_field', () => { expect(findDatepicker().props('defaultDate')).toStrictEqual(future); }); + + it('should set the default expiration date to be 365 days', () => { + const offset = 365; + const today = new Date(); + const future = getDateInFuture(today, offset); + createComponent({ defaultDateOffset: offset }); + + expect(findDatepicker().props('defaultDate')).toStrictEqual(future); + }); + + it('should set the default expiration date to maxDate, ignoring defaultDateOffset', () => { + const maxDate = new Date(); + createComponent({ maxDate, defaultDateOffset: 2 }); + + expect(findDatepicker().props('defaultDate')).toStrictEqual(maxDate); + }); }); diff --git a/spec/frontend/access_tokens/components/new_access_token_app_spec.js b/spec/frontend/access_tokens/components/new_access_token_app_spec.js index 9ccadbebf7a..d12d200d214 100644 --- a/spec/frontend/access_tokens/components/new_access_token_app_spec.js +++ b/spec/frontend/access_tokens/components/new_access_token_app_spec.js @@ -23,18 +23,27 @@ describe('~/access_tokens/components/new_access_token_app', () => { }; const triggerSuccess = async (newToken = 'new token') => { - wrapper.find(DomElementListener).vm.$emit(EVENT_SUCCESS, { detail: [{ new_token: newToken }] }); + wrapper + .findComponent(DomElementListener) + .vm.$emit(EVENT_SUCCESS, { detail: [{ new_token: newToken }] }); await nextTick(); }; const triggerError = async (errors = ['1', '2']) => { - wrapper.find(DomElementListener).vm.$emit(EVENT_ERROR, { detail: [{ errors }] }); + wrapper.findComponent(DomElementListener).vm.$emit(EVENT_ERROR, { detail: [{ errors }] }); await nextTick(); }; beforeEach(() => { // NewAccessTokenApp observes a form element - setHTMLFixture(`<form id="${FORM_SELECTOR.slice(1)}"><input type="submit"/></form>`); + setHTMLFixture( + `<form id="${FORM_SELECTOR.slice(1)}"> + <input type="text" id="expires_at" value="2022-01-01"/> + <input type="text" value='1'/> + <input type="checkbox" checked/> + <input type="submit" value="Create"/> + </form>`, + ); createComponent(); }); @@ -78,7 +87,6 @@ describe('~/access_tokens/components/new_access_token_app', () => { .findByLabelText(sprintf(__('Your new %{accessTokenType}'), { accessTokenType })) .attributes(); expect(inputAttributes).toMatchObject({ - class: expect.stringContaining('qa-created-access-token'), 'data-qa-selector': 'created_access_token_field', }); }); @@ -94,12 +102,29 @@ describe('~/access_tokens/components/new_access_token_app', () => { }); }); - it('should reset the form', async () => { - const resetSpy = jest.spyOn(wrapper.vm.form, 'reset'); + describe('when resetting the form', () => { + it('should reset selectively some input fields', async () => { + expect(document.querySelector('input[type=text]:not([id$=expires_at])').value).toBe('1'); + expect(document.querySelector('input[type=checkbox]').checked).toBe(true); + await triggerSuccess(); - await triggerSuccess(); + expect(document.querySelector('input[type=text]:not([id$=expires_at])').value).toBe(''); + expect(document.querySelector('input[type=checkbox]').checked).toBe(false); + }); - expect(resetSpy).toHaveBeenCalled(); + it('should not reset the date field', async () => { + expect(document.querySelector('input[type=text][id$=expires_at]').value).toBe('2022-01-01'); + await triggerSuccess(); + + expect(document.querySelector('input[type=text][id$=expires_at]').value).toBe('2022-01-01'); + }); + + it('should not reset the submit button value', async () => { + expect(document.querySelector('input[type=submit]').value).toBe('Create'); + await triggerSuccess(); + + expect(document.querySelector('input[type=submit]').value).toBe('Create'); + }); }); }); |