diff options
Diffstat (limited to 'spec/helpers/button_helper_spec.rb')
-rw-r--r-- | spec/helpers/button_helper_spec.rb | 134 |
1 files changed, 67 insertions, 67 deletions
diff --git a/spec/helpers/button_helper_spec.rb b/spec/helpers/button_helper_spec.rb index eebae1d7290..5a00d0b1c41 100644 --- a/spec/helpers/button_helper_spec.rb +++ b/spec/helpers/button_helper_spec.rb @@ -1,10 +1,10 @@ -require 'spec_helper' +require "spec_helper" describe ButtonHelper do - describe 'http_clone_button' do + describe "http_clone_button" do let(:user) { create(:user) } let(:project) { build_stubbed(:project) } - let(:has_tooltip_class) { 'has-tooltip' } + let(:has_tooltip_class) { "has-tooltip" } def element element = helper.http_clone_button(project) @@ -16,60 +16,60 @@ describe ButtonHelper do allow(helper).to receive(:current_user).and_return(user) end - context 'with internal auth enabled' do - context 'when user has a password' do - it 'shows no tooltip' do - expect(element.attr('class')).not_to include(has_tooltip_class) + context "with internal auth enabled" do + context "when user has a password" do + it "shows no tooltip" do + expect(element.attr("class")).not_to include(has_tooltip_class) end end - context 'when user has password automatically set' do + context "when user has password automatically set" do let(:user) { create(:user, password_automatically_set: true) } - it 'shows the password text on the dropdown' do - description = element.search('.dropdown-menu-inner-content').first + it "shows the password text on the dropdown" do + description = element.search(".dropdown-menu-inner-content").first - expect(description.inner_text).to eq 'Set a password on your account to pull or push via HTTP.' + expect(description.inner_text).to eq "Set a password on your account to pull or push via HTTP." end end end - context 'with internal auth disabled' do + context "with internal auth disabled" do before do stub_application_setting(password_authentication_enabled_for_git?: false) end - context 'when user has no personal access tokens' do - it 'has a personal access token text on the dropdown description' do - description = element.search('.dropdown-menu-inner-content').first + context "when user has no personal access tokens" do + it "has a personal access token text on the dropdown description" do + description = element.search(".dropdown-menu-inner-content").first - expect(description.inner_text).to eq 'Create a personal access token on your account to pull or push via HTTP.' + expect(description.inner_text).to eq "Create a personal access token on your account to pull or push via HTTP." end end - context 'when user has personal access tokens' do + context "when user has personal access tokens" do before do create(:personal_access_token, user: user) end - it 'does not have a personal access token text on the dropdown description' do - description = element.search('.dropdown-menu-inner-content').first + it "does not have a personal access token text on the dropdown description" do + description = element.search(".dropdown-menu-inner-content").first expect(description).to be_nil end end end - context 'when user is ldap user' do + context "when user is ldap user" do let(:user) { create(:omniauth_user, password_automatically_set: true) } - it 'shows no tooltip' do - expect(element.attr('class')).not_to include(has_tooltip_class) + it "shows no tooltip" do + expect(element.attr("class")).not_to include(has_tooltip_class) end end end - describe 'ssh_button' do + describe "ssh_button" do let(:user) { create(:user) } let(:project) { build_stubbed(:project) } @@ -83,40 +83,40 @@ describe ButtonHelper do allow(helper).to receive(:current_user).and_return(user) end - context 'without an ssh key on the user' do - it 'shows a warning on the dropdown description' do - description = element.search('.dropdown-menu-inner-content').first + context "without an ssh key on the user" do + it "shows a warning on the dropdown description" do + description = element.search(".dropdown-menu-inner-content").first expect(description.inner_text).to eq "You won't be able to pull or push project code via SSH until you add an SSH key to your profile" end end - context 'without an ssh key on the user and user_show_add_ssh_key_message unset' do + context "without an ssh key on the user and user_show_add_ssh_key_message unset" do before do stub_application_setting(user_show_add_ssh_key_message: false) end - it 'there is no warning on the dropdown description' do - description = element.search('.dropdown-menu-inner-content').first + it "there is no warning on the dropdown description" do + description = element.search(".dropdown-menu-inner-content").first expect(description).to be_nil end end - context 'with an ssh key on the user' do + context "with an ssh key on the user" do before do create(:key, user: user) end - it 'there is no warning on the dropdown description' do - description = element.search('.dropdown-menu-inner-content').first + it "there is no warning on the dropdown description" do + description = element.search(".dropdown-menu-inner-content").first expect(description).to eq nil end end end - describe 'ssh and http clone buttons' do + describe "ssh and http clone buttons" do let(:user) { create(:user) } let(:project) { build_stubbed(:project) } @@ -136,15 +136,15 @@ describe ButtonHelper do allow(helper).to receive(:current_user).and_return(user) end - it 'only shows the title of any of the clone buttons when append_link is false' do - expect(http_button_element.text).to eq('HTTP') - expect(http_button_element.search('.dropdown-menu-inner-content').first).to eq(nil) - expect(ssh_button_element.text).to eq('SSH') - expect(ssh_button_element.search('.dropdown-menu-inner-content').first).to eq(nil) + it "only shows the title of any of the clone buttons when append_link is false" do + expect(http_button_element.text).to eq("HTTP") + expect(http_button_element.search(".dropdown-menu-inner-content").first).to eq(nil) + expect(ssh_button_element.text).to eq("SSH") + expect(ssh_button_element.search(".dropdown-menu-inner-content").first).to eq(nil) end end - describe 'clipboard_button' do + describe "clipboard_button" do include IconsHelper let(:user) { create(:user) } @@ -159,52 +159,52 @@ describe ButtonHelper do allow(helper).to receive(:current_user).and_return(user) end - context 'with default options' do - context 'when no `text` attribute is not provided' do - it 'shows copy to clipboard button with default configuration and no text set to copy' do - expect(element.attr('class')).to eq('btn btn-clipboard btn-transparent') - expect(element.attr('type')).to eq('button') - expect(element.attr('aria-label')).to eq('Copy to clipboard') - expect(element.attr('data-toggle')).to eq('tooltip') - expect(element.attr('data-placement')).to eq('bottom') - expect(element.attr('data-container')).to eq('body') - expect(element.attr('data-clipboard-text')).to eq(nil) + context "with default options" do + context "when no `text` attribute is not provided" do + it "shows copy to clipboard button with default configuration and no text set to copy" do + expect(element.attr("class")).to eq("btn btn-clipboard btn-transparent") + expect(element.attr("type")).to eq("button") + expect(element.attr("aria-label")).to eq("Copy to clipboard") + expect(element.attr("data-toggle")).to eq("tooltip") + expect(element.attr("data-placement")).to eq("bottom") + expect(element.attr("data-container")).to eq("body") + expect(element.attr("data-clipboard-text")).to eq(nil) expect(element.inner_text).to eq("") - expect(element.to_html).to include sprite_icon('duplicate') + expect(element.to_html).to include sprite_icon("duplicate") end end - context 'when `text` attribute is provided' do - it 'shows copy to clipboard button with provided `text` to copy' do - expect(element(text: 'Hello World!').attr('data-clipboard-text')).to eq('Hello World!') + context "when `text` attribute is provided" do + it "shows copy to clipboard button with provided `text` to copy" do + expect(element(text: "Hello World!").attr("data-clipboard-text")).to eq("Hello World!") end end - context 'when `title` attribute is provided' do - it 'shows copy to clipboard button with provided `title` as tooltip' do - expect(element(title: 'Copy to my clipboard!').attr('aria-label')).to eq('Copy to my clipboard!') + context "when `title` attribute is provided" do + it "shows copy to clipboard button with provided `title` as tooltip" do + expect(element(title: "Copy to my clipboard!").attr("aria-label")).to eq("Copy to my clipboard!") end end end - context 'with `button_text` attribute provided' do - it 'shows copy to clipboard button with provided `button_text` as button label' do - expect(element(button_text: 'Copy text').inner_text).to eq('Copy text') + context "with `button_text` attribute provided" do + it "shows copy to clipboard button with provided `button_text` as button label" do + expect(element(button_text: "Copy text").inner_text).to eq("Copy text") end end - context 'with `hide_tooltip` attribute provided' do - it 'shows copy to clipboard button without tooltip support' do - expect(element(hide_tooltip: true).attr('data-placement')).to eq(nil) - expect(element(hide_tooltip: true).attr('data-toggle')).to eq(nil) - expect(element(hide_tooltip: true).attr('data-container')).to eq(nil) + context "with `hide_tooltip` attribute provided" do + it "shows copy to clipboard button without tooltip support" do + expect(element(hide_tooltip: true).attr("data-placement")).to eq(nil) + expect(element(hide_tooltip: true).attr("data-toggle")).to eq(nil) + expect(element(hide_tooltip: true).attr("data-container")).to eq(nil) end end - context 'with `hide_button_icon` attribute provided' do - it 'shows copy to clipboard button without tooltip support' do - expect(element(hide_button_icon: true).to_html).not_to include sprite_icon('duplicate') + context "with `hide_button_icon` attribute provided" do + it "shows copy to clipboard button without tooltip support" do + expect(element(hide_button_icon: true).to_html).not_to include sprite_icon("duplicate") end end end |