diff --git a/spec/helpers/application_helper/graph_methods_spec.rb b/spec/helpers/application_helper/graph_methods_spec.rb
new file mode 100644
index 00000000..e5f0da52
--- /dev/null
+++ b/spec/helpers/application_helper/graph_methods_spec.rb
@@ -0,0 +1,76 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ApplicationHelper::GraphMethods, :type => :helper do
+ describe "#user_opengraph" do
+ context "sample user" do
+ let(:user) { FactoryBot.create(:user,
+ profile: { display_name: 'Cunes',
+ description: 'A bunch of raccoons in a trenchcoat.' },
+ screen_name: 'raccoons') }
+
+ subject { user_opengraph(user) }
+
+ it 'should generate a matching OpenGraph structure for a user' do
+ allow(APP_CONFIG).to receive(:[]).with('site_name').and_return('pineapplespring')
+ expect(subject).to eq(<<-EOS.chomp)
+
+
+
+
+
+
+
+EOS
+ end
+ end
+ end
+
+ describe "#user_twitter_card" do
+ context "sample user" do
+ let(:user) { FactoryBot.create(:user,
+ profile: {
+ display_name: '',
+ description: 'A bunch of raccoons in a trenchcoat.'},
+ screen_name: 'raccoons') }
+
+ subject { user_twitter_card(user) }
+ it 'should generate a matching OpenGraph structure for a user' do
+ expect(subject).to eq(<<-EOS.chomp)
+
+
+
+
+
+EOS
+ end
+ end
+ end
+
+ describe "#answer_opengraph" do
+ context "sample user and answer" do
+ let!(:user) { FactoryBot.create(:user,
+ profile: {
+ display_name: '',
+ description: 'A bunch of raccoons in a trenchcoat.'},
+ screen_name: 'raccoons') }
+ let(:answer) { FactoryBot.create(:answer,
+ user_id: user.id,) }
+
+ subject { answer_opengraph(answer) }
+
+ it 'should generate a matching OpenGraph structure for a user' do
+ allow(APP_CONFIG).to receive(:[]).with('site_name').and_return('pineapplespring')
+ expect(subject).to eq(<<-EOS.chomp)
+
+
+
+
+
+
+EOS
+ end
+ end
+ end
+end
\ No newline at end of file
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 384941a4..dafca20f 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -3,126 +3,6 @@
require "rails_helper"
describe ApplicationHelper, :type => :helper do
- describe '#nav_entry' do
- it 'should return a HTML navigation item which links to a given address' do
- allow(self).to receive(:current_page?).and_return(false)
- expect(nav_entry('Example', '/example')).to(
- eq('
Example')
- )
- end
-
- it 'should return with an active attribute if the link matches the current URL' do
- allow(self).to receive(:current_page?).and_return(true)
- expect(nav_entry('Example', '/example')).to(
- eq('Example')
- )
- end
-
- it 'should include an icon if given' do
- allow(self).to receive(:current_page?).and_return(false)
- expect(nav_entry('Example', '/example', icon: 'beaker')).to(
- eq(' Example')
- )
- end
-
- it 'should include a badge if given' do
- allow(self).to receive(:current_page?).and_return(false)
- expect(nav_entry('Example', '/example', badge: 3)).to(
- eq('Example 3')
- )
-
- expect(nav_entry('Example', '/example', badge: 3, badge_color: 'primary', badge_pill: true)).to(
- eq('Example 3')
- )
- end
- end
-
- describe "#bootstrap_color" do
- it 'should map error and alert to danger' do
- expect(bootstrap_color("error")).to eq("danger")
- expect(bootstrap_color("alert")).to eq("danger")
- end
-
- it 'should map notice to info' do
- expect(bootstrap_color("notice")).to eq("info")
- end
-
- it 'should return any uncovered value' do
- expect(bootstrap_color("success")).to eq("success")
- end
- end
-
- describe "#user_opengraph" do
- context "sample user" do
- let(:user) { FactoryBot.create(:user,
- profile: { display_name: 'Cunes',
- description: 'A bunch of raccoons in a trenchcoat.' },
- screen_name: 'raccoons') }
-
- subject { user_opengraph(user) }
-
- it 'should generate a matching OpenGraph structure for a user' do
- allow(APP_CONFIG).to receive(:[]).with('site_name').and_return('pineapplespring')
- expect(subject).to eq(<<-EOS.chomp)
-
-
-
-
-
-
-
-EOS
- end
- end
- end
-
- describe "#user_twitter_card" do
- context "sample user" do
- let(:user) { FactoryBot.create(:user,
- profile: {
- display_name: '',
- description: 'A bunch of raccoons in a trenchcoat.'},
- screen_name: 'raccoons') }
-
- subject { user_twitter_card(user) }
- it 'should generate a matching OpenGraph structure for a user' do
- expect(subject).to eq(<<-EOS.chomp)
-
-
-
-
-
-EOS
- end
- end
- end
-
- describe "#answer_opengraph" do
- context "sample user and answer" do
- let!(:user) { FactoryBot.create(:user,
- profile: {
- display_name: '',
- description: 'A bunch of raccoons in a trenchcoat.'},
- screen_name: 'raccoons') }
- let(:answer) { FactoryBot.create(:answer,
- user_id: user.id,) }
-
- subject { answer_opengraph(answer) }
-
- it 'should generate a matching OpenGraph structure for a user' do
- allow(APP_CONFIG).to receive(:[]).with('site_name').and_return('pineapplespring')
- expect(subject).to eq(<<-EOS.chomp)
-
-
-
-
-
-
-EOS
- end
- end
- end
-
describe "#rails_admin_path_for_resource" do
context "user resource" do
let(:resource) { FactoryBot.create(:user) }
diff --git a/spec/helpers/bootstrap_helper_spec.rb b/spec/helpers/bootstrap_helper_spec.rb
new file mode 100644
index 00000000..286d2e6d
--- /dev/null
+++ b/spec/helpers/bootstrap_helper_spec.rb
@@ -0,0 +1,105 @@
+require "rails_helper"
+
+describe BootstrapHelper, :type => :helper do
+ describe '#nav_entry' do
+ it 'should return a HTML navigation item which links to a given address' do
+ allow(self).to receive(:current_page?).and_return(false)
+ expect(nav_entry('Example', '/example')).to(
+ eq('Example')
+ )
+ end
+
+ it 'should return with an active attribute if the link matches the current URL' do
+ allow(self).to receive(:current_page?).and_return(true)
+ expect(nav_entry('Example', '/example')).to(
+ eq('Example')
+ )
+ end
+
+ it 'should include an icon if given' do
+ allow(self).to receive(:current_page?).and_return(false)
+ expect(nav_entry('Example', '/example', icon: 'beaker')).to(
+ eq(' Example')
+ )
+ end
+
+ it 'should only include an icon if wanted' do
+ allow(self).to receive(:current_page?).and_return(false)
+ expect(nav_entry('Example', '/example', icon: 'beaker', icon_only: true)).to(
+ eq('')
+ )
+ end
+
+ it 'should include a badge if given' do
+ allow(self).to receive(:current_page?).and_return(false)
+ expect(nav_entry('Example', '/example', badge: 3)).to(
+ eq('Example 3')
+ )
+
+ expect(nav_entry('Example', '/example', badge: 3, badge_color: 'primary', badge_pill: true)).to(
+ eq('Example 3')
+ )
+ end
+ end
+
+ describe "#list_group_item" do
+ it 'should return a HTML navigation item which links to a given address' do
+ allow(self).to receive(:current_page?).and_return(false)
+ expect(list_group_item('Example', '/example')).to(
+ eq('Example')
+ )
+ end
+
+ it 'should return with an active attribute if the link matches the current URL' do
+ allow(self).to receive(:current_page?).and_return(true)
+ expect(list_group_item('Example', '/example')).to(
+ eq('Example')
+ )
+ end
+
+ it 'should include a badge if given' do
+ allow(self).to receive(:current_page?).and_return(false)
+ expect(list_group_item('Example', '/example', badge: 3)).to(
+ eq('Example 3')
+ )
+ end
+ end
+
+ describe "#bootstrap_color" do
+ it 'should map error and alert to danger' do
+ expect(bootstrap_color("error")).to eq("danger")
+ expect(bootstrap_color("alert")).to eq("danger")
+ end
+
+ it 'should map notice to info' do
+ expect(bootstrap_color("notice")).to eq("info")
+ end
+
+ it 'should return any uncovered value' do
+ expect(bootstrap_color("success")).to eq("success")
+ end
+ end
+
+ describe "#tooltip" do
+ it 'should return the proper markup' do
+ expect(tooltip("Example Text", "This is in a tooltip")).to eq("Example Text")
+ end
+ end
+
+ describe "#time_tooltip" do
+ it 'should return a tooltip with proper time values' do
+ Timecop.freeze(Time.local(1984)) do
+ @user = FactoryBot.create(:user)
+ Timecop.travel(Time.now + 10.minutes)
+
+ expect(time_tooltip(@user)).to eq("10 minutes")
+ end
+ end
+ end
+
+ describe "#hidespan" do
+ it 'should return the proper markup' do
+ expect(hidespan("Hidden Text", "d-none")).to eq("Hidden Text")
+ end
+ end
+end
\ No newline at end of file