summaryrefslogtreecommitdiff
path: root/spec/views/shared/_global_alert.html.haml_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/views/shared/_global_alert.html.haml_spec.rb')
-rw-r--r--spec/views/shared/_global_alert.html.haml_spec.rb85
1 files changed, 85 insertions, 0 deletions
diff --git a/spec/views/shared/_global_alert.html.haml_spec.rb b/spec/views/shared/_global_alert.html.haml_spec.rb
new file mode 100644
index 00000000000..7eec068645a
--- /dev/null
+++ b/spec/views/shared/_global_alert.html.haml_spec.rb
@@ -0,0 +1,85 @@
+# frozen_string_literal: true
+require 'spec_helper'
+
+RSpec.describe 'shared/_global_alert.html.haml' do
+ before do
+ allow(view).to receive(:sprite_icon).and_return('<span class="icon"></span>'.html_safe)
+ end
+
+ it 'renders the title' do
+ title = "The alert's title"
+ render partial: 'shared/global_alert', locals: { title: title }
+
+ expect(rendered).to have_text(title)
+ end
+
+ context 'variants' do
+ it 'renders an info alert by default' do
+ render
+
+ expect(rendered).to have_selector(".gl-alert-info")
+ end
+
+ %w[warning success danger tip].each do |variant|
+ it "renders a #{variant} variant" do
+ allow(view).to receive(:variant).and_return(variant)
+ render partial: 'shared/global_alert', locals: { variant: variant }
+
+ expect(rendered).to have_selector(".gl-alert-#{variant}")
+ end
+ end
+ end
+
+ context 'dismissible option' do
+ it 'shows the dismiss button by default' do
+ render
+
+ expect(rendered).to have_selector('.gl-dismiss-btn')
+ end
+
+ it 'does not show the dismiss button when dismissible is false' do
+ render partial: 'shared/global_alert', locals: { dismissible: false }
+
+ expect(rendered).not_to have_selector('.gl-dismiss-btn')
+ end
+ end
+
+ context 'fixed layout' do
+ before do
+ allow(view).to receive(:fluid_layout).and_return(false)
+ end
+
+ it 'does not add layout limited class' do
+ render
+
+ expect(rendered).not_to have_selector('.gl-alert-layout-limited')
+ end
+
+ it 'adds container classes' do
+ render
+
+ expect(rendered).to have_selector('.container-fluid.container-limited')
+ end
+
+ it 'does not add container classes if is_contained is true' do
+ render partial: 'shared/global_alert', locals: { is_contained: true }
+
+ expect(rendered).not_to have_selector('.container-fluid.container-limited')
+ end
+ end
+
+ context 'fluid layout' do
+ before do
+ allow(view).to receive(:fluid_layout).and_return(true)
+ render
+ end
+
+ it 'adds layout limited class' do
+ expect(rendered).to have_selector('.gl-alert-layout-limited')
+ end
+
+ it 'does not add container classes' do
+ expect(rendered).not_to have_selector('.container-fluid.container-limited')
+ end
+ end
+end