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('') - ) - 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('') - ) - 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('') - ) - 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('') - ) - - expect(nav_entry('Example', '/example', badge: 3, badge_color: 'primary', badge_pill: true)).to( - eq('') - ) - 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('') + ) + 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('') + ) + 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('') + ) + 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('') + ) + + expect(nav_entry('Example', '/example', badge: 3, badge_color: 'primary', badge_pill: true)).to( + eq('') + ) + 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