summaryrefslogtreecommitdiff
path: root/spec/frontend/packages_and_registries/package_registry/pages/details_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/packages_and_registries/package_registry/pages/details_spec.js')
-rw-r--r--spec/frontend/packages_and_registries/package_registry/pages/details_spec.js56
1 files changed, 50 insertions, 6 deletions
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 eb3b999c1ca..b494965a3cb 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
@@ -15,7 +15,7 @@ import InstallationCommands from '~/packages_and_registries/package_registry/com
import PackageFiles from '~/packages_and_registries/package_registry/components/details/package_files.vue';
import PackageHistory from '~/packages_and_registries/package_registry/components/details/package_history.vue';
import PackageTitle from '~/packages_and_registries/package_registry/components/details/package_title.vue';
-import DeletePackage from '~/packages_and_registries/package_registry/components/functional/delete_package.vue';
+import DeletePackages from '~/packages_and_registries/package_registry/components/functional/delete_packages.vue';
import PackageVersionsList from '~/packages_and_registries/package_registry/components/details/package_versions_list.vue';
import {
FETCH_PACKAGE_DETAILS_ERROR_MESSAGE,
@@ -85,7 +85,7 @@ describe('PackagesApp', () => {
provide,
stubs: {
PackageTitle,
- DeletePackage,
+ DeletePackages,
GlModal: {
template: `
<div>
@@ -128,7 +128,8 @@ describe('PackagesApp', () => {
const findDependenciesCountBadge = () => wrapper.findByTestId('dependencies-badge');
const findNoDependenciesMessage = () => wrapper.findByTestId('no-dependencies-message');
const findDependencyRows = () => wrapper.findAllComponents(DependencyRow);
- const findDeletePackage = () => wrapper.findComponent(DeletePackage);
+ const findDeletePackageModal = () => wrapper.findAllComponents(DeletePackages).at(1);
+ const findDeletePackages = () => wrapper.findComponent(DeletePackages);
afterEach(() => {
wrapper.destroy();
@@ -267,7 +268,7 @@ describe('PackagesApp', () => {
await waitForPromises();
- findDeletePackage().vm.$emit('end');
+ findDeletePackageModal().vm.$emit('end');
expect(window.location.replace).toHaveBeenCalledWith(
'projectListUrl?showSuccessDeleteAlert=true',
@@ -281,7 +282,7 @@ describe('PackagesApp', () => {
await waitForPromises();
- findDeletePackage().vm.$emit('end');
+ findDeletePackageModal().vm.$emit('end');
expect(window.location.replace).toHaveBeenCalledWith(
'groupListUrl?showSuccessDeleteAlert=true',
@@ -595,13 +596,56 @@ describe('PackagesApp', () => {
it('binds the correct props', async () => {
const versionNodes = packageVersions();
- createComponent({ packageEntity: { versions: { nodes: versionNodes } } });
+ createComponent();
+
await waitForPromises();
expect(findVersionsList().props()).toMatchObject({
+ canDestroy: true,
versions: expect.arrayContaining(versionNodes),
});
});
+
+ describe('delete packages', () => {
+ it('exists and has the correct props', async () => {
+ createComponent();
+
+ await waitForPromises();
+
+ expect(findDeletePackages().props()).toMatchObject({
+ refetchQueries: [{ query: getPackageDetails, variables: {} }],
+ showSuccessAlert: true,
+ });
+ });
+
+ it('deletePackages is bound to package-versions-list delete event', async () => {
+ createComponent();
+
+ await waitForPromises();
+
+ findVersionsList().vm.$emit('delete', [{ id: 1 }]);
+
+ expect(findDeletePackages().emitted('start')).toEqual([[]]);
+ });
+
+ it('start and end event set loading correctly', async () => {
+ createComponent();
+
+ await waitForPromises();
+
+ findDeletePackages().vm.$emit('start');
+
+ await nextTick();
+
+ expect(findVersionsList().props('isLoading')).toBe(true);
+
+ findDeletePackages().vm.$emit('end');
+
+ await nextTick();
+
+ expect(findVersionsList().props('isLoading')).toBe(false);
+ });
+ });
});
describe('dependency links', () => {