diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb index b0a6e530e8a431f10cdcb6dddabfa367963bf40f..ae5cb4c1aab3aa719fe7bdd361cc51cf16e71de0 100644 --- a/features/steps/project/merge_requests.rb +++ b/features/steps/project/merge_requests.rb @@ -61,8 +61,8 @@ class ProjectMergeRequests < Spinach::FeatureSteps end step 'I submit new merge request "Wiki Feature"' do - select "master", from: "merge_request_source_branch" - select "notes_refactoring", from: "merge_request_target_branch" + select "fix", from: "merge_request_source_branch" + select "feature", from: "merge_request_target_branch" click_button "Compare branches" fill_in "merge_request_title", with: "Wiki Feature" click_button "Submit merge request" @@ -73,7 +73,7 @@ class ProjectMergeRequests < Spinach::FeatureSteps title: "Bug NS-04", source_project: project, target_project: project, - source_branch: 'stable', + source_branch: 'fix', target_branch: 'master', author: project.users.first, description: "# Description header" @@ -116,7 +116,7 @@ class ProjectMergeRequests < Spinach::FeatureSteps end step 'I leave a comment on the diff page in commit' do - find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185"]').click + click_diff_line(sample_commit.line_code) leave_comment "One comment to rule them all" end @@ -126,7 +126,7 @@ class ProjectMergeRequests < Spinach::FeatureSteps end step 'I leave a comment like "Line is wrong" on line 185 of the first file in commit' do - find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185"]').click + click_diff_line(sample_commit.line_code) leave_comment "Line is wrong" end @@ -248,7 +248,7 @@ class ProjectMergeRequests < Spinach::FeatureSteps end def init_diff_note - find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_172_185"]').click + click_diff_line(sample_commit.line_code) end def leave_comment(message) @@ -261,14 +261,18 @@ class ProjectMergeRequests < Spinach::FeatureSteps end def init_diff_note_first_file - find('a[data-line-code="a5cc2925ca8258af241be7e5b0381edf30266302_12_12"]').click + click_diff_line(sample_commit.line_code) end def init_diff_note_second_file - find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_28_39"]').click + click_diff_line(sample_commit.del_line_code) end def have_visible_content (text) have_css("*", text: text, visible: true) end + + def click_diff_line(code) + find("a[data-line-code='#{code}']").click + end end diff --git a/features/steps/shared/diff_note.rb b/features/steps/shared/diff_note.rb index 201642a086e9d3611d9a8b2f31f9505f806f99c3..b107b083220f1ec75564b3773d59b951fb05bdee 100644 --- a/features/steps/shared/diff_note.rb +++ b/features/steps/shared/diff_note.rb @@ -1,5 +1,6 @@ module SharedDiffNote include Spinach::DSL + include RepoHelpers Given 'I cancel the diff comment' do within(diff_file_selector) do @@ -19,8 +20,8 @@ module SharedDiffNote end Given 'I leave a diff comment like "Typo, please fix"' do - find('a[data-line-code="586fb7c4e1add2d4d24e27566ed7064680098646_29_14"]').click - within("#{diff_file_selector} form[rel$='586fb7c4e1add2d4d24e27566ed7064680098646_29_14']") do + click_diff_line(sample_commit.line_code) + within("#{diff_file_selector} form[rel$='#{sample_commit.line_code}']") do fill_in "note[note]", with: "Typo, please fix" find(".js-comment-button").trigger("click") sleep 0.05 @@ -28,28 +29,28 @@ module SharedDiffNote end Given 'I preview a diff comment text like "Should fix it :smile:"' do - find('a[data-line-code="586fb7c4e1add2d4d24e27566ed7064680098646_29_14"]').click - within("#{diff_file_selector} form[rel$='586fb7c4e1add2d4d24e27566ed7064680098646_29_14']") do + click_diff_line(sample_commit.line_code) + within("#{diff_file_selector} form[rel$='#{sample_commit.line_code}']") do fill_in "note[note]", with: "Should fix it :smile:" find(".js-note-preview-button").trigger("click") end end Given 'I preview another diff comment text like "DRY this up"' do - find('a[data-line-code="586fb7c4e1add2d4d24e27566ed7064680098646_57_41"]').click + click_diff_line(sample_commit.del_line_code) - within("#{diff_file_selector} form[rel$='586fb7c4e1add2d4d24e27566ed7064680098646_57_41']") do + within("#{diff_file_selector} form[rel$='#{sample_commit.del_line_code}']") do fill_in "note[note]", with: "DRY this up" find(".js-note-preview-button").trigger("click") end end Given 'I open a diff comment form' do - find('a[data-line-code="586fb7c4e1add2d4d24e27566ed7064680098646_29_14"]').click + click_diff_line(sample_commit.line_code) end Given 'I open another diff comment form' do - find('a[data-line-code="586fb7c4e1add2d4d24e27566ed7064680098646_57_41"]').click + click_diff_line(sample_commit.del_line_code) end Given 'I write a diff comment like ":-1: I don\'t like this"' do @@ -155,6 +156,10 @@ module SharedDiffNote end def diff_file_selector - ".diff-file" + ".diff-file:nth-of-type(1)" + end + + def click_diff_line(code) + find("a[data-line-code='#{code}']").click end end diff --git a/spec/factories.rb b/spec/factories.rb index 5ad410ac5deb92addef3ec899073ba6e6c7e803e..a9f297279daf35af1263779fc70dbcc433b87475 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -105,68 +105,6 @@ FactoryGirl.define do factory :reopened_issue, traits: [:reopened] end - factory :merge_request do - title - author - source_project factory: :project - target_project { source_project } - - # → git log stable..master --pretty=oneline - # b1e6a9dbf1c85e6616497a5e7bad9143a4bd0828 tree css fixes - # 8716fc78f3c65bbf7bcf7b574febd583bc5d2812 Added loading animation for notes - # cd5c4bac5042c5469dcdf7e7b2f768d3c6fd7088 notes count for wall - # 8470d70da67355c9c009e4401746b1d5410af2e3 notes controller refactored - # 1e689bfba39525ead225eaf611948cfbe8ac34cf fixed notes logic - # f0f14c8eaba69ebddd766498a9d0b0e79becd633 finished scss refactoring - # 3a4b4fb4cde7809f033822a171b9feae19d41fff Moving ui styles to one scss file, Added ui class to body - # 065c200c33f68c2bb781e35a43f9dc8138a893b5 removed unnecessary hr tags & titles - # 1e8b111be85df0db6c8000ef9a710bc0221eae83 Merge branch 'master' of github.com:gitlabhq/gitlabhq - # f403da73f5e62794a0447aca879360494b08f678 Fixed ajax loading image. Fixed wrong wording - # e6ea73c77600d413d370249b8e392734f7d1dbee Merge pull request #468 from bencevans/patch-1 - # 4a3c05b69355deee25767a74d0512ec4b510d4ef Merge pull request #470 from bgondy/patch-1 - # 0347fe2412eb51d3efeccc35210e9268bc765ac5 Update app/views/projects/team.html.haml - # 2b5c61bdece1f7eb2b901ceea7d364065cdf76ac Title for a link fixed - # 460eeb13b7560b40104044973ff933b1a6dbbcaa Increased count of notes loaded when visit wall page - # 21c141afb1c53a9180a99d2cca29ffa613eb7e3a Merge branch 'notes_refactoring' - # 292a41cbe295f16f7148913b31eb0fb91f3251c3 Fixed comments for snippets. Tests fixed - # d41d8ffb02fa74fd4571603548bd7e401ec99e0c Reply button, Comments for Merge Request diff - # b1a36b552be2a7a6bc57fbed6c52dc6ed82111f8 Merge pull request #466 from skroutz/no-rbenv - # db75dae913e8365453ca231f101b067314a7ea71 Merge pull request #465 from skroutz/branches_commit_link - # 75f040fbfe4b5af23ff004ad3207c3976df097a8 Don't enforce rbenv version - # e42fb4fda475370dcb0d8f8f1268bfdc7a0cc437 Fix broken commit link in branches page - # 215a01f63ccdc085f75a48f6f7ab6f2b15b5852c move notes login to one controller - # 81092c01984a481e312de10a28e3f1a6dda182a3 Status codes for errors, New error pages - # 7d279f9302151e3c8f4c5df9c5200a72799409b9 better error handling for not found resource, gitolite error - # 9e6d0710e927aa8ea834b8a9ae9f277be617ac7d Merge pull request #443 from CedricGatay/fix/incorrectLineNumberingInDiff - # 6ea87c47f0f8a24ae031c3fff17bc913889ecd00 Incorrect line numbering in diff - # - # → git log master..stable --pretty=oneline - # empty - - source_branch "master" - target_branch "stable" - - trait :with_diffs do - end - - trait :closed do - state :closed - end - - trait :reopened do - state :reopened - end - - trait :simple do - source_branch "simple_merge_request" - target_branch "master" - end - - factory :closed_merge_request, traits: [:closed] - factory :reopened_merge_request, traits: [:reopened] - factory :merge_request_with_diffs, traits: [:with_diffs] - end - factory :note do project note "Note" diff --git a/spec/factories/merge_requests.rb b/spec/factories/merge_requests.rb new file mode 100644 index 0000000000000000000000000000000000000000..80dbd2f429bdfd95e4e8e61e891b11ab1afa0f97 --- /dev/null +++ b/spec/factories/merge_requests.rb @@ -0,0 +1,39 @@ +FactoryGirl.define do + factory :merge_request do + title + author + source_project factory: :project + target_project { source_project } + + # → git log --pretty=oneline feature..master + # 5937ac0a7beb003549fc5fd26fc247adbce4a52e Add submodule from gitlab.com + # 570e7b2abdd848b95f2f578043fc23bd6f6fd24d Change some files + # 6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9 More submodules + # d14d6c0abdd253381df51a723d58691b2ee1ab08 Remove ds_store files + # c1acaa58bbcbc3eafe538cb8274ba387047b69f8 Ignore DS files + source_branch "master" + target_branch "feature" + + merge_status :can_be_merged + + trait :with_diffs do + end + + trait :closed do + state :closed + end + + trait :reopened do + state :reopened + end + + trait :simple do + source_branch "feature" + target_branch "master" + end + + factory :closed_merge_request, traits: [:closed] + factory :reopened_merge_request, traits: [:reopened] + factory :merge_request_with_diffs, traits: [:with_diffs] + end +end diff --git a/spec/support/repo_helpers.rb b/spec/support/repo_helpers.rb index 2584853077f42d26433d50ecc1c79e6234ae4ef0..377e7f856fffa0f87b86747d806fca13ed04c6f2 100644 --- a/spec/support/repo_helpers.rb +++ b/spec/support/repo_helpers.rb @@ -32,6 +32,8 @@ eos author_full_name: "Dmitriy Zaporozhets", author_email: "dmitriy.zaporozhets@gmail.com", files_changed_count: 2, + line_code: '2f6fcd96b88b36ce98c38da085c795a27d92a3dd_15_14', + del_line_code: '2f6fcd96b88b36ce98c38da085c795a27d92a3dd_13_13', message: <<eos Change some files Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>