Commit 660909615460c30c08435d83310ce85cb82f09ee

Authored by Victor Costa
1 parent e8918c10

Refactor comment received event

src/app/article/comment/comments.component.spec.ts
... ... @@ -2,6 +2,7 @@ import {Provider, provide, Component} from 'ng-forward';
2 2 import * as helpers from "../../../spec/helpers";
3 3  
4 4 import {CommentsComponent} from './comments.component';
  5 +import {PostCommentComponent} from "./post-comment.component";
5 6  
6 7 const htmlTemplate: string = '<noosfero-comments [article]="ctrl.article"></noosfero-comments>';
7 8  
... ... @@ -42,8 +43,9 @@ describe(&quot;Components&quot;, () =&gt; {
42 43  
43 44 it("update comments list when receive an event", done => {
44 45 helpers.createComponentFromClass(ContainerComponent).then(fixture => {
45   - fixture.debugElement.getLocal("$rootScope").$emit("comment.received", {});
46   - expect(fixture.debugElement.queryAll("noosfero-post-comment").length).toEqual(1);
  46 + fixture.debugElement.getLocal("$rootScope").$emit(PostCommentComponent.EVENT_COMMENT_RECEIVED, { id: 1 });
  47 + fixture.debugElement.getLocal("$rootScope").$apply();
  48 + expect(fixture.debugElement.queryAll("noosfero-comment").length).toEqual(3);
47 49 done();
48 50 });
49 51 });
... ...
src/app/article/comment/comments.component.ts
... ... @@ -15,7 +15,7 @@ export class CommentsComponent {
15 15 @Input() article: noosfero.Article;
16 16  
17 17 constructor(private commentService: CommentService, private $rootScope: ng.IScope) {
18   - $rootScope.$on("comment.received", (event: ng.IAngularEvent, comment: noosfero.Comment) => {
  18 + $rootScope.$on(PostCommentComponent.EVENT_COMMENT_RECEIVED, (event: ng.IAngularEvent, comment: noosfero.Comment) => {
19 19 this.comments.push(comment);
20 20 });
21 21 }
... ...
src/app/article/comment/post-comment.component.ts
... ... @@ -9,6 +9,8 @@ import { NotificationService } from &quot;../../shared/services/notification.service&quot;
9 9 @Inject(CommentService, NotificationService, "$rootScope")
10 10 export class PostCommentComponent {
11 11  
  12 + public static EVENT_COMMENT_RECEIVED = "comment.received";
  13 +
12 14 @Input() article: noosfero.Article;
13 15 comment: noosfero.Comment;
14 16  
... ... @@ -21,7 +23,7 @@ export class PostCommentComponent {
21 23 this.comment.reply_of_id = this.replyOf.id;
22 24 }
23 25 this.commentService.createInArticle(this.article, this.comment).then((result: noosfero.RestResult<noosfero.Comment>) => {
24   - this.$rootScope.$emit("comment.received", result.data);
  26 + this.$rootScope.$emit(PostCommentComponent.EVENT_COMMENT_RECEIVED, result.data);
25 27 this.notificationService.success({ title: "Good job!", message: "Comment saved!" });
26 28 });
27 29 }
... ...