ama_layout 3.2.2 → 4.0.0

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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/ama_layout.gemspec +2 -1
  3. data/app/assets/images/ama-logo-blue.svg +44 -0
  4. data/app/assets/images/ama-logo.png +0 -0
  5. data/app/assets/javascripts/ama_layout/desktop/foundation-custom.js +21 -0
  6. data/app/assets/javascripts/ama_layout/desktop/foundation-equalizer-reflow.coffee +5 -0
  7. data/app/assets/javascripts/ama_layout/desktop/foundation-ready.coffee +2 -0
  8. data/app/assets/javascripts/ama_layout/desktop/index.js +2 -8
  9. data/app/assets/stylesheets/ama_layout/_settings.scss +66 -66
  10. data/app/assets/stylesheets/ama_layout/application.scss +0 -1
  11. data/app/assets/stylesheets/ama_layout/foundation_and_overrides.scss +1 -24
  12. data/app/assets/stylesheets/ama_layout/layout/base-styles.scss +2 -72
  13. data/app/assets/stylesheets/ama_layout/layout/helper-classes.scss +98 -43
  14. data/app/assets/stylesheets/ama_layout/layout/index.scss +2 -0
  15. data/app/assets/stylesheets/ama_layout/layout/mixins-grid.scss +847 -0
  16. data/app/assets/stylesheets/ama_layout/layout/print.scss +23 -0
  17. data/app/assets/stylesheets/ama_layout/layout/variables.scss +20 -4
  18. data/app/assets/stylesheets/ama_layout/layout_components/accordions.scss +32 -14
  19. data/app/assets/stylesheets/ama_layout/layout_components/banner.scss +17 -0
  20. data/app/assets/stylesheets/ama_layout/layout_components/blue-boxes.scss +81 -4
  21. data/app/assets/stylesheets/ama_layout/layout_components/breadcrumbs.scss +10 -0
  22. data/app/assets/stylesheets/ama_layout/layout_components/button-grouping.scss +111 -0
  23. data/app/assets/stylesheets/ama_layout/layout_components/buttons.scss +14 -0
  24. data/app/assets/stylesheets/ama_layout/layout_components/callouts.scss +106 -0
  25. data/app/assets/stylesheets/ama_layout/layout_components/cart.scss +98 -43
  26. data/app/assets/stylesheets/ama_layout/layout_components/comparison-radios.scss +113 -0
  27. data/app/assets/stylesheets/ama_layout/layout_components/content-toggle.scss +15 -0
  28. data/app/assets/stylesheets/ama_layout/layout_components/error-page.scss +3 -3
  29. data/app/assets/stylesheets/ama_layout/layout_components/footer.scss +65 -0
  30. data/app/assets/stylesheets/ama_layout/layout_components/forms.scss +141 -43
  31. data/app/assets/stylesheets/ama_layout/layout_components/graph.scss +8 -7
  32. data/app/assets/stylesheets/ama_layout/layout_components/index.scss +13 -1
  33. data/app/assets/stylesheets/ama_layout/layout_components/link-list.scss +53 -0
  34. data/app/assets/stylesheets/ama_layout/layout_components/links.scss +8 -0
  35. data/app/assets/stylesheets/ama_layout/layout_components/notification.scss +27 -1
  36. data/app/assets/stylesheets/ama_layout/layout_components/progress-bar.scss +137 -0
  37. data/app/assets/stylesheets/ama_layout/layout_components/reveal-modal.scss +15 -0
  38. data/app/assets/stylesheets/ama_layout/layout_components/sections.scss +202 -0
  39. data/app/assets/stylesheets/ama_layout/layout_components/sidebar.scss +45 -119
  40. data/app/assets/stylesheets/ama_layout/layout_components/siteheader.scss +70 -73
  41. data/app/assets/stylesheets/ama_layout/layout_components/tab-accordions.scss +1 -19
  42. data/app/assets/stylesheets/ama_layout/layout_components/tables.scss +96 -0
  43. data/app/assets/stylesheets/ama_layout/media_queries/mobile-and-tablet.scss +2 -2
  44. data/app/assets/stylesheets/ama_layout/media_queries/mobile.scss +2 -49
  45. data/app/assets/stylesheets/ama_layout/media_queries/tablet.scss +2 -10
  46. data/app/helpers/ama_layout_breadcrumb_helper.rb +5 -0
  47. data/app/views/ama_layout/_alert.html.erb +4 -2
  48. data/app/views/ama_layout/_breadcrumbs.html.erb +3 -0
  49. data/app/views/ama_layout/_footer.html.erb +68 -1
  50. data/app/views/ama_layout/_main_nav_item.html.erb +2 -3
  51. data/app/views/ama_layout/_notice.html.erb +2 -2
  52. data/app/views/ama_layout/_sidebar.html.erb +6 -9
  53. data/app/views/ama_layout/_siteheader.html.erb +40 -28
  54. data/app/views/ama_layout/_sub_nav.html.erb +1 -1
  55. data/app/views/ama_layout/_sub_nav_item.html.erb +2 -2
  56. data/app/views/ama_layout/_top_nav.html.erb +4 -4
  57. data/lib/ama_layout.rb +2 -0
  58. data/lib/ama_layout/breadcrumb_builder.rb +23 -0
  59. data/lib/ama_layout/decorators/navigation_decorator.rb +10 -2
  60. data/lib/ama_layout/decorators/navigation_item_decorator.rb +8 -2
  61. data/lib/ama_layout/moneris/textbox.txt +11 -15
  62. data/lib/ama_layout/navigation.rb +7 -2
  63. data/lib/ama_layout/navigation.yml +8 -13
  64. data/lib/ama_layout/version.rb +1 -1
  65. data/spec/ama_layout/breadcrumb_builder_spec.rb +32 -0
  66. data/spec/ama_layout/decorators/moneris_decorator_spec.rb +11 -15
  67. data/spec/ama_layout/decorators/navigation_decorator_spec.rb +37 -0
  68. data/spec/ama_layout/decorators/navigation_item_decorator_spec.rb +18 -3
  69. data/spec/ama_layout/navigation_spec.rb +19 -88
  70. data/spec/helpers/ama_layout_breadcrumb_helper_spec.rb +9 -0
  71. data/styles.scss +0 -0
  72. metadata +46 -16
  73. data/app/assets/javascripts/ama_layout/desktop/drop_down.coffee +0 -46
  74. data/app/assets/javascripts/ama_layout/desktop/foundation-namespace.coffee +0 -2
  75. data/app/assets/javascripts/ama_layout/desktop/header_menu.coffee +0 -7
  76. data/app/assets/javascripts/ama_layout/desktop/ready.coffee +0 -3
  77. data/app/assets/javascripts/ama_layout/desktop/sidebar.coffee +0 -4
  78. data/app/assets/javascripts/ama_layout/desktop/sticky-footer.coffee +0 -33
  79. data/app/assets/javascripts/ama_layout/desktop/toggle_menu.coffee +0 -8
  80. data/app/assets/stylesheets/ama_layout/layout_components/show-hide-content-box.scss +0 -11
  81. data/app/assets/stylesheets/ama_layout/old-ie.scss +0 -74
  82. data/app/assets/stylesheets/ama_layout/webfonts/ss-symbolicons.js +0 -84
