Commit 4878ef2f authored by Luke Bennett's avatar Luke Bennett Committed by Phil Hughes

CE port gitlab-ee!6112

parent 1f31803d
import $ from 'jquery'; import $ from 'jquery';
import _ from 'underscore';
import ProtectedBranchAccessDropdown from './protected_branch_access_dropdown'; import ProtectedBranchAccessDropdown from './protected_branch_access_dropdown';
import CreateItemDropdown from '../create_item_dropdown'; import CreateItemDropdown from '../create_item_dropdown';
import AccessorUtilities from '../lib/utils/accessor'; import AccessorUtilities from '../lib/utils/accessor';
const PB_LOCAL_STORAGE_KEY = 'protected-branches-defaults';
export default class ProtectedBranchCreate { export default class ProtectedBranchCreate {
constructor() { constructor() {
this.$form = $('.js-new-protected-branch'); this.$form = $('.js-new-protected-branch');
...@@ -43,8 +40,6 @@ export default class ProtectedBranchCreate { ...@@ -43,8 +40,6 @@ export default class ProtectedBranchCreate {
onSelect: this.onSelectCallback, onSelect: this.onSelectCallback,
getData: ProtectedBranchCreate.getProtectedBranches, getData: ProtectedBranchCreate.getProtectedBranches,
}); });
this.loadPreviousSelection($allowedToMergeDropdown.data('glDropdown'), $allowedToPushDropdown.data('glDropdown'));
} }
// This will run after clicked callback // This will run after clicked callback
...@@ -59,39 +54,10 @@ export default class ProtectedBranchCreate { ...@@ -59,39 +54,10 @@ export default class ProtectedBranchCreate {
$allowedToPushInput.length $allowedToPushInput.length
); );
this.savePreviousSelection($allowedToMergeInput.val(), $allowedToPushInput.val());
this.$form.find('input[type="submit"]').prop('disabled', completedForm); this.$form.find('input[type="submit"]').prop('disabled', completedForm);
} }
static getProtectedBranches(term, callback) { static getProtectedBranches(term, callback) {
callback(gon.open_branches); callback(gon.open_branches);
} }
loadPreviousSelection(mergeDropdown, pushDropdown) {
let mergeIndex = 0;
let pushIndex = 0;
if (this.isLocalStorageAvailable) {
const savedDefaults = JSON.parse(window.localStorage.getItem(PB_LOCAL_STORAGE_KEY));
if (savedDefaults != null) {
mergeIndex = _.findLastIndex(mergeDropdown.fullData.roles, {
id: parseInt(savedDefaults.mergeSelection, 0),
});
pushIndex = _.findLastIndex(pushDropdown.fullData.roles, {
id: parseInt(savedDefaults.pushSelection, 0),
});
}
}
mergeDropdown.selectRowAtIndex(mergeIndex);
pushDropdown.selectRowAtIndex(pushIndex);
}
savePreviousSelection(mergeSelection, pushSelection) {
if (this.isLocalStorageAvailable) {
const branchDefaults = {
mergeSelection,
pushSelection,
};
window.localStorage.setItem(PB_LOCAL_STORAGE_KEY, JSON.stringify(branchDefaults));
}
}
} }
---
title: CE port gitlab-ee!6112
merge_request: 19714
author:
type: other
...@@ -60,33 +60,6 @@ feature 'Protected Branches', :js do ...@@ -60,33 +60,6 @@ feature 'Protected Branches', :js do
expect(page).to have_content('No branches to show') expect(page).to have_content('No branches to show')
end end
end end
describe "Saved defaults" do
it "keeps the allowed to merge and push dropdowns defaults based on the previous selection" do
visit project_protected_branches_path(project)
form = '.js-new-protected-branch'
within form do
find(".js-allowed-to-merge").click
wait_for_requests
click_link 'No one'
find(".js-allowed-to-push").click
wait_for_requests
click_link 'Developers + Maintainers'
end
visit project_protected_branches_path(project)
within form do
page.within(".js-allowed-to-merge") do
expect(page.find(".dropdown-toggle-text")).to have_content("No one")
end
page.within(".js-allowed-to-push") do
expect(page.find(".dropdown-toggle-text")).to have_content("Developers + Maintainers")
end
end
end
end
end end
context 'logged in as admin' do context 'logged in as admin' do
...@@ -97,6 +70,7 @@ feature 'Protected Branches', :js do ...@@ -97,6 +70,7 @@ feature 'Protected Branches', :js do
describe "explicit protected branches" do describe "explicit protected branches" do
it "allows creating explicit protected branches" do it "allows creating explicit protected branches" do
visit project_protected_branches_path(project) visit project_protected_branches_path(project)
set_defaults
set_protected_branch_name('some-branch') set_protected_branch_name('some-branch')
click_on "Protect" click_on "Protect"
...@@ -110,6 +84,7 @@ feature 'Protected Branches', :js do ...@@ -110,6 +84,7 @@ feature 'Protected Branches', :js do
project.repository.add_branch(admin, 'some-branch', commit.id) project.repository.add_branch(admin, 'some-branch', commit.id)
visit project_protected_branches_path(project) visit project_protected_branches_path(project)
set_defaults
set_protected_branch_name('some-branch') set_protected_branch_name('some-branch')
click_on "Protect" click_on "Protect"
...@@ -118,6 +93,7 @@ feature 'Protected Branches', :js do ...@@ -118,6 +93,7 @@ feature 'Protected Branches', :js do
it "displays an error message if the named branch does not exist" do it "displays an error message if the named branch does not exist" do
visit project_protected_branches_path(project) visit project_protected_branches_path(project)
set_defaults
set_protected_branch_name('some-branch') set_protected_branch_name('some-branch')
click_on "Protect" click_on "Protect"
...@@ -128,6 +104,7 @@ feature 'Protected Branches', :js do ...@@ -128,6 +104,7 @@ feature 'Protected Branches', :js do
describe "wildcard protected branches" do describe "wildcard protected branches" do
it "allows creating protected branches with a wildcard" do it "allows creating protected branches with a wildcard" do
visit project_protected_branches_path(project) visit project_protected_branches_path(project)
set_defaults
set_protected_branch_name('*-stable') set_protected_branch_name('*-stable')
click_on "Protect" click_on "Protect"
...@@ -141,6 +118,7 @@ feature 'Protected Branches', :js do ...@@ -141,6 +118,7 @@ feature 'Protected Branches', :js do
project.repository.add_branch(admin, 'staging-stable', 'master') project.repository.add_branch(admin, 'staging-stable', 'master')
visit project_protected_branches_path(project) visit project_protected_branches_path(project)
set_defaults
set_protected_branch_name('*-stable') set_protected_branch_name('*-stable')
click_on "Protect" click_on "Protect"
...@@ -157,6 +135,7 @@ feature 'Protected Branches', :js do ...@@ -157,6 +135,7 @@ feature 'Protected Branches', :js do
visit project_protected_branches_path(project) visit project_protected_branches_path(project)
set_protected_branch_name('*-stable') set_protected_branch_name('*-stable')
set_defaults
click_on "Protect" click_on "Protect"
visit project_protected_branches_path(project) visit project_protected_branches_path(project)
...@@ -180,4 +159,18 @@ feature 'Protected Branches', :js do ...@@ -180,4 +159,18 @@ feature 'Protected Branches', :js do
find(".dropdown-input-field").set(branch_name) find(".dropdown-input-field").set(branch_name)
click_on("Create wildcard #{branch_name}") click_on("Create wildcard #{branch_name}")
end end
def set_defaults
find(".js-allowed-to-merge").click
within('.qa-allowed-to-merge-dropdown') do
expect(first("li")).to have_content("Roles")
find(:link, 'No one').click
end
find(".js-allowed-to-push").click
within('.qa-allowed-to-push-dropdown') do
expect(first("li")).to have_content("Roles")
find(:link, 'No one').click
end
end
end end
...@@ -5,6 +5,12 @@ shared_examples "protected branches > access control > CE" do ...@@ -5,6 +5,12 @@ shared_examples "protected branches > access control > CE" do
set_protected_branch_name('master') set_protected_branch_name('master')
find(".js-allowed-to-merge").click
within('.qa-allowed-to-merge-dropdown') do
expect(first("li")).to have_content("Roles")
find(:link, 'No one').click
end
within('.js-new-protected-branch') do within('.js-new-protected-branch') do
allowed_to_push_button = find(".js-allowed-to-push") allowed_to_push_button = find(".js-allowed-to-push")
...@@ -25,6 +31,18 @@ shared_examples "protected branches > access control > CE" do ...@@ -25,6 +31,18 @@ shared_examples "protected branches > access control > CE" do
set_protected_branch_name('master') set_protected_branch_name('master')
find(".js-allowed-to-merge").click
within('.qa-allowed-to-merge-dropdown') do
expect(first("li")).to have_content("Roles")
find(:link, 'No one').click
end
find(".js-allowed-to-push").click
within('.qa-allowed-to-push-dropdown') do
expect(first("li")).to have_content("Roles")
find(:link, 'No one').click
end
click_on "Protect" click_on "Protect"
expect(ProtectedBranch.count).to eq(1) expect(ProtectedBranch.count).to eq(1)
...@@ -59,6 +77,12 @@ shared_examples "protected branches > access control > CE" do ...@@ -59,6 +77,12 @@ shared_examples "protected branches > access control > CE" do
end end
end end
find(".js-allowed-to-push").click
within('.qa-allowed-to-push-dropdown') do
expect(first("li")).to have_content("Roles")
find(:link, 'No one').click
end
click_on "Protect" click_on "Protect"
expect(ProtectedBranch.count).to eq(1) expect(ProtectedBranch.count).to eq(1)
...@@ -70,6 +94,18 @@ shared_examples "protected branches > access control > CE" do ...@@ -70,6 +94,18 @@ shared_examples "protected branches > access control > CE" do
set_protected_branch_name('master') set_protected_branch_name('master')
find(".js-allowed-to-merge").click
within('.qa-allowed-to-merge-dropdown') do
expect(first("li")).to have_content("Roles")
find(:link, 'No one').click
end
find(".js-allowed-to-push").click
within('.qa-allowed-to-push-dropdown') do
expect(first("li")).to have_content("Roles")
find(:link, 'No one').click
end
click_on "Protect" click_on "Protect"
expect(ProtectedBranch.count).to eq(1) expect(ProtectedBranch.count).to eq(1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment