diff options
Diffstat (limited to 'spec/features/projects/tags/user_edits_tags_spec.rb')
-rw-r--r-- | spec/features/projects/tags/user_edits_tags_spec.rb | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/spec/features/projects/tags/user_edits_tags_spec.rb b/spec/features/projects/tags/user_edits_tags_spec.rb index 17080043b6d..c8438b73dc3 100644 --- a/spec/features/projects/tags/user_edits_tags_spec.rb +++ b/spec/features/projects/tags/user_edits_tags_spec.rb @@ -5,17 +5,58 @@ require 'spec_helper' RSpec.describe 'Project > Tags', :js do include DropzoneHelper - let(:user) { create(:user) } - let(:role) { :developer } - let(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } + let_it_be(:role) { :developer } + let_it_be(:project) { create(:project, :repository) } before do sign_in(user) project.add_role(user, role) end + shared_examples "can create and update release" do + it 'can create new release' do + visit page_url + page.find("a[href=\"#{new_project_release_path(project, tag_name: 'v1.1.0')}\"]").click + + fill_in "Release notes", with: "new release from tag" + expect(page).not_to have_field("Create from") + click_button "Create release" + + expect(page).to have_current_path(project_release_path(project, 'v1.1.0')) + expect(Release.last.description).to eq("new release from tag") + end + + it 'can edit existing release' do + release = create(:release, project: project, tag: 'v1.1.0') + + visit page_url + page.find("a[href=\"#{edit_project_release_path(project, release)}\"]").click + + fill_in "Release notes", with: "updated release desc" + click_button "Save changes" + + expect(page).to have_current_path(project_release_path(project, 'v1.1.0')) + expect(release.reload.description).to eq("updated release desc") + end + end + + context 'when visiting tags index page' do + let(:page_url) { project_tags_path(project) } + + include_examples "can create and update release" + end + + context 'when visiting individual tag page' do + let(:page_url) { project_tag_path(project, 'v1.1.0') } + + include_examples "can create and update release" + end + + # TODO: remove most of these together with FF https://gitlab.com/gitlab-org/gitlab/-/issues/366244 describe 'when opening project tags' do before do + stub_feature_flags(edit_tag_release_notes_via_release_page: false) visit project_tags_path(project) end |