@@ -3,7 +3,7 @@ module AmaLayout
3
3
  include ActiveModel::Model
4
4
  include Draper::Decoratable
5
5
 
6
- attr_accessor :user, :current_url, :nav_file_path
6
+ attr_accessor :user, :current_url, :nav_file_path, :display_name
7
7
 
8
8
  def initialize(args = {})
9
9
  args = defaults.merge args
@@ -29,11 +29,16 @@ module AmaLayout
29
29
  end
30
30
  end
31
31
 
32
- private
33
32
  def navigation_items
34
33
  YAML.load ERB.new(File.read nav_file_path).result
35
34
  end
36
35
 
36
+ def email
37
+ user.email
38
+ end
39
+
40
+ private
41
+
37
42
  def defaults
38
43
  {
39
44
  nav_file_path: File.join(Gem.loaded_specs["ama_layout"].full_gem_path, "lib", "ama_layout", "navigation.yml")
@@ -1,10 +1,9 @@
1
1
  member:
2
2
  - text: "My Account Overview"
3
- alt: "Back to my dashboard"
4
3
  link: "<%= Rails.configuration.gatekeeper_site %>/"
5
4
  icon: "fa-tachometer"
6
5
  - text: "My Membership"
7
- link: "#"
6
+ link: "<%= Rails.configuration.membership_site %>/membership/overview"
8
7
  icon: "fa-credit-card"
9
8
  sub_nav:
10
9
  - text: "Membership Overview"
@@ -16,7 +15,7 @@ member:
16
15
  - text: "Print/Request New Card"
17
16
  link: "<%= Rails.configuration.youraccount_site %>/membership"
18
17
  - text: "My Driver Education"
19
- link: "#"
18
+ link: "<%= Rails.configuration.driveredonline_site %>/"
20
19
  icon: "fa-car"
21
20
  sub_nav:
22
21
  - text: "Driver Education Overview"
@@ -24,7 +23,7 @@ member:
24
23
  - text: "New Driver Online Program"
25
24
  link: "<%= Rails.configuration.driveredonline_site %>/dashboard"
26
25
  - text: "My AMA Rewards"
27
- link: "#"
26
+ link: "<%= Rails.configuration.youraccount_site %>/rewards"
28
27
  icon: "fa-usd"
29
28
  sub_nav:
30
29
  - text: "Rewards Overview"
@@ -34,7 +33,7 @@ member:
34
33
  - text: "Transaction History"
35
34
  link: "<%= Rails.configuration.youraccount_site %>/reward_dollars"
36
35
  - text: "My Registries"
37
- link: "#"
36
+ link: "<%= Rails.configuration.registries_site %>/"
38
37
  icon: "fa-folder-open"
39
38
  sub_nav:
40
39
  - text: "Registries Overview"
@@ -42,7 +41,7 @@ member:
42
41
  - text: "Vehicle Registration Auto-Renew"
43
42
  link: "<%= Rails.configuration.registries_site %>/order/registrations/new"
44
43
  - text: "My Account Settings"
45
- link: "#"
44
+ link: "<%= Rails.configuration.gatekeeper_site %>/user/edit"
46
45
  icon: "fa-cogs"
47
46
  sub_nav:
48
47
  - text: "Change Email/Password"
@@ -55,15 +54,13 @@ member:
55
54
  link: "<%= Rails.configuration.youraccount_site %>/membership_update/new"
56
55
  non-member:
57
56
  - text: "Account Dashboard"
58
- alt: "Back to my dashboard"
59
57
  link: "<%= Rails.configuration.gatekeeper_site %>/"
60
58
  icon: "fa-tachometer"
61
59
  - text: "Join AMA"
62
- alt: "Join AMA"
63
60
  link: "<%= Rails.configuration.membership_site %>"
64
61
  icon: "fa-credit-card"
65
62
  - text: "Driver Education"
66
- link: "#"
63
+ link: "<%= Rails.configuration.driveredonline_site %>/"
67
64
  icon: "fa-car"
68
65
  sub_nav:
69
66
  - text: "Driver Education Overview"
@@ -75,14 +72,13 @@ non-member:
75
72
  icon: "fa-cogs"
76
73
  member-in-renewal:
77
74
  - text: "Account Dashboard"
78
- alt: "Back to my dashboard"
79
75
  link: "<%= Rails.configuration.gatekeeper_site %>/"
80
76
  icon: "fa-tachometer"
81
77
  - text: "Renew"
82
78
  link: "<%= Rails.configuration.youraccount_site %>/renew"
83
79
  icon: "fa-credit-card"
84
80
  - text: "Driver Education"
85
- link: "#"
81
+ link: "<%= Rails.configuration.driveredonline_site %>/"
86
82
  icon: "fa-car"
87
83
  sub_nav:
88
84
  - text: "Driver Education Overview"
@@ -91,14 +87,13 @@ member-in-renewal:
91
87
  link: "<%= Rails.configuration.driveredonline_site %>/dashboard"
92
88
  member-in-renewal-late:
93
89
  - text: "Account Dashboard"
94
- alt: "Back to my dashboard"
95
90
  link: "<%= Rails.configuration.gatekeeper_site %>/"
96
91
  icon: "fa-tachometer"
97
92
  - text: "Renew"
98
93
  link: "<%= Rails.configuration.youraccount_site %>/renew"
99
94
  icon: "fa-credit-card"
100
95
  - text: "Driver Education"
101
- link: "#"
96
+ link: "<%= Rails.configuration.driveredonline_site %>/"
102
97
  icon: "fa-car"
103
98
  sub_nav:
104
99
  - text: "Driver Education Overview"
@@ -1,3 +1,3 @@
1
1
  module AmaLayout
2
- VERSION = '3.2.2'
2
+ VERSION = '4.0.0'
3
3
  end
@@ -0,0 +1,32 @@
1
+ describe AmaLayout::BreadcrumbBuilder do
2
+ let(:view_context) { ActionView::Base.new }
3
+ let(:foo_crumb) { BreadcrumbsOnRails::Breadcrumbs::Element.new('Foo', '/foo') }
4
+ let(:bar_crumb) { BreadcrumbsOnRails::Breadcrumbs::Element.new('Bar', '/foo/bar') }
5
+ let(:crumbs) { [foo_crumb, bar_crumb] }
6
+
7
+ describe '#render' do
8
+ let(:builder) { AmaLayout::BreadcrumbBuilder.new(view_context, crumbs) }
9
+
10
+ context 'no separator specified' do
11
+ it 'returns the breadcrumb HTML without any separator' do
12
+ expect(builder.render).to eq('<li><a href="/foo">Foo</a></li><li><a href="/foo/bar">Bar</a></li>')
13
+ end
14
+ end
15
+
16
+ context 'with a separator of " > "' do
17
+ let(:builder) { AmaLayout::BreadcrumbBuilder.new(view_context, crumbs, separator: ' > ') }
18
+
19
+ it 'returns the breadcrumb HTML with the proper separator' do
20
+ expect(builder.render).to eq('<li><a href="/foo">Foo</a></li> > <li><a href="/foo/bar">Bar</a></li>')
21
+ end
22
+ end
23
+
24
+ context 'with a disabled element' do
25
+ let(:bar_crumb) { BreadcrumbsOnRails::Breadcrumbs::Element.new('Bar', '/foo/bar', disabled: true) }
26
+
27
+ it 'adds the appropriate disabled attributes to the element' do
28
+ expect(builder.render).to match /breadcrumbs__link--disabled/
29
+ end
30
+ end
31
+ end
32
+ end
@@ -5,7 +5,7 @@ describe AmaLayout::MonerisDecorator, type: :decorator do
5
5
  describe "#textbox" do
6
6
  it "return textbox style file" do
7
7
  expect(moneris_presenter.textbox).to include "-webkit-appearance: none;"
8
- expect(moneris_presenter.textbox).to include "-webkit-box-shadow: rgba(0, 0, 0, 0.0980392) 0px 1px 2px 0px inset;"
8
+ expect(moneris_presenter.textbox).to include "-webkit-box-shadow: none;"
9
9
  expect(moneris_presenter.textbox).to include "-webkit-rtl-ordering: logical;"
10
10
  expect(moneris_presenter.textbox).to include "-webkit-transition-delay: 0s, 0s;"
11
11
  expect(moneris_presenter.textbox).to include "-webkit-transition-duration: 0.45s, 0.45s;"
@@ -14,28 +14,24 @@ describe AmaLayout::MonerisDecorator, type: :decorator do
14
14
  expect(moneris_presenter.textbox).to include "-webkit-user-select: text;"
15
15
  expect(moneris_presenter.textbox).to include "-webkit-writing-mode: horizontal-tb;"
16
16
  expect(moneris_presenter.textbox).to include "background-color: rgb(255, 255, 255);"
17
- expect(moneris_presenter.textbox).to include "border-bottom-color: rgb(204, 204, 204);"
18
- expect(moneris_presenter.textbox).to include "border-bottom-left-radius: 3px;"
19
- expect(moneris_presenter.textbox).to include "border-bottom-right-radius: 3px;"
17
+ expect(moneris_presenter.textbox).to include "border-bottom-color: rgb(229, 229, 229);"
20
18
  expect(moneris_presenter.textbox).to include "border-bottom-style: solid;"
21
- expect(moneris_presenter.textbox).to include "border-bottom-width: 1px;"
19
+ expect(moneris_presenter.textbox).to include "border-bottom-width: 2px;"
22
20
  expect(moneris_presenter.textbox).to include "border-image-outset: 0px;"
23
21
  expect(moneris_presenter.textbox).to include "border-image-repeat: stretch;"
24
22
  expect(moneris_presenter.textbox).to include "border-image-slice: 100%;"
25
23
  expect(moneris_presenter.textbox).to include "border-image-source: none;"
26
24
  expect(moneris_presenter.textbox).to include "border-image-width: 1;"
27
- expect(moneris_presenter.textbox).to include "border-left-color: rgb(204, 204, 204);"
25
+ expect(moneris_presenter.textbox).to include "border-left-color: rgb(229, 229, 229);"
28
26
  expect(moneris_presenter.textbox).to include "border-left-style: solid;"
29
- expect(moneris_presenter.textbox).to include "border-left-width: 1px;"
30
- expect(moneris_presenter.textbox).to include "border-right-color: rgb(204, 204, 204);"
27
+ expect(moneris_presenter.textbox).to include "border-left-width: 2px;"
28
+ expect(moneris_presenter.textbox).to include "border-right-color: rgb(229, 229, 229);"
31
29
  expect(moneris_presenter.textbox).to include "border-right-style: solid;"
32
- expect(moneris_presenter.textbox).to include "border-right-width: 1px;"
33
- expect(moneris_presenter.textbox).to include "border-top-color: rgb(204, 204, 204);"
34
- expect(moneris_presenter.textbox).to include "border-top-left-radius: 3px;"
35
- expect(moneris_presenter.textbox).to include "border-top-right-radius: 3px;"
30
+ expect(moneris_presenter.textbox).to include "border-right-width: 2px;"
31
+ expect(moneris_presenter.textbox).to include "border-top-color: rgb(229, 229, 229);"
36
32
  expect(moneris_presenter.textbox).to include "border-top-style: solid;"
37
- expect(moneris_presenter.textbox).to include "border-top-width: 1px;"
38
- expect(moneris_presenter.textbox).to include "box-shadow: rgba(0, 0, 0, 0.0980392) 0px 1px 2px 0px inset;"
33
+ expect(moneris_presenter.textbox).to include "border-top-width: 2px;"
34
+ expect(moneris_presenter.textbox).to include "box-shadow: none;"
39
35
  expect(moneris_presenter.textbox).to include "box-sizing: border-box;"
40
36
  expect(moneris_presenter.textbox).to include "color: rgba(0, 0, 0, 0.74902);"
41
37
  expect(moneris_presenter.textbox).to include "cursor: auto;"
@@ -43,7 +39,7 @@ describe AmaLayout::MonerisDecorator, type: :decorator do
43
39
  expect(moneris_presenter.textbox).to include "font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;font-size: 14px;"
44
40
  expect(moneris_presenter.textbox).to include "font-style: normal;font-variant: normal;"
45
41
  expect(moneris_presenter.textbox).to include "font-weight: normal;"
46
- expect(moneris_presenter.textbox).to include "height: 37px;"
42
+ expect(moneris_presenter.textbox).to include "height: 44px;"
47
43
  expect(moneris_presenter.textbox).to include "letter-spacing: normal;"
48
44
  expect(moneris_presenter.textbox).to include "line-height: normal;"
49
45
  expect(moneris_presenter.textbox).to include "margin-bottom: 0px;"
@@ -17,6 +17,43 @@ describe AmaLayout::NavigationDecorator do
17
17
  allow(Rails.configuration).to receive(:registries_site).and_return(registries_site)
18
18
  end
19
19
 
20
+ describe "#display_name_text" do
21
+ let(:user) { OpenStruct.new(email: 'john.doe@test.com') }
22
+
23
+ context "name is provided" do
24
+ let(:name) { "John D" }
25
+ let(:nav) { AmaLayout::Navigation.new(user: user, display_name: name).decorate }
26
+
27
+ it "has a welcome message" do
28
+ expect(nav.display_name_text).to eq "Welcome, John D"
29
+ end
30
+
31
+ context "long name given" do
32
+ let(:name) { "A Really Really Really Really Long Name" }
33
+
34
+ it "trucates to a total of 30 characters" do
35
+ expect(nav.display_name_text).to eq "Welcome, #{name.titleize}".truncate(30)
36
+ end
37
+ end
38
+ end
39
+
40
+ context "name is not provided" do
41
+ let(:nav) { AmaLayout::Navigation.new(user: user).decorate }
42
+
43
+ it "returns the user's email address" do
44
+ expect(nav.display_name_text).to eq user.email
45
+ end
46
+
47
+ context "a really long email" do
48
+ let(:user) { OpenStruct.new(email: 'areallyreallyreallylongemail@test.com') }
49
+
50
+ it "trucates to a total of 30 characters" do
51
+ expect(nav.display_name_text).to eq user.email.truncate(30)
52
+ end
53
+ end
54
+ end
55
+ end
56
+
20
57
  describe "#items" do
21
58
  before(:each) do
22
59
  allow_any_instance_of(AmaLayout::Navigation).to receive(:user).and_return(OpenStruct.new(navigation: "member"))
@@ -1,7 +1,7 @@
1
1
  describe AmaLayout::NavigationItemDecorator do
2
2
  let(:navigation_item) { FactoryGirl.build(:navigation_item) }
3
3
  let(:navigation_item_presenter) { navigation_item.decorate }
4
- let(:items) { [{ text: "Othersite Overview", link: "othersite.com"}] }
4
+ let(:items) { [{ text: "Othersite Overview", link: "http://othersite.com"}] }
5
5
 
6
6
  describe "#sub_nav" do
7
7
  before(:each) do
@@ -68,11 +68,26 @@ describe AmaLayout::NavigationItemDecorator do
68
68
  end
69
69
 
70
70
  describe "#active_class" do
71
+ context "#current_url is an invalid URI" do
72
+ it "fails silently" do
73
+ navigation_item.current_url = "othersite.com"
74
+ navigation_item.sub_nav = items
75
+ expect(navigation_item_presenter.active_class).to eq nil
76
+ end
77
+ end
78
+
71
79
  context "with active_link" do
72
80
  it "return the class" do
73
- navigation_item.current_url = "othersite.com"
81
+ navigation_item.current_url = "http://othersite.com"
82
+
83
+ navigation_item.sub_nav = items
84
+ expect(navigation_item_presenter.active_class).to eq "side-nav__child-link--active-page"
85
+ end
86
+
87
+ it "ignores query string parameters" do
88
+ navigation_item.current_url = "http://othersite.com?foo=bar"
74
89
  navigation_item.sub_nav = items
75
- expect(navigation_item_presenter.active_class).to eq "activepage"
90
+ expect(navigation_item_presenter.active_class).to eq "side-nav__child-link--active-page"
76
91
  end
77
92
  end
78
93
 
@@ -36,38 +36,31 @@ describe AmaLayout::Navigation do
36
36
  end
37
37
 
38
38
  describe "#items" do
39
- context "member" do
40
- before(:each) do
41
- allow_any_instance_of(AmaLayout::Navigation).to receive(:user).and_return(OpenStruct.new(navigation: "member"))
42
- end
43
-
44
- it "returns member navigation items" do
45
- expect(subject.items[0].text).to eq "My Account Overview"
46
- expect(subject.items[0].alt).to eq "Back to my dashboard"
47
- expect(subject.items[0].link).to eq "#{gatekeeper_site}/"
48
- expect(subject.items[0].icon).to eq "fa-tachometer"
39
+ before(:each) do
40
+ subject.user = OpenStruct.new navigation: "member"
41
+ end
49
42
 
50
- expect(subject.items[1].text).to eq "My Membership"
51
- expect(subject.items[1].link).to eq "#"
52
- expect(subject.items[1].icon).to eq "fa-credit-card"
43
+ it "does not remove nil #navigation_items" do
44
+ expect(subject.items.collect {|i| i.alt }).to include nil
45
+ end
53
46
 
54
- expect(subject.items[2].text).to eq "My Driver Education"
55
- expect(subject.items[2].link).to eq "#"
56
- expect(subject.items[2].icon).to eq "fa-car"
47
+ it "displays links " do
48
+ expect(subject.items.collect {|i| i.link }).to eq subject.navigation_items[subject.user.navigation].collect {|i| i["link"] }
49
+ end
57
50
 
58
- expect(subject.items[3].text).to eq "My AMA Rewards"
59
- expect(subject.items[3].link).to eq "#"
60
- expect(subject.items[3].icon).to eq "fa-usd"
51
+ it "contains text" do
52
+ expect(subject.items.collect {|i| i.text }).to eq subject.navigation_items[subject.user.navigation].collect {|i| i["text"] }
53
+ end
61
54
 
62
- expect(subject.items[4].text).to eq "My Registries"
63
- expect(subject.items[4].link).to eq "#"
64
- expect(subject.items[4].icon).to eq "fa-folder-open"
55
+ it "contains icons" do
56
+ expect(subject.items.collect {|i| i.icon }).to eq subject.navigation_items[subject.user.navigation].collect {|i| i["icon"] }
57
+ end
65
58
 
66
- expect(subject.items[5].text).to eq "My Account Settings"
67
- expect(subject.items[5].link).to eq "#"
68
- expect(subject.items[5].icon).to eq "fa-cogs"
69
- end
59
+ it "contains alt text" do
60
+ expect(subject.items.collect {|i| i.alt }).to eq subject.navigation_items[subject.user.navigation].collect {|i| i["alt"] }
61
+ end
70
62
 
63
+ context "member" do
71
64
  context "subnavs" do
72
65
  context "driver education" do
73
66
  let(:driver_education_subnav) { subject.items[2].sub_nav }
@@ -95,30 +88,6 @@ describe AmaLayout::Navigation do
95
88
  end
96
89
 
97
90
  context "non-member" do
98
- before(:each) do
99
- allow_any_instance_of(AmaLayout::Navigation).to receive(:user).and_return(OpenStruct.new(navigation: "non-member"))
100
- end
101
-
102
- it "returns non-member navigation items" do
103
- expect(subject.items[0].text).to eq "Account Dashboard"
104
- expect(subject.items[0].alt).to eq "Back to my dashboard"
105
- expect(subject.items[0].link).to eq "#{gatekeeper_site}/"
106
- expect(subject.items[0].icon).to eq "fa-tachometer"
107
-
108
- expect(subject.items[1].text).to eq "Join AMA"
109
- expect(subject.items[1].alt).to eq "Join AMA"
110
- expect(subject.items[1].link).to eq membership_site
111
- expect(subject.items[1].icon).to eq "fa-credit-card"
112
-
113
- expect(subject.items[2].text).to eq "Driver Education"
114
- expect(subject.items[2].link).to eq "#"
115
- expect(subject.items[2].icon).to eq "fa-car"
116
-
117
- expect(subject.items[3].text).to eq "Change Email/Password"
118
- expect(subject.items[3].link).to eq "#{gatekeeper_site}/user/edit"
119
- expect(subject.items[3].icon).to eq "fa-cogs"
120
- end
121
-
122
91
  context "subnavs" do
123
92
  context "driver education" do
124
93
  let(:driver_education_subnav) { subject.items[2].sub_nav }
@@ -135,25 +104,6 @@ describe AmaLayout::Navigation do
135
104
  end
136
105
 
137
106
  context "member-in-renewal" do
138
- before(:each) do
139
- allow_any_instance_of(AmaLayout::Navigation).to receive(:user).and_return(OpenStruct.new(navigation: "member-in-renewal"))
140
- end
141
-
142
- it "returns member-in-renewal navigation items" do
143
- expect(subject.items[0].text).to eq "Account Dashboard"
144
- expect(subject.items[0].alt).to eq "Back to my dashboard"
145
- expect(subject.items[0].link).to eq "#{gatekeeper_site}/"
146
- expect(subject.items[0].icon).to eq "fa-tachometer"
147
-
148
- expect(subject.items[1].text).to eq "Renew"
149
- expect(subject.items[1].link).to eq "#{youraccount_site}/renew"
150
- expect(subject.items[1].icon).to eq "fa-credit-card"
151
-
152
- expect(subject.items[2].text).to eq "Driver Education"
153
- expect(subject.items[2].link).to eq "#"
154
- expect(subject.items[2].icon).to eq "fa-car"
155
- end
156
-
157
107
  context "subnavs" do
158
108
  context "driver education" do
159
109
  let(:driver_education_subnav) { subject.items[2].sub_nav }
@@ -170,25 +120,6 @@ describe AmaLayout::Navigation do
170
120
  end
171
121
 
172
122
  context "member-in-renewal-late" do
173
- before(:each) do
174
- allow_any_instance_of(AmaLayout::Navigation).to receive(:user).and_return(OpenStruct.new(navigation: "member-in-renewal-late"))
175
- end
176
-
177
- it "returns member-in-renewal-late navigation items" do
178
- expect(subject.items[0].text).to eq "Account Dashboard"
179
- expect(subject.items[0].alt).to eq "Back to my dashboard"
180
- expect(subject.items[0].link).to eq "#{gatekeeper_site}/"
181
- expect(subject.items[0].icon).to eq "fa-tachometer"
182
-
183
- expect(subject.items[1].text).to eq "Renew"
184
- expect(subject.items[1].link).to eq "#{youraccount_site}/renew"
185
- expect(subject.items[1].icon).to eq "fa-credit-card"
186
-
187
- expect(subject.items[2].text).to eq "Driver Education"
188
- expect(subject.items[2].link).to eq "#"
189
- expect(subject.items[2].icon).to eq "fa-car"
190
- end
191
-
192
123
  context "subnavs" do
193
124
  context "driver education" do
194
125
  let(:driver_education_subnav) { subject.items[2].sub_nav }
@@ -0,0 +1,9 @@
1
+ describe AmaLayoutBreadcrumbHelper do
2
+ describe "#show_breadcrumbs" do
3
+ it "renders breadcrumbs" do
4
+ helper.extend BreadcrumbsOnRails::ActionController::HelperMethods
5
+ helper.add_breadcrumb "Ama Online Account", "#"
6
+ expect(helper.show_breadcrumbs).to include "<a href=\"#\">Ama Online Account</a>"
7
+ end
8
+ end
9
+ end
File without changes