user_updates_wiki_page_spec.rb 2.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
require 'spec_helper'

feature 'Projects > Wiki > User updates wiki page', feature: true do
  let(:user) { create(:user) }

  background do
    project.team << [user, :master]
    login_as(user)

    visit namespace_project_path(project.namespace, project)
    WikiPages::CreateService.new(project, user, title: 'home', content: 'Home page').execute
    click_link 'Wiki'
  end

15
  context 'in the user namespace' do
16 17
    let(:project) { create(:project, namespace: user.namespace) }

D
Dongqing Hu 已提交
18 19 20 21
    context 'the home page' do
      scenario 'success when the wiki content is not empty' do
        click_link 'Edit'

B
blackst0ne 已提交
22 23 24
        # Commit message field should have correct value.
        expect(page).to have_field('wiki[message]', with: 'Update home')

D
Dongqing Hu 已提交
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
        fill_in :wiki_content, with: 'My awesome wiki!'
        click_button 'Save changes'

        expect(page).to have_content('Home')
        expect(page).to have_content("Last edited by #{user.name}")
        expect(page).to have_content('My awesome wiki!')
      end

      scenario 'failure when the wiki content is empty' do
        click_link 'Edit'

        fill_in :wiki_content, with: ''
        click_button 'Save changes'

        expect(page).to have_selector('.wiki-form')
        expect(page).to have_content('Edit Page')
        expect(page).to have_content('The form contains the following error:')
        expect(page).to have_content('Content can\'t be blank')
        expect(find('textarea#wiki_content').value).to eq ''
      end
45 46 47
    end
  end

48
  context 'in a group namespace' do
49 50
    let(:project) { create(:project, namespace: create(:group, :public)) }

51
    scenario 'the home page' do
52 53
      click_link 'Edit'

B
blackst0ne 已提交
54 55 56
      # Commit message field should have correct value.
      expect(page).to have_field('wiki[message]', with: 'Update home')

57 58 59
      fill_in :wiki_content, with: 'My awesome wiki!'
      click_button 'Save changes'

60
      expect(page).to have_content('Home')
61
      expect(page).to have_content("Last edited by #{user.name}")
62 63 64 65
      expect(page).to have_content('My awesome wiki!')
    end
  end
end