From ba280f799602a39ffd37b120ab0559dea87fdf51 Mon Sep 17 00:00:00 2001 From: Andreas Nedbal Date: Mon, 10 Jan 2022 22:16:14 +0100 Subject: [PATCH] Add tests for `ApplicationHelper::TitleMethods` --- .../application_helper/title_methods_spec.rb | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 spec/helpers/application_helper/title_methods_spec.rb diff --git a/spec/helpers/application_helper/title_methods_spec.rb b/spec/helpers/application_helper/title_methods_spec.rb new file mode 100644 index 00000000..6c680049 --- /dev/null +++ b/spec/helpers/application_helper/title_methods_spec.rb @@ -0,0 +1,90 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe ApplicationHelper::TitleMethods, :type => :helper do + let(:user) { FactoryBot.create(:user) } + + before do + stub_const("APP_CONFIG", { + 'site_name' => 'Waschmaschine', + 'anonymous_name' => 'Anonymous', + 'https' => true, + 'items_per_page' => 5, + 'sharing' => {} + }) + + user.profile.display_name = 'Cool Man' + user.profile.save! + end + + describe "#generate_title" do + it 'should generate a proper title' do + expect(generate_title('Simon', 'says:', 'Nice!')).to eq('Simon says: Nice! | Waschmaschine') + end + + it 'should only append a single quote to names that end with s' do + expect(generate_title('Andreas', 'says:', 'Cool!', true)).to eq('Andreas\' says: Cool! | Waschmaschine') + end + + it 'should cut content that is too long' do + expect(generate_title('A title', 'with', 'a' * 50)).to eq('A title with aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... | Waschmaschine') + end + end + + describe "#question_title" do + let(:question) { FactoryBot.create(:question) } + + it 'should generate a proper title for the question' do + expect(question_title(question)).to eq("Anonymous asked #{question.content} | Waschmaschine") + end + end + + describe "#answer_title" do + let(:answer) { FactoryBot.create(:answer, user: user, + content: 'a', + question_content: 'q') } + + it 'should generate a proper title' do + expect(answer_title(answer)).to eq('Cool Man answered q | Waschmaschine') + end + end + + describe "#user_title" do + it 'should generate a proper title' do + expect(user_title(user)).to eq("Cool Man | Waschmaschine") + end + end + + describe "#questions_title" do + it 'should generate a proper title' do + expect(questions_title(user)).to eq("Cool Man's questions | Waschmaschine") + end + end + + describe "#answers_title" do + it 'should generate a proper title' do + expect(answers_title(user)).to eq("Cool Man's answers | Waschmaschine") + end + end + + describe "#smiles_title" do + it 'should generate a proper title' do + expect(smiles_title(user)).to eq("Cool Man's smiles | Waschmaschine") + end + end + + describe "#comments_title" do + it 'should generate a proper title' do + expect(comments_title(user)).to eq("Cool Man's comments | Waschmaschine") + end + end + + describe "#list_title" do + let(:list) { FactoryBot.create(:list) } + + it 'should generate a proper title' do + expect(list_title(list)).to eq("#{list.name} | Waschmaschine") + end + end +end \ No newline at end of file