summaryrefslogtreecommitdiff
path: root/spec/features/projects/blobs/edit_spec.rb
blob: a820d07ab3b58e34f7b37403cbb1e28b283421a7 (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
require 'spec_helper'

feature 'Editing file blob', feature: true, js: true do
  include WaitForAjax

  given(:user) { create(:user) }
  given(:role) { :developer }
  given(:merge_request) { create(:merge_request, source_branch: 'feature', target_branch: 'master') }
  given(:project) { merge_request.target_project }

  background do
    login_as(user)
    project.team << [user, role]
  end

  def edit_and_commit
    wait_for_ajax
    first('.file-actions').click_link 'Edit'
    execute_script('ace.edit("editor").setValue("class NextFeature\nend\n")')
    click_button 'Commit Changes'
  end

  context 'from MR diff' do
    before do
      visit diffs_namespace_project_merge_request_path(project.namespace, project, merge_request)
      edit_and_commit
    end

    scenario 'returns me to the mr' do
      expect(page).to have_content(merge_request.title)
    end
  end

  context 'from blob file path' do
    before do
      visit namespace_project_blob_path(project.namespace, project, '/feature/files/ruby/feature.rb')
      edit_and_commit
    end

    scenario 'updates content' do
      expect(page).to have_content 'successfully committed'
      expect(page).to have_content 'NextFeature'
    end
  end
end