Skip to content

Commit

Permalink
Merge pull request #1433 from kanaabe/related-link
Browse files Browse the repository at this point in the history
@eessex => Fixes related articles panel links
  • Loading branch information
eessex authored Nov 13, 2017
2 parents 4077a42 + dcea68d commit 8ce233d
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 7 deletions.
16 changes: 9 additions & 7 deletions api/apps/graphql/resolvers.js
Original file line number Diff line number Diff line change
Expand Up @@ -186,22 +186,24 @@ export const relatedArticlesPanel = (root) => {
return new Promise(async (resolve, reject) => {
let relatedArticles = []

const articleResults = await promisedMongoFetch(_.pick(args, _.identity))
const articleFeed = await promisedMongoFetch(_.pick(args, _.identity))
.catch((e) => reject(e))

if (root.related_article_ids && root.related_article_ids.length) {
const relatedArticleResults = await promisedMongoFetch(relatedArticleArgs)
.catch((e) => reject(e))
relatedArticles = _.first(
relatedArticleResults.results.concat(presentCollection(articleResults).results),
3
)

const mergedArticles = {
results: relatedArticleResults.results.concat(articleFeed.results)
}

relatedArticles = presentCollection(mergedArticles).results
} else {
relatedArticles = presentCollection(articleResults).results
relatedArticles = presentCollection(articleFeed).results
}

if (relatedArticles.length) {
resolve(relatedArticles)
resolve(_.first(relatedArticles, 3))
} else {
resolve(null)
}
Expand Down
23 changes: 23 additions & 0 deletions api/apps/graphql/test/resolvers.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,29 @@ describe('resolvers', () => {
})
Object.keys(promisedMongoFetch.args[0][0]).should.not.containEql('tags')
})

it('presents related_article_ids and feed articles', async () => {
const relatedArticles = {
results: [
_.extend({}, fixtures.article, {
title: 'Related Article',
slugs: ['artsy-editorial-slug'],
updated_at: '2017-01-01'
})
]
}
promisedMongoFetch.onFirstCall().resolves(articles)
promisedMongoFetch.onSecondCall().resolves(relatedArticles)
const results = await resolvers.relatedArticlesPanel({
id: '54276766fd4f50996aeca2b8',
tags: ['dog', 'cat'],
related_article_ids: ['54276766fd4f50996aeca2b1']
})
results.length.should.equal(2)
results[0].slug.should.equal('artsy-editorial-slug')
results[1].slug.should.equal('slug-1')
results[0].updated_at.should.containEql('2017-01-01')
})
})

describe('tags', () => {
Expand Down

0 comments on commit 8ce233d

Please sign in to comment.