From 09acddd7fd2b59afa69eca95b1e34739e1f1b31b Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 12 Jul 2023 06:10:10 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- spec/frontend/dropzone_input_spec.js | 2 +- spec/frontend/fixtures/milestones.rb | 43 ---------------------- spec/frontend/fixtures/static/textarea.html | 27 ++++++++++++++ .../components/list/package_list_row_spec.js | 13 +++++-- .../components/list/packages_list_spec.js | 26 ++++++++++--- 5 files changed, 59 insertions(+), 52 deletions(-) delete mode 100644 spec/frontend/fixtures/milestones.rb create mode 100644 spec/frontend/fixtures/static/textarea.html (limited to 'spec/frontend') diff --git a/spec/frontend/dropzone_input_spec.js b/spec/frontend/dropzone_input_spec.js index 57debf79c7b..ba4d838e44b 100644 --- a/spec/frontend/dropzone_input_spec.js +++ b/spec/frontend/dropzone_input_spec.js @@ -1,6 +1,5 @@ import MockAdapter from 'axios-mock-adapter'; import $ from 'jquery'; -import htmlNewMilestone from 'test_fixtures/milestones/new-milestone.html'; import mock from 'xhr-mock'; import { setHTMLFixture, resetHTMLFixture } from 'helpers/fixtures'; import waitForPromises from 'helpers/wait_for_promises'; @@ -9,6 +8,7 @@ import PasteMarkdownTable from '~/behaviors/markdown/paste_markdown_table'; import dropzoneInput from '~/dropzone_input'; import axios from '~/lib/utils/axios_utils'; import { HTTP_STATUS_BAD_REQUEST, HTTP_STATUS_OK } from '~/lib/utils/http_status'; +import htmlNewMilestone from 'test_fixtures_static/textarea.html'; const TEST_FILE = new File([], 'somefile.jpg'); TEST_FILE.upload = {}; diff --git a/spec/frontend/fixtures/milestones.rb b/spec/frontend/fixtures/milestones.rb deleted file mode 100644 index 5e39dcf190a..00000000000 --- a/spec/frontend/fixtures/milestones.rb +++ /dev/null @@ -1,43 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe Projects::MilestonesController, '(JavaScript fixtures)', :with_license, feature_category: :team_planning, type: :controller do - include JavaScriptFixturesHelpers - - let_it_be(:user) { create(:user, feed_token: 'feedtoken:coldfeed') } - let_it_be(:namespace) { create(:namespace, name: 'frontend-fixtures') } - let_it_be(:project) { create(:project_empty_repo, namespace: namespace, path: 'milestones-project') } - - render_views - - before do - project.add_maintainer(user) - sign_in(user) - end - - after do - remove_repository(project) - end - - it 'milestones/new-milestone.html' do - get :new, params: { - namespace_id: project.namespace.to_param, - project_id: project - } - - expect(response).to be_successful - end - - private - - def render_milestone(milestone) - get :show, params: { - namespace_id: project.namespace.to_param, - project_id: project, - id: milestone.to_param - } - - expect(response).to be_successful - end -end diff --git a/spec/frontend/fixtures/static/textarea.html b/spec/frontend/fixtures/static/textarea.html new file mode 100644 index 00000000000..68d5a0f2d4d --- /dev/null +++ b/spec/frontend/fixtures/static/textarea.html @@ -0,0 +1,27 @@ + + +Document with Textarea +
+
+
+
+ + + + + + +
+
+
+
+ + diff --git a/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js b/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js index 7a96ddc7afc..523d5f855fc 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js +++ b/spec/frontend/packages_and_registries/package_registry/components/list/package_list_row_spec.js @@ -27,11 +27,11 @@ describe('packages_list_row', () => { const defaultProvide = { isGroupPage: false, + canDeletePackages: true, }; const packageWithoutTags = { ...packageData(), project: packageProject(), ...linksData }; const packageWithTags = { ...packageWithoutTags, tags: { nodes: packageTags() } }; - const packageCannotDestroy = { ...packageData(), ...linksData, canDestroy: false }; const findPackageTags = () => wrapper.findComponent(PackageTags); const findDeleteDropdown = () => wrapper.findByTestId('action-delete'); @@ -105,7 +105,9 @@ describe('packages_list_row', () => { describe('delete button', () => { it('does not exist when package cannot be destroyed', () => { - mountComponent({ packageEntity: packageCannotDestroy }); + mountComponent({ + packageEntity: { ...packageWithoutTags, canDestroy: false }, + }); expect(findDeleteDropdown().exists()).toBe(false); }); @@ -168,7 +170,10 @@ describe('packages_list_row', () => { describe('left action template', () => { it('does not render checkbox if not permitted', () => { mountComponent({ - packageEntity: { ...packageWithoutTags, canDestroy: false }, + provide: { + ...defaultProvide, + canDeletePackages: false, + }, }); expect(findBulkDeleteAction().exists()).toBe(false); @@ -248,6 +253,7 @@ describe('packages_list_row', () => { it('if the package is published through CI show the project and author name', () => { mountComponent({ provide: { + ...defaultProvide, isGroupPage: true, }, packageEntity: { ...packageWithoutTags, pipelines: { nodes: packagePipelines() } }, @@ -261,6 +267,7 @@ describe('packages_list_row', () => { it('if the package is published manually dont show project and the author name', () => { mountComponent({ provide: { + ...defaultProvide, isGroupPage: true, }, packageEntity: { ...packageWithoutTags }, diff --git a/spec/frontend/packages_and_registries/package_registry/components/list/packages_list_spec.js b/spec/frontend/packages_and_registries/package_registry/components/list/packages_list_spec.js index 483b7a9383d..fad8863e3d9 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/list/packages_list_spec.js +++ b/spec/frontend/packages_and_registries/package_registry/components/list/packages_list_spec.js @@ -41,6 +41,10 @@ describe('packages_list', () => { groupSettings: defaultPackageGroupSettings, }; + const defaultProvide = { + canDeletePackages: true, + }; + const EmptySlotStub = { name: 'empty-slot-stub', template: '
bar
' }; const findPackagesListLoader = () => wrapper.findComponent(PackagesListLoader); @@ -52,8 +56,9 @@ describe('packages_list', () => { const showMock = jest.fn(); - const mountComponent = (props) => { + const mountComponent = ({ props = {}, provide = defaultProvide } = {}) => { wrapper = shallowMountExtended(PackagesList, { + provide, propsData: { ...defaultProps, ...props, @@ -75,7 +80,7 @@ describe('packages_list', () => { describe('when is loading', () => { beforeEach(() => { - mountComponent({ isLoading: true }); + mountComponent({ props: { isLoading: true } }); }); it('shows skeleton loader', () => { @@ -109,6 +114,7 @@ describe('packages_list', () => { title: '2 packages', items: defaultProps.list, pagination: defaultProps.pageInfo, + hiddenDelete: false, isLoading: false, }); }); @@ -137,6 +143,16 @@ describe('packages_list', () => { }); }); + describe('when the user does not have permission to destroy packages', () => { + beforeEach(() => { + mountComponent({ provide: { canDeletePackages: false } }); + }); + + it('sets the hidden delete prop of registry list to true', () => { + expect(findRegistryList().props('hiddenDelete')).toBe(true); + }); + }); + describe.each` description | finderFunction | deletePayload ${'when the user can destroy the package'} | ${findPackagesListRow} | ${firstPackage} @@ -262,7 +278,7 @@ describe('packages_list', () => { describe('when an error package is present', () => { beforeEach(() => { - mountComponent({ list: [firstPackage, errorPackage] }); + mountComponent({ props: { list: [firstPackage, errorPackage] } }); return nextTick(); }); @@ -290,7 +306,7 @@ describe('packages_list', () => { describe('when the list is empty', () => { beforeEach(() => { - mountComponent({ list: [] }); + mountComponent({ props: { list: [] } }); }); it('show the empty slot', () => { @@ -301,7 +317,7 @@ describe('packages_list', () => { describe('pagination', () => { beforeEach(() => { - mountComponent({ pageInfo: { hasPreviousPage: true } }); + mountComponent({ props: { pageInfo: { hasPreviousPage: true } } }); }); it('emits prev-page events when the prev event is fired', () => { -- cgit v1.2.3