diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-10-20 09:40:42 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-10-20 09:40:42 +0000 |
commit | ee664acb356f8123f4f6b00b73c1e1cf0866c7fb (patch) | |
tree | f8479f94a28f66654c6a4f6fb99bad6b4e86a40e /spec/frontend/packages_and_registries/package_registry | |
parent | 62f7d5c5b69180e82ae8196b7b429eeffc8e7b4f (diff) | |
download | gitlab-ce-ee664acb356f8123f4f6b00b73c1e1cf0866c7fb.tar.gz |
Add latest changes from gitlab-org/gitlab@15-5-stable-eev15.5.0-rc42
Diffstat (limited to 'spec/frontend/packages_and_registries/package_registry')
5 files changed, 87 insertions, 20 deletions
diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/package_title_spec.js.snap b/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/package_title_spec.js.snap index 61923233d2e..047fa04947c 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/package_title_spec.js.snap +++ b/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/package_title_spec.js.snap @@ -79,6 +79,18 @@ exports[`PackageTitle renders with tags 1`] = ` texttooltip="" /> </div> + <div + class="gl-display-flex gl-align-items-center gl-mr-5" + > + <metadata-item-stub + data-testid="package-last-downloaded-at" + icon="download" + link="" + size="m" + text="Last downloaded Aug 17, 2021" + texttooltip="" + /> + </div> </div> </div> @@ -164,6 +176,18 @@ exports[`PackageTitle renders without tags 1`] = ` texttooltip="" /> </div> + <div + class="gl-display-flex gl-align-items-center gl-mr-5" + > + <metadata-item-stub + data-testid="package-last-downloaded-at" + icon="download" + link="" + size="m" + text="Last downloaded Aug 17, 2021" + texttooltip="" + /> + </div> </div> </div> diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/package_title_spec.js b/spec/frontend/packages_and_registries/package_registry/components/details/package_title_spec.js index 37416dcd4e7..1fda77f2aaa 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/details/package_title_spec.js +++ b/spec/frontend/packages_and_registries/package_registry/components/details/package_title_spec.js @@ -49,6 +49,7 @@ describe('PackageTitle', () => { const findPackageSize = () => wrapper.findByTestId('package-size'); const findPipelineProject = () => wrapper.findByTestId('pipeline-project'); const findPackageRef = () => wrapper.findByTestId('package-ref'); + const findPackageLastDownloadedAt = () => wrapper.findByTestId('package-last-downloaded-at'); const findPackageTags = () => wrapper.findComponent(PackageTags); const findPackageBadges = () => wrapper.findAllByTestId('tag-badge'); const findSubHeaderText = () => wrapper.findByTestId('sub-header'); @@ -227,4 +228,25 @@ describe('PackageTitle', () => { }); }); }); + + describe('package last downloaded at', () => { + it('does not display the data if missing', async () => { + await createComponent({ + ...packageData(), + lastDownloadedAt: null, + }); + + expect(findPackageLastDownloadedAt().exists()).toBe(false); + }); + + it('correctly shows the data if present', async () => { + await createComponent(); + + expect(findPackageLastDownloadedAt().props()).toMatchObject({ + text: 'Last downloaded Aug 17, 2021', + icon: 'download', + size: 'm', + }); + }); + }); }); diff --git a/spec/frontend/packages_and_registries/package_registry/components/functional/delete_package_spec.js b/spec/frontend/packages_and_registries/package_registry/components/functional/delete_package_spec.js index 14a70def7d0..93c2196b210 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/functional/delete_package_spec.js +++ b/spec/frontend/packages_and_registries/package_registry/components/functional/delete_package_spec.js @@ -3,7 +3,7 @@ import VueApollo from 'vue-apollo'; import waitForPromises from 'helpers/wait_for_promises'; import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; import createMockApollo from 'helpers/mock_apollo_helper'; -import createFlash from '~/flash'; +import { createAlert, VARIANT_SUCCESS, VARIANT_WARNING } from '~/flash'; import DeletePackage from '~/packages_and_registries/package_registry/components/functional/delete_package.vue'; import destroyPackageMutation from '~/packages_and_registries/package_registry/graphql/mutations/destroy_package.mutation.graphql'; @@ -104,22 +104,22 @@ describe('DeletePackage', () => { expect(wrapper.emitted('end')).toEqual([[]]); }); - it('does not call createFlash', async () => { + it('does not call createAlert', async () => { createComponent(); await clickOnButtonAndWait(eventPayload); - expect(createFlash).not.toHaveBeenCalled(); + expect(createAlert).not.toHaveBeenCalled(); }); - it('calls createFlash with the success message when showSuccessAlert is true', async () => { + it('calls createAlert with the success message when showSuccessAlert is true', async () => { createComponent({ showSuccessAlert: true }); await clickOnButtonAndWait(eventPayload); - expect(createFlash).toHaveBeenCalledWith({ + expect(createAlert).toHaveBeenCalledWith({ message: DeletePackage.i18n.successMessage, - type: 'success', + variant: VARIANT_SUCCESS, }); }); }); @@ -141,14 +141,14 @@ describe('DeletePackage', () => { expect(wrapper.emitted('end')).toEqual([[]]); }); - it('calls createFlash with the error message', async () => { + it('calls createAlert with the error message', async () => { createComponent({ showSuccessAlert: true }); await clickOnButtonAndWait(eventPayload); - expect(createFlash).toHaveBeenCalledWith({ + expect(createAlert).toHaveBeenCalledWith({ message: DeletePackage.i18n.errorMessage, - type: 'warning', + variant: VARIANT_WARNING, captureError: true, error: expect.any(Error), }); diff --git a/spec/frontend/packages_and_registries/package_registry/mock_data.js b/spec/frontend/packages_and_registries/package_registry/mock_data.js index 22236424e6a..c2b6fb734d6 100644 --- a/spec/frontend/packages_and_registries/package_registry/mock_data.js +++ b/spec/frontend/packages_and_registries/package_registry/mock_data.js @@ -127,6 +127,7 @@ export const packageData = (extend) => ({ version: '1.0.0', createdAt: '2020-08-17T14:23:32Z', updatedAt: '2020-08-17T14:23:32Z', + lastDownloadedAt: '2021-08-17T14:23:32Z', status: 'DEFAULT', mavenUrl: 'http://gdk.test:3000/api/v4/projects/1/packages/maven', npmUrl: 'http://gdk.test:3000/api/v4/projects/1/packages/npm', diff --git a/spec/frontend/packages_and_registries/package_registry/pages/details_spec.js b/spec/frontend/packages_and_registries/package_registry/pages/details_spec.js index 83158d1cc5e..a32e76a132e 100644 --- a/spec/frontend/packages_and_registries/package_registry/pages/details_spec.js +++ b/spec/frontend/packages_and_registries/package_registry/pages/details_spec.js @@ -1,4 +1,4 @@ -import { GlEmptyState, GlBadge, GlTabs, GlTab } from '@gitlab/ui'; +import { GlEmptyState, GlBadge, GlTabs, GlTab, GlSprintf } from '@gitlab/ui'; import Vue, { nextTick } from 'vue'; import VueApollo from 'vue-apollo'; @@ -6,7 +6,7 @@ import createMockApollo from 'helpers/mock_apollo_helper'; import { useMockLocationHelper } from 'helpers/mock_window_location_helper'; import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; import waitForPromises from 'helpers/wait_for_promises'; -import createFlash from '~/flash'; +import { createAlert } from '~/flash'; import AdditionalMetadata from '~/packages_and_registries/package_registry/components/details/additional_metadata.vue'; import PackagesApp from '~/packages_and_registries/package_registry/pages/details.vue'; @@ -86,11 +86,17 @@ describe('PackagesApp', () => { PackageTitle, DeletePackage, GlModal: { - template: '<div></div>', + template: ` + <div> + <slot name="modal-title"></slot> + <p><slot></slot></p> + </div> + `, methods: { show: jest.fn(), }, }, + GlSprintf, GlTabs, GlTab, }, @@ -149,7 +155,7 @@ describe('PackagesApp', () => { await waitForPromises(); - expect(createFlash).toHaveBeenCalledWith( + expect(createAlert).toHaveBeenCalledWith( expect.objectContaining({ message: FETCH_PACKAGE_DETAILS_ERROR_MESSAGE, }), @@ -245,7 +251,9 @@ describe('PackagesApp', () => { await findDeleteButton().trigger('click'); - expect(findDeleteModal().exists()).toBe(true); + expect(findDeleteModal().find('p').text()).toBe( + 'You are about to delete version 1.0.0 of @gitlab-org/package-15. Are you sure?', + ); }); describe('successful request', () => { @@ -359,6 +367,12 @@ describe('PackagesApp', () => { expect(showDeletePackageSpy).toHaveBeenCalled(); expect(showDeleteFileSpy).not.toHaveBeenCalled(); + + await waitForPromises(); + + expect(findDeleteModal().find('p').text()).toBe( + 'Deleting the last package asset will remove version 1.0.0 of @gitlab-org/package-15. Are you sure?', + ); }); it('confirming on the modal sets the loading state', async () => { @@ -383,7 +397,7 @@ describe('PackagesApp', () => { await doDeleteFile(); - expect(createFlash).toHaveBeenCalledWith( + expect(createAlert).toHaveBeenCalledWith( expect.objectContaining({ message: DELETE_PACKAGE_FILE_SUCCESS_MESSAGE, }), @@ -399,7 +413,7 @@ describe('PackagesApp', () => { await doDeleteFile(); - expect(createFlash).toHaveBeenCalledWith( + expect(createAlert).toHaveBeenCalledWith( expect.objectContaining({ message: DELETE_PACKAGE_FILE_ERROR_MESSAGE, }), @@ -416,7 +430,7 @@ describe('PackagesApp', () => { await doDeleteFile(); - expect(createFlash).toHaveBeenCalledWith( + expect(createAlert).toHaveBeenCalledWith( expect.objectContaining({ message: DELETE_PACKAGE_FILE_ERROR_MESSAGE, }), @@ -468,7 +482,7 @@ describe('PackagesApp', () => { await doDeleteFiles(); - expect(createFlash).toHaveBeenCalledWith( + expect(createAlert).toHaveBeenCalledWith( expect.objectContaining({ message: DELETE_PACKAGE_FILES_SUCCESS_MESSAGE, }), @@ -484,7 +498,7 @@ describe('PackagesApp', () => { await doDeleteFiles(); - expect(createFlash).toHaveBeenCalledWith( + expect(createAlert).toHaveBeenCalledWith( expect.objectContaining({ message: DELETE_PACKAGE_FILES_ERROR_MESSAGE, }), @@ -501,7 +515,7 @@ describe('PackagesApp', () => { await doDeleteFiles(); - expect(createFlash).toHaveBeenCalledWith( + expect(createAlert).toHaveBeenCalledWith( expect.objectContaining({ message: DELETE_PACKAGE_FILES_ERROR_MESSAGE, }), @@ -533,6 +547,12 @@ describe('PackagesApp', () => { findPackageFiles().vm.$emit('delete-files', packageFiles()); expect(showDeletePackageSpy).toHaveBeenCalled(); + + await waitForPromises(); + + expect(findDeleteModal().find('p').text()).toBe( + 'Deleting all package assets will remove version 1.0.0 of @gitlab-org/package-15. Are you sure?', + ); }); }); }); |