summaryrefslogtreecommitdiff
path: root/spec/features/commits/user_uses_slash_commands_spec.rb
blob: 9a4b7bd2444a8cfe966510271c7878537e878072 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# frozen_string_literal: true

require 'rails_helper'

describe 'Commit > User uses quick actions', :js do
  include Spec::Support::Helpers::Features::NotesHelpers
  include RepoHelpers

  let(:project) { create(:project, :public, :repository) }
  let(:user) { project.creator }
  let(:commit) { project.commit }

  before do
    project.add_maintainer(user)
    sign_in(user)

    visit project_commit_path(project, commit.id)
  end

  describe 'Tagging a commit' do
    let(:tag_name) { 'v1.2.3' }
    let(:tag_message) { 'Stable release' }
    let(:truncated_commit_sha) { Commit.truncate_sha(commit.sha) }

    it 'tags this commit' do
      add_note("/tag #{tag_name} #{tag_message}")

      expect(page).to have_content 'Commands applied'
      expect(page).to have_content "tagged commit #{truncated_commit_sha}"
      expect(page).to have_content tag_name

      visit project_tag_path(project, tag_name)
      expect(page).to have_content tag_name
      expect(page).to have_content tag_message
      expect(page).to have_content truncated_commit_sha
    end

    describe 'preview', :js do
      it 'removes quick action from note and explains it' do
        preview_note("/tag #{tag_name} #{tag_message}")

        expect(page).not_to have_content '/tag'
        expect(page).to have_content %{Tags this commit to #{tag_name} with "#{tag_message}"}
        expect(page).to have_content tag_name
      end
    end
  end
end