summaryrefslogtreecommitdiff
path: root/spec/views/shared/_gl_toggle.haml_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/views/shared/_gl_toggle.haml_spec.rb')
-rw-r--r--spec/views/shared/_gl_toggle.haml_spec.rb85
1 files changed, 85 insertions, 0 deletions
diff --git a/spec/views/shared/_gl_toggle.haml_spec.rb b/spec/views/shared/_gl_toggle.haml_spec.rb
new file mode 100644
index 00000000000..3ac1ef30c84
--- /dev/null
+++ b/spec/views/shared/_gl_toggle.haml_spec.rb
@@ -0,0 +1,85 @@
+# frozen_string_literal: true
+require 'spec_helper'
+
+RSpec.describe 'shared/_gl_toggle.html.haml' do
+ context 'defaults' do
+ before do
+ render partial: 'shared/gl_toggle', locals: {
+ classes: '.js-gl-toggle'
+ }
+ end
+
+ it 'does not set a name' do
+ expect(rendered).not_to have_selector('[data-name]')
+ end
+
+ it 'sets default is-checked attributes' do
+ expect(rendered).to have_selector('[data-is-checked="false"]')
+ end
+
+ it 'sets default disabled attributes' do
+ expect(rendered).to have_selector('[data-disabled="false"]')
+ end
+
+ it 'sets default is-loading attributes' do
+ expect(rendered).to have_selector('[data-is-loading="false"]')
+ end
+
+ it 'does not set a label' do
+ expect(rendered).not_to have_selector('[data-label]')
+ end
+
+ it 'does not set a label position' do
+ expect(rendered).not_to have_selector('[data-label-position]')
+ end
+ end
+
+ context 'with custom options' do
+ before do
+ render partial: 'shared/gl_toggle', locals: {
+ classes: 'js-custom-gl-toggle',
+ name: 'toggle-name',
+ is_checked: true,
+ disabled: true,
+ is_loading: true,
+ label: 'Custom label',
+ label_position: 'top',
+ data: {
+ foo: 'bar'
+ }
+ }
+ end
+
+ it 'sets the custom class' do
+ expect(rendered).to have_selector('.js-custom-gl-toggle')
+ end
+
+ it 'sets the custom name' do
+ expect(rendered).to have_selector('[data-name="toggle-name"]')
+ end
+
+ it 'sets the custom is-checked attributes' do
+ expect(rendered).to have_selector('[data-is-checked="true"]')
+ end
+
+ it 'sets the custom disabled attributes' do
+ expect(rendered).to have_selector('[data-disabled="true"]')
+ end
+
+ it 'sets the custom is-loading attributes' do
+ expect(rendered).to have_selector('[data-is-loading="true"]')
+ end
+
+ it 'sets the custom label' do
+ expect(rendered).to have_selector('[data-label="Custom label"]')
+ end
+
+ it 'sets the cutom label position' do
+ expect(rendered).to have_selector('[data-label-position="top"]')
+ end
+
+ it 'sets cutom data attributes' do
+ expect(rendered).to have_selector('[data-foo="bar"]')
+ end
+ end
+end