diff options
author | Rémy Coutable <remy@rymai.me> | 2016-04-26 13:54:49 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2016-04-29 16:50:18 +0300 |
commit | 3811eb0ba1e8c0f318060696853b1cab7f99dfa3 (patch) | |
tree | b24961856597d9d4c14450d32e8aa640874872b8 /spec | |
parent | bfc6a0e3718c1b4d5e3d2adcc1ef16cf5274df5c (diff) |
Fix error when trying to create a wiki page
Closes #15527.
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'spec')
-rw-r--r-- | spec/features/projects/wiki/user_creates_wiki_page_spec.rb | 87 | ||||
-rw-r--r-- | spec/features/projects/wiki/user_updates_wiki_page_spec.rb | 46 |
2 files changed, 133 insertions, 0 deletions
diff --git a/spec/features/projects/wiki/user_creates_wiki_page_spec.rb b/spec/features/projects/wiki/user_creates_wiki_page_spec.rb new file mode 100644 index 00000000000..d709fe8046f --- /dev/null +++ b/spec/features/projects/wiki/user_creates_wiki_page_spec.rb @@ -0,0 +1,87 @@ +require 'spec_helper' + +feature 'Projects > Wiki > User creates 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) + click_link 'Wiki' + end + + context 'wiki project is in the user namespace' do + let(:project) { create(:project, namespace: user.namespace) } + + context 'when wiki is empty' do + scenario 'user can create a new wiki page from the wiki home page' do + expect(page).to have_content('Home · Edit Page') + + fill_in :wiki_content, with: 'My awesome wiki!' + click_button 'Create page' + + expect(page).to have_content("Home · last edited by #{user.name}") + expect(page).to have_content('My awesome wiki!') + end + end + + context 'when wiki is not empty' do + before do + WikiPages::CreateService.new(project, user, title: 'home', content: 'Home page').execute + end + + scenario 'user can create a new wiki page', js: true do + click_link 'New Page' + + fill_in :new_wiki_path, with: 'foo' + click_button 'Create Page' + + expect(page).to have_content('Foo · Edit Page') + + fill_in :wiki_content, with: 'My awesome wiki!' + click_button 'Create page' + + expect(page).to have_content("Foo · last edited by #{user.name}") + expect(page).to have_content('My awesome wiki!') + end + end + end + + context 'wiki project is in the user namespace' do + let(:project) { create(:project, namespace: create(:group, :public)) } + + context 'when wiki is empty' do + scenario 'user can create a new wiki page from the wiki home page' do + expect(page).to have_content('Home · Edit Page') + + fill_in :wiki_content, with: 'My awesome wiki!' + click_button 'Create page' + + expect(page).to have_content("Home · last edited by #{user.name}") + expect(page).to have_content('My awesome wiki!') + end + end + + context 'when wiki is not empty' do + before do + WikiPages::CreateService.new(project, user, title: 'home', content: 'Home page').execute + end + + scenario 'user can create a new wiki page', js: true do + click_link 'New Page' + + fill_in :new_wiki_path, with: 'foo' + click_button 'Create Page' + + expect(page).to have_content('Foo · Edit Page') + + fill_in :wiki_content, with: 'My awesome wiki!' + click_button 'Create page' + + expect(page).to have_content("Foo · last edited by #{user.name}") + expect(page).to have_content('My awesome wiki!') + end + end + end +end diff --git a/spec/features/projects/wiki/user_updates_wiki_page_spec.rb b/spec/features/projects/wiki/user_updates_wiki_page_spec.rb new file mode 100644 index 00000000000..b69d6b46ac8 --- /dev/null +++ b/spec/features/projects/wiki/user_updates_wiki_page_spec.rb @@ -0,0 +1,46 @@ +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 + + context 'wiki project is in the user namespace' do + let(:project) { create(:project, namespace: user.namespace) } + + scenario 'user can update the wiki home page' do + click_link 'Edit' + + expect(page).to have_content('Home · Edit Page') + + fill_in :wiki_content, with: 'My awesome wiki!' + click_button 'Save changes' + + expect(page).to have_content("Home · last edited by #{user.name}") + expect(page).to have_content('My awesome wiki!') + end + end + + context 'wiki project is in the user namespace' do + let(:project) { create(:project, namespace: create(:group, :public)) } + + scenario 'user can update the wiki home page' do + click_link 'Edit' + + expect(page).to have_content('Home · Edit Page') + + fill_in :wiki_content, with: 'My awesome wiki!' + click_button 'Save changes' + + expect(page).to have_content("Home · last edited by #{user.name}") + expect(page).to have_content('My awesome wiki!') + end + end +end |