Retrospring/spec/helpers/application_helper/graph_methods_spec.rb

76 lines
3.3 KiB
Ruby
Raw Normal View History

# 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)
2022-01-15 16:05:10 -08:00
<meta property="og:title" content="Cunes">
<meta property="og:type" content="profile">
<meta property="og:image" content="http://test.host/images/large/no_avatar.png">
<meta property="og:url" content="http://test.host/raccoons">
<meta property="og:description" content="A bunch of raccoons in a trenchcoat.">
<meta property="og:site_name" content="pineapplespring">
<meta property="profile:username" content="raccoons">
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)
2022-01-15 16:05:10 -08:00
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@retrospring">
<meta name="twitter:title" content="Ask me anything!">
<meta name="twitter:description" content="Ask raccoons anything on Retrospring">
<meta name="twitter:image" content="http://test.host/images/large/no_avatar.png">
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)
2022-01-15 16:05:10 -08:00
<meta property="og:title" content="raccoons answered: #{answer.question.content}">
<meta property="og:type" content="article">
<meta property="og:image" content="http://test.host/images/large/no_avatar.png">
<meta property="og:url" content="http://test.host/raccoons/a/#{answer.id}">
<meta property="og:description" content="#{answer.content}">
<meta property="og:site_name" content="pineapplespring">
EOS
end
end
end
end