Skip to content

Commit

Permalink
Merge pull request #321 from spira/hotfix/meta-hydration
Browse files Browse the repository at this point in the history
Now hydrating all meta tags in article correctly, updating tests.
  • Loading branch information
Jeremy Sik committed Dec 9, 2015
2 parents 157867d + 150341a commit 0ec4cad
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 15 deletions.
18 changes: 9 additions & 9 deletions app/src/common/models/article/articleModel.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ namespace common.models {

let article = new common.models.Article(articleData);

// The first article meta is 'name' which is added via template
expect(article._metas[0].metaableId).to.equal(article.postId);
expect(_.isEmpty(article._metas[0].metaId)).to.be.false;

let testableMetaTags = _.cloneDeep(article._metas);
_.forEach(testableMetaTags, (tag) => {
delete(tag.metaId);
delete(tag.metaableId);
delete(tag.metaableType);
let testableMetaTags = _.map(article._metas, (metaTag) => {
expect(metaTag).to.be.an.instanceOf(Meta);
expect(metaTag.metaableId).to.equal(article.postId);
expect(_.isEmpty(metaTag.metaId)).to.be.false;

return {
metaName: metaTag.metaName,
metaContent: metaTag.metaContent
};
});

expect(testableMetaTags).to.deep.equal([
Expand Down
18 changes: 12 additions & 6 deletions app/src/common/models/article/articleModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,21 +95,27 @@ namespace common.models {
return (<any>_).chain(common.models.Article.articleMetaTemplate)
.map((metaTagName) => {

let existingTag = _.find((<common.models.Article>data)._metas, {metaName:metaTagName});
if(_.isEmpty(existingTag)) {
let existingTagData = _.find((<common.models.Article>data)._metas, {metaName:metaTagName});
if(_.isEmpty(existingTagData)) {
return new common.models.Meta({
metaName:metaTagName,
metaContent:'',
metaableId:(<common.models.Article>data).postId,
metaId:common.models.Article.generateUUID()
});
}
return existingTag;

return new common.models.Meta(existingTagData);
})
.thru((templateMeta) => {
let leftovers = _.filter((<common.models.Article>data)._metas, (metaTag) => {
return !_.contains(templateMeta, metaTag);
});

let leftovers = _.reduce((<common.models.Article>data)._metas, (metaTags:common.models.Meta[], metaTagData) => {
if(!_.find(templateMeta, {metaName:metaTagData.metaName})) {
metaTags.push(new common.models.Meta(metaTagData));
}

return metaTags;
}, []);

return templateMeta.concat(leftovers);
})
Expand Down

0 comments on commit 0ec4cad

Please sign in to comment.