bootstrap_it 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +6 -1
- data/bootstrap_it.gemspec +9 -8
- data/lib/bootstrap_it/config.rb +1 -1
- data/lib/bootstrap_it/engine.rb +1 -1
- data/lib/bootstrap_it/version.rb +1 -1
- data/lib/bootstrap_it/view_helpers.rb +4 -1
- data/lib/bootstrap_it/view_helpers/breadcrumb.rb +3 -2
- data/lib/bootstrap_it/view_helpers/button.rb +47 -39
- data/lib/bootstrap_it/view_helpers/button_group.rb +23 -4
- data/lib/bootstrap_it/view_helpers/dropdown_menu.rb +6 -5
- data/lib/bootstrap_it/view_helpers/form.rb +40 -41
- data/lib/bootstrap_it/view_helpers/grid.rb +9 -5
- data/lib/bootstrap_it/view_helpers/icon.rb +4 -2
- data/lib/bootstrap_it/view_helpers/list.rb +5 -5
- data/lib/bootstrap_it/view_helpers/misc.rb +37 -36
- data/lib/bootstrap_it/view_helpers/mixin.rb +16 -24
- data/lib/bootstrap_it/view_helpers/nav.rb +23 -21
- data/lib/bootstrap_it/view_helpers/pagination.rb +8 -6
- data/lib/bootstrap_it/view_helpers/table.rb +6 -10
- data/lib/bootstrap_it/view_helpers/text.rb +10 -8
- data/spec/spec_helper.rb +5 -2
- data/spec/support/example_groups/view_helpers_example_group.rb +4 -5
- data/spec/view_helpers/breadcrumb_spec.rb +8 -4
- data/spec/view_helpers/button_group_spec.rb +4 -4
- data/spec/view_helpers/button_spec.rb +25 -23
- data/spec/view_helpers/button_toolbar_spec.rb +3 -3
- data/spec/view_helpers/dropdown_menu_spec.rb +9 -9
- data/spec/view_helpers/form_spec.rb +4 -4
- data/spec/view_helpers/grid_spec.rb +5 -5
- data/spec/view_helpers/icon_spec.rb +2 -2
- data/spec/view_helpers/list_spec.rb +9 -9
- data/spec/view_helpers/misc_spec.rb +11 -11
- data/spec/view_helpers/mixin_spec.rb +49 -38
- data/spec/view_helpers/nav_spec.rb +14 -10
- data/spec/view_helpers/pagination_spec.rb +6 -6
- data/spec/view_helpers/table_spec.rb +9 -10
- data/spec/view_helpers/text_spec.rb +3 -3
- data/spec/views/examples_spec.rb +49 -36
- metadata +31 -32
- data/lib/bootstrap_it/view_helpers/button_toolbar.rb +0 -21
@@ -4,8 +4,9 @@ module BootstrapIt
|
|
4
4
|
#
|
5
5
|
# Pagination
|
6
6
|
#
|
7
|
-
# @author
|
7
|
+
# @author Alexey Ovchinnikov <alexiss@cybernetlab.ru>
|
8
8
|
#
|
9
|
+
# @see http://getbootstrap.com/components/#pagination Bootstrap docs
|
9
10
|
class Pagination < WrapIt::Container
|
10
11
|
include Sizable
|
11
12
|
|
@@ -18,17 +19,18 @@ module BootstrapIt
|
|
18
19
|
#
|
19
20
|
# Pager
|
20
21
|
#
|
21
|
-
# @author
|
22
|
+
# @author Alexey Ovchinnikov <alexiss@cybernetlab.ru>
|
22
23
|
#
|
24
|
+
# @see http://getbootstrap.com/components/#pagination-pager Bootstrap docs
|
23
25
|
class Pager < WrapIt::Container
|
24
26
|
default_tag 'ul'
|
25
27
|
html_class 'pager'
|
26
28
|
child :link_item, ListLinkItem
|
27
|
-
child :previous, ListLinkItem,
|
28
|
-
child :next, ListLinkItem,
|
29
|
+
child :previous, ListLinkItem, li_class: 'previous'
|
30
|
+
child :next, ListLinkItem, li_class: 'next'
|
29
31
|
end
|
30
32
|
|
31
|
-
|
32
|
-
|
33
|
+
register :pagination, 'BootstrapIt::ViewHelpers::Pagination'
|
34
|
+
register :pager, 'BootstrapIt::ViewHelpers::Pager'
|
33
35
|
end
|
34
36
|
end
|
@@ -4,8 +4,9 @@ module BootstrapIt
|
|
4
4
|
#
|
5
5
|
# Table
|
6
6
|
#
|
7
|
-
# @author
|
7
|
+
# @author Alexey Ovchinnikov <alexiss@cybernetlab.ru>
|
8
8
|
#
|
9
|
+
# @see http://getbootstrap.com/css/#tables Bootstrap docs
|
9
10
|
class Table < WrapIt::Container
|
10
11
|
html_class 'table'
|
11
12
|
html_class_prefix 'table-'
|
@@ -21,17 +22,12 @@ module BootstrapIt
|
|
21
22
|
child :row, 'BootstrapIt::ViewHelpers::TableRow'
|
22
23
|
|
23
24
|
after_initialize { @tag = 'table' }
|
24
|
-
|
25
|
-
# TODO: remove it since WrapIt 0.1.5
|
26
|
-
def unwrap
|
27
|
-
@wrapper = nil
|
28
|
-
end
|
29
25
|
end
|
30
26
|
|
31
27
|
#
|
32
28
|
# TableRow
|
33
29
|
#
|
34
|
-
# @author
|
30
|
+
# @author Alexey Ovchinnikov <alexiss@cybernetlab.ru>
|
35
31
|
#
|
36
32
|
class TableRow < WrapIt::Container
|
37
33
|
include Contextual
|
@@ -39,7 +35,7 @@ module BootstrapIt
|
|
39
35
|
child :cell, 'BootstrapIt::ViewHelpers::TableCell'
|
40
36
|
alias_method :td, :cell
|
41
37
|
|
42
|
-
child :head, 'BootstrapIt::ViewHelpers::TableCell',
|
38
|
+
child :head, 'BootstrapIt::ViewHelpers::TableCell', tag: 'th'
|
43
39
|
alias_method :th, :head
|
44
40
|
alias_method :header, :head
|
45
41
|
|
@@ -49,7 +45,7 @@ module BootstrapIt
|
|
49
45
|
#
|
50
46
|
# TableCell
|
51
47
|
#
|
52
|
-
# @author
|
48
|
+
# @author Alexey Ovchinnikov <alexiss@cybernetlab.ru>
|
53
49
|
#
|
54
50
|
class TableCell < WrapIt::Base
|
55
51
|
include WrapIt::TextContainer
|
@@ -67,6 +63,6 @@ module BootstrapIt
|
|
67
63
|
end
|
68
64
|
end
|
69
65
|
|
70
|
-
|
66
|
+
register :table, 'BootstrapIt::ViewHelpers::Table'
|
71
67
|
end
|
72
68
|
end
|
@@ -4,7 +4,7 @@ module BootstrapIt
|
|
4
4
|
#
|
5
5
|
# Text
|
6
6
|
#
|
7
|
-
# @author
|
7
|
+
# @author Alexey Ovchinnikov <alexiss@cybernetlab.ru>
|
8
8
|
#
|
9
9
|
class Text < WrapIt::Base
|
10
10
|
include WrapIt::TextContainer
|
@@ -16,8 +16,9 @@ module BootstrapIt
|
|
16
16
|
#
|
17
17
|
# Label
|
18
18
|
#
|
19
|
-
# @author
|
19
|
+
# @author Alexey Ovchinnikov <alexiss@cybernetlab.ru>
|
20
20
|
#
|
21
|
+
# @see http://getbootstrap.com/components/#labels Bootstrap docs
|
21
22
|
class Label < Text
|
22
23
|
default_tag 'span'
|
23
24
|
html_class 'label'
|
@@ -29,18 +30,19 @@ module BootstrapIt
|
|
29
30
|
#
|
30
31
|
# Badge
|
31
32
|
#
|
32
|
-
# @author
|
33
|
+
# @author Alexey Ovchinnikov <alexiss@cybernetlab.ru>
|
33
34
|
#
|
35
|
+
# @see http://getbootstrap.com/components/#badges Bootstrap docs
|
34
36
|
# TODO: right-alignment
|
35
37
|
class Badge < Text
|
36
38
|
default_tag 'span'
|
37
39
|
html_class 'badge'
|
38
40
|
end
|
39
41
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
register :text, 'BootstrapIt::ViewHelpers::Text'
|
43
|
+
register :p, 'BootstrapIt::ViewHelpers::Text'
|
44
|
+
register :span, 'BootstrapIt::ViewHelpers::Text'
|
45
|
+
register :label, 'BootstrapIt::ViewHelpers::Label'
|
46
|
+
register :badge, 'BootstrapIt::ViewHelpers::Badge'
|
45
47
|
end
|
46
48
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler'
|
3
|
+
|
4
|
+
require 'rspec-html-matchers'
|
5
|
+
|
3
6
|
#Bundler.require :default, :development
|
4
7
|
#Bundler.require :development
|
5
8
|
#puts "--- #{Object.constants}"
|
6
9
|
|
7
10
|
require 'combustion'
|
8
|
-
require 'capybara/rspec'
|
11
|
+
# require 'capybara/rspec'
|
9
12
|
|
10
13
|
Dir[File.join File.dirname(__FILE__), 'support', '**', '*.rb'].each {|file| require file}
|
11
14
|
|
@@ -14,7 +17,7 @@ Combustion.initialize! :action_controller, :action_view, :sprockets do |app|
|
|
14
17
|
# app.config.sass.cache = false
|
15
18
|
end
|
16
19
|
|
17
|
-
Capybara.app = Combustion::Application
|
20
|
+
# Capybara.app = Combustion::Application
|
18
21
|
|
19
22
|
require 'rspec/rails'
|
20
23
|
#require 'capybara/rails'
|
@@ -41,15 +41,14 @@ module ViewHelpersExampleGroup
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
+
=begin
|
44
45
|
RSpec::Matchers.define :render_with do |selector, options = {}|
|
45
46
|
match_for_should do |actual|
|
46
|
-
|
47
|
-
.has_selector?(selector, options)
|
47
|
+
actual.render.has_tag?(selector, options)
|
48
48
|
end
|
49
49
|
|
50
50
|
match_for_should_not do |actual|
|
51
|
-
|
52
|
-
.has_no_selector?(selector, options)
|
51
|
+
actual.render.has_no_tag?(selector, options)
|
53
52
|
end
|
54
53
|
|
55
54
|
failure_message_for_should do |actual|
|
@@ -60,7 +59,7 @@ module ViewHelpersExampleGroup
|
|
60
59
|
"expected that #{actual.render} would not have selector #{selector}"
|
61
60
|
end
|
62
61
|
end
|
63
|
-
|
62
|
+
=end
|
64
63
|
RSpec::Matchers.define :have_flag do |flag|
|
65
64
|
chain :with do |options|
|
66
65
|
@options = options
|
@@ -1,12 +1,16 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe BootstrapIt::ViewHelpers::Breadcrumb do
|
4
|
-
it { expect(helper).to
|
4
|
+
it { expect(helper.render).to have_tag 'ol.breadcrumb' }
|
5
5
|
it { expect(helper).to be_kind_of WrapIt::Container }
|
6
|
-
|
6
|
+
|
7
|
+
it 'renders active items' do
|
8
|
+
expect(helper { |h| h.item :active }.render).to have_tag 'ol > li.active'
|
9
|
+
end
|
10
|
+
|
7
11
|
it 'reders links' do
|
8
12
|
expect(
|
9
|
-
helper { |h| h.link_item 'test', 'http://url' }
|
10
|
-
).to
|
13
|
+
helper { |h| h.link_item 'test', 'http://url' }.render
|
14
|
+
).to have_tag 'ol > li > a[@href="http://url"][text()="test"]'
|
11
15
|
end
|
12
16
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe BootstrapIt::ViewHelpers::ButtonGroup do
|
4
|
-
it { expect(helper).to
|
4
|
+
it { expect(helper.render).to have_tag 'div.btn-group' }
|
5
5
|
|
6
6
|
# behaviour
|
7
7
|
it { expect(helper).to be_kind_of BootstrapIt::ViewHelpers::Sizable }
|
@@ -16,20 +16,20 @@ describe BootstrapIt::ViewHelpers::ButtonGroup do
|
|
16
16
|
|
17
17
|
# buttons
|
18
18
|
it 'renders buttons' do
|
19
|
-
expect(helper { |h| h.button 'test' }).to
|
19
|
+
expect(helper { |h| h.button 'test' }.render).to have_tag(
|
20
20
|
'div.btn-group > button.btn.btn-default[text()="test"]'
|
21
21
|
)
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'renders radios' do
|
25
|
-
expect(helper { |h| h.radio 'test' }).to
|
25
|
+
expect(helper { |h| h.radio 'test' }.render).to have_tag(
|
26
26
|
'div.btn-group[@data-toggle="buttons"]' \
|
27
27
|
' > label.btn.btn-default[text()="test"] > input[@type="radio"]'
|
28
28
|
)
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'renders checkboxes' do
|
32
|
-
expect(helper { |h| h.checkbox 'test' }).to
|
32
|
+
expect(helper { |h| h.checkbox 'test' }.render).to have_tag(
|
33
33
|
'div.btn-group[@data-toggle="buttons"]' \
|
34
34
|
' > label.btn.btn-default[text()="test"] > input[@type="checkbox"]'
|
35
35
|
)
|
@@ -1,32 +1,32 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe BootstrapIt::ViewHelpers::Button do
|
4
|
-
it { expect(helper).to
|
4
|
+
it { expect(helper.render).to have_tag 'button.btn.btn-default[@type="button"]' }
|
5
5
|
|
6
6
|
it 'allows `submit` type' do
|
7
|
-
expect(helper
|
7
|
+
expect(helper(type: 'submit').render).to have_tag(
|
8
8
|
'button.btn.btn-default[@type="submit"]'
|
9
9
|
)
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'allows `a` tag' do
|
13
|
-
expect(helper
|
13
|
+
expect(helper(tag: :a).render).to have_tag 'a.btn.btn-default[@role="button"]'
|
14
14
|
end
|
15
15
|
|
16
16
|
it 'allows `input` tag' do
|
17
|
-
expect(helper
|
17
|
+
expect(helper(tag: :input).render).to have_tag(
|
18
18
|
'input.btn.btn-default[@type="button"]'
|
19
19
|
)
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'allows `input` with `submit` type' do
|
23
|
-
expect(helper
|
23
|
+
expect(helper(tag: :input, type: :submit).render).to have_tag(
|
24
24
|
'input.btn.btn-default[@type="submit"]'
|
25
25
|
)
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'changes custom tags to `button`' do
|
29
|
-
expect(helper
|
29
|
+
expect(helper(tag: :p).render).to have_tag 'button.btn.btn-default'
|
30
30
|
end
|
31
31
|
|
32
32
|
# method returns safety
|
@@ -43,13 +43,13 @@ describe BootstrapIt::ViewHelpers::Button do
|
|
43
43
|
|
44
44
|
# icons
|
45
45
|
it 'renders icon throw options' do
|
46
|
-
expect(helper
|
46
|
+
expect(helper(icon: :bell).render).to have_tag(
|
47
47
|
'button.btn.btn-default > i.fa.fa-bell'
|
48
48
|
)
|
49
49
|
end
|
50
50
|
|
51
51
|
it 'renders icon with helper' do
|
52
|
-
expect(helper { |b| b.icon :star }).to
|
52
|
+
expect(helper { |b| b.icon :star }.render).to have_tag(
|
53
53
|
'button.btn.btn-default > i.fa.fa-star'
|
54
54
|
)
|
55
55
|
end
|
@@ -66,7 +66,7 @@ describe BootstrapIt::ViewHelpers::Button do
|
|
66
66
|
value: 'v1',
|
67
67
|
class: 'someclass',
|
68
68
|
helper_name: 'radio'
|
69
|
-
)).to
|
69
|
+
).render).to have_tag(
|
70
70
|
'label.btn.btn-default.someclass[text()="text"][@label_for="option1"]' \
|
71
71
|
' > input[@type="radio"][@name="group-name"][@id="option1"]' \
|
72
72
|
'[@value="v1"]'
|
@@ -82,7 +82,7 @@ describe BootstrapIt::ViewHelpers::Button do
|
|
82
82
|
value: 'v1',
|
83
83
|
class: 'someclass',
|
84
84
|
helper_name: 'checkbox'
|
85
|
-
)).to
|
85
|
+
).render).to have_tag(
|
86
86
|
'label.btn.btn-default.someclass[text()="text"] >' \
|
87
87
|
' input[@type="checkbox"][@name="group-name"]' \
|
88
88
|
'[@id="option1"][@value="v1"]'
|
@@ -91,11 +91,13 @@ describe BootstrapIt::ViewHelpers::Button do
|
|
91
91
|
|
92
92
|
# toggling
|
93
93
|
it { expect(helper).to have_flag :toggle }
|
94
|
-
it
|
94
|
+
it 'renders button with toggle data' do
|
95
|
+
expect(helper(:toggle).render).to have_tag 'button[@data-toggle="button"]'
|
96
|
+
end
|
95
97
|
|
96
98
|
# state text
|
97
99
|
it 'extracts state text from options' do
|
98
|
-
expect(helper
|
100
|
+
expect(helper(loading_text: 'text').render).to have_tag(
|
99
101
|
'button[@data-loading-text="text"]'
|
100
102
|
)
|
101
103
|
end
|
@@ -122,14 +124,14 @@ describe BootstrapIt::ViewHelpers::DropdownButton do
|
|
122
124
|
|
123
125
|
# dropdown
|
124
126
|
it 'renders dropdown toggle' do
|
125
|
-
expect(helper('action text') { |b| b.divider }).to
|
127
|
+
expect(helper('action text') { |b| b.divider }.render).to have_tag(
|
126
128
|
'div.btn-group > button.dropdown-toggle[@data-toggle="dropdown"]' \
|
127
|
-
'[text()="action text"] > span.caret'
|
129
|
+
'[text()="action text "] > span.caret'
|
128
130
|
)
|
129
131
|
end
|
130
132
|
|
131
133
|
it 'renders dropdown menu' do
|
132
|
-
expect(helper('action text') { |b| b.divider }).to
|
134
|
+
expect(helper('action text') { |b| b.divider }.render).to have_tag(
|
133
135
|
'div.btn-group > button + ul.dropdown-menu > li.divider'
|
134
136
|
)
|
135
137
|
end
|
@@ -138,14 +140,14 @@ describe BootstrapIt::ViewHelpers::DropdownButton do
|
|
138
140
|
|
139
141
|
it 'renders splitted toggle button' do
|
140
142
|
expect(
|
141
|
-
helper(:splitted, :danger, 'action') { |b| b.divider }
|
142
|
-
).to
|
143
|
+
helper(:splitted, :danger, 'action') { |b| b.divider }.render
|
144
|
+
).to have_tag 'div.btn-group > button.btn-danger[text()="action"]'
|
143
145
|
end
|
144
146
|
|
145
147
|
it 'renders spliited toggle' do
|
146
148
|
expect(
|
147
|
-
helper(:splitted, :danger, 'action') { |b| b.divider }
|
148
|
-
).to
|
149
|
+
helper(:splitted, :danger, 'action') { |b| b.divider }.render
|
150
|
+
).to have_tag(
|
149
151
|
'div.btn-group' \
|
150
152
|
' > button.btn-danger.dropdown-toggle[@data-toggle="dropdown"]' \
|
151
153
|
' > span.caret'
|
@@ -154,8 +156,8 @@ describe BootstrapIt::ViewHelpers::DropdownButton do
|
|
154
156
|
|
155
157
|
it 'renders splitted dropdown menu' do
|
156
158
|
expect(
|
157
|
-
helper(:splitted, :danger, 'action') { |b| b.divider }
|
158
|
-
).to
|
159
|
+
helper(:splitted, :danger, 'action') { |b| b.divider }.render
|
160
|
+
).to have_tag 'div.btn-group > ul.dropdown-menu > li.divider'
|
159
161
|
end
|
160
162
|
|
161
163
|
# dropup
|
@@ -163,7 +165,7 @@ describe BootstrapIt::ViewHelpers::DropdownButton do
|
|
163
165
|
|
164
166
|
it 'renders dropup' do
|
165
167
|
expect(
|
166
|
-
helper(:dropup) { |b| b.divider }
|
167
|
-
).to
|
168
|
+
helper(:dropup) { |b| b.divider }.render
|
169
|
+
).to have_tag 'div.btn-group.dropup'
|
168
170
|
end
|
169
171
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe BootstrapIt::ViewHelpers::ButtonToolbar do
|
4
|
-
it { expect(helper).to
|
4
|
+
it { expect(helper.render).to have_tag 'div.btn-toolbar[@role="toolbar"]' }
|
5
5
|
|
6
6
|
it 'reders button group' do
|
7
7
|
expect(
|
8
|
-
helper { |h| h.button_group { |g| g.button 'test' } }
|
9
|
-
).to
|
8
|
+
helper { |h| h.button_group { |g| g.button 'test' } }.render
|
9
|
+
).to have_tag(
|
10
10
|
'div.btn-toolbar > div.btn-group' \
|
11
11
|
' > button.btn.btn-default[text()="test"]'
|
12
12
|
)
|
@@ -1,22 +1,22 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe BootstrapIt::ViewHelpers::DropdownMenu do
|
4
|
-
it { expect(helper).to
|
4
|
+
it { expect(helper.render).to have_tag 'ul.dropdown-menu[@role="menu"]' }
|
5
5
|
|
6
6
|
it 'reders devider' do
|
7
|
-
expect(helper { |h| h.divider }).to
|
7
|
+
expect(helper { |h| h.divider }.render).to have_tag(
|
8
8
|
'ul > li.divider[@role="presentation"]'
|
9
9
|
)
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'renders header' do
|
13
|
-
expect(helper { |h| h.header 'test' }).to
|
13
|
+
expect(helper { |h| h.header 'test' }.render).to have_tag(
|
14
14
|
'ul > li.dropdown-header[@role="presentation"]'
|
15
15
|
)
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'renders link item' do
|
19
|
-
expect(helper { |h| h.link_item 'test', 'http://url' }).to
|
19
|
+
expect(helper { |h| h.link_item 'test', 'http://url' }.render).to have_tag(
|
20
20
|
'ul > li[@role="presentation"]' \
|
21
21
|
' > a[@href="http://url"][@role="menuitem"][@tabindex="-1"]'
|
22
22
|
)
|
@@ -24,18 +24,18 @@ describe BootstrapIt::ViewHelpers::DropdownMenu do
|
|
24
24
|
|
25
25
|
it 'renders disabled link item' do
|
26
26
|
expect(
|
27
|
-
helper { |h| h.link_item 'test', :disabled, 'http://url' }
|
28
|
-
).to
|
27
|
+
helper { |h| h.link_item 'test', :disabled, 'http://url' }.render
|
28
|
+
).to have_tag(
|
29
29
|
'ul > li.disabled[@role="presentation"]' \
|
30
30
|
' > a[@href="http://url"][@role="menuitem"][@tabindex="-1"]'
|
31
31
|
)
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'supports right-align' do
|
35
|
-
expect(helper
|
35
|
+
expect(helper(align: :right).render).to have_tag 'ul.dropdown-menu.pull-right'
|
36
36
|
end
|
37
37
|
|
38
38
|
# options cleaning
|
39
|
-
it { expect(helper
|
40
|
-
it { expect(helper
|
39
|
+
it { expect(helper(align: 'right')).to_not have_option :align }
|
40
|
+
it { expect(helper(align: :none)).to_not have_option :align }
|
41
41
|
end
|