* Preload organization, not user * Preload users only when needed * Pre-load podcasts for podcast episodes in API * Avoid eager loading error by loading rating votes separately * Preload associations for moderation * Preload user comments in trees * Preload organization for non org dashboard and cleanup queries * Optimize ArticleSuggester to only load N articles at need * Remove eager loading and pass variables to partials for easier debug * Reorganize tags validation code and ignore actsastaggableon eager loading issues * Remove unused eager loading and bring up comments relation * Preload podcasts when loading podcast episodes * Fix views specs * Make sure ArticleSuggester never returns duplicates * Remove commented code * Re-trigger build * Move suggested articles back to view to respect fragment caching
29 lines
1.2 KiB
Ruby
29 lines
1.2 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe ArticleSuggester do
|
|
let(:user) { create(:user) }
|
|
|
|
it "returns proper number of articles with post with the same tags" do
|
|
create_list(:article, 4, user: user, featured: true, tags: ["discuss"])
|
|
article = create(:article, user: user, featured: true, tags: ["discuss"])
|
|
expect(described_class.new(article).articles.size).to eq(4)
|
|
end
|
|
|
|
it "returns proper number of articles with post with different tags" do
|
|
create_list(:article, 2, user: user, featured: true, tags: ["discuss"])
|
|
create_list(:article, 2, user: user, featured: true, tags: ["javascript"])
|
|
article = create(:article, user: user, featured: true, tags: ["discuss"])
|
|
expect(described_class.new(article).articles.size).to eq(4)
|
|
end
|
|
|
|
it "returns proper number of articles with post without tags" do
|
|
create_list(:article, 5, user: user, tags: [], with_tags: false, featured: true)
|
|
article = create(:article, user: user, featured: true, tag_list: "")
|
|
expect(described_class.new(article).articles.size).to eq(4)
|
|
end
|
|
|
|
it "returns the number of articles requested" do
|
|
articles = create_list(:article, 3, user: user, featured: true)
|
|
expect(described_class.new(articles.first).articles(max: 2).size).to eq(2)
|
|
end
|
|
end
|