diff --git a/src/app/article/article-default-view-component.spec.ts b/src/app/article/article-default-view-component.spec.ts index 7ffae0e..327bc48 100644 --- a/src/app/article/article-default-view-component.spec.ts +++ b/src/app/article/article-default-view-component.spec.ts @@ -68,13 +68,13 @@ describe("Components", () => { */ function doDeleteArticle() { // Create a mock for the ArticleService removeArticle method - spyOn(helper.component.articleService, 'removeArticle').and.callFake(function(param: noosfero.Article) { + spyOn(helper.component.articleService, 'remove').and.callFake(function(param: noosfero.Article) { return { catch: () => {} }; }); helper.component.delete(); - expect(articleService.removeArticle).toHaveBeenCalled(); + expect(articleService.remove).toHaveBeenCalled(); // After the component delete method execution, fire the // ArticleEvent.removed event simulateRemovedEvent(); @@ -84,7 +84,7 @@ describe("Components", () => { * Simulate the ArticleService ArticleEvent.removed event */ function simulateRemovedEvent() { - helper.component.articleService["notifyArticleRemovedListeners"](article); + helper.component.articleService["modelRemovedEventEmitter"].next(article); } }); diff --git a/src/app/article/article-default-view.component.ts b/src/app/article/article-default-view.component.ts index 0c6b1a7..32e4d24 100644 --- a/src/app/article/article-default-view.component.ts +++ b/src/app/article/article-default-view.component.ts @@ -17,13 +17,13 @@ import {NotificationService} from "./../shared/services/notification.service"; selector: 'noosfero-default-article', templateUrl: 'app/article/article.html' }) -@Inject("$state", ArticleService, NotificationService) +@Inject("$state", ArticleService) export class ArticleDefaultViewComponent { @Input() article: noosfero.Article; @Input() profile: noosfero.Profile; - constructor(private $state: ng.ui.IStateService, public articleService: ArticleService, protected notificationService: NotificationService) { + constructor(private $state: ng.ui.IStateService, public articleService: ArticleService) { // Subscribe to the Article Removed Event this.articleService.subscribeToModelRemoved((article: noosfero.Article) => { if (this.article.parent) { diff --git a/src/app/layout/blocks/recent-documents/recent-documents-block.component.spec.ts b/src/app/layout/blocks/recent-documents/recent-documents-block.component.spec.ts index ab6488c..f003a78 100644 --- a/src/app/layout/blocks/recent-documents/recent-documents-block.component.spec.ts +++ b/src/app/layout/blocks/recent-documents/recent-documents-block.component.spec.ts @@ -15,7 +15,7 @@ describe("Components", () => { let article = { name: "article1" }; let mockedBlockService = { getApiContent: (block: noosfero.Block): any => { - return Promise.resolve({ articles: [ article ], headers: (name: string) => { return name; } }); + return Promise.resolve({ articles: [article], headers: (name: string) => { return name; } }); } }; let articleService: any = helpers.mocks.articleService; @@ -51,7 +51,7 @@ describe("Components", () => { it("get recent documents from the block service", done => { tcb.createAsync(getComponent()).then(fixture => { let recentDocumentsBlock: RecentDocumentsBlockComponent = fixture.debugElement.componentViewChildren[0].componentInstance; - expect(recentDocumentsBlock.documents).toEqual([ article ]); + expect(recentDocumentsBlock.documents).toEqual([article]); done(); }); }); @@ -71,16 +71,16 @@ describe("Components", () => { expect(recentDocumentsBlock.documents.length).toEqual(1); simulateRemovedEvent(recentDocumentsBlock); expect(recentDocumentsBlock.documents.length).toEqual(0); - done(); - }) + done(); + }); }); - + /** * Simulate the ArticleService ArticleEvent.removed event */ function simulateRemovedEvent(recentDocumentsBlock: RecentDocumentsBlockComponent) { - recentDocumentsBlock.articleService["notifyArticleRemovedListeners"](article); + recentDocumentsBlock.articleService["modelRemovedEventEmitter"].next(article); } - + }); }); diff --git a/src/app/layout/blocks/recent-documents/recent-documents-block.component.ts b/src/app/layout/blocks/recent-documents/recent-documents-block.component.ts index dd5202a..39f3cab 100644 --- a/src/app/layout/blocks/recent-documents/recent-documents-block.component.ts +++ b/src/app/layout/blocks/recent-documents/recent-documents-block.component.ts @@ -30,7 +30,7 @@ export class RecentDocumentsBlockComponent { } watchArticles() { - this.articleService.subscribeToArticleRemoved((article: noosfero.Article) => { + this.articleService.subscribeToModelRemoved((article: noosfero.Article) => { Arrays.remove(this.documents, article); }); } diff --git a/src/app/layout/blocks/statistics/statistics-block.component.spec.ts b/src/app/layout/blocks/statistics/statistics-block.component.spec.ts index fd76e27..67e1ee8 100644 --- a/src/app/layout/blocks/statistics/statistics-block.component.spec.ts +++ b/src/app/layout/blocks/statistics/statistics-block.component.spec.ts @@ -1,9 +1,11 @@ +import {provide} from 'ng-forward'; import {ComponentTestHelper, createClass} from './../../../../spec/component-test-helper'; import {StatisticsBlockComponent} from './statistics-block.component'; import * as helpers from "../../../../spec/helpers"; const htmlTemplate: string = ''; + describe("Components", () => { describe("Statistics Block Component", () => { @@ -11,10 +13,15 @@ describe("Components", () => { beforeEach(angular.mock.module("templates")); beforeEach((done) => { + let articleService: any = helpers.mocks.articleService; + let blockService: any = jasmine.createSpyObj("blockService", ["getBlock"]); let cls = createClass({ template: htmlTemplate, directives: [StatisticsBlockComponent], - providers: helpers.provideFilters("translateFilter"), + providers: [ + provide('ArticleService', { useValue: articleService }), + provide('BlockService', { useValue: blockService }) + ].concat(helpers.provideFilters("translateFilter")), properties: { block: { statistics: [ diff --git a/src/lib/ng-noosfero-api/http/article.service.spec.ts b/src/lib/ng-noosfero-api/http/article.service.spec.ts index 7c142c2..0d23d6c 100644 --- a/src/lib/ng-noosfero-api/http/article.service.spec.ts +++ b/src/lib/ng-noosfero-api/http/article.service.spec.ts @@ -23,7 +23,7 @@ describe("Services", () => { it("should remove article", (done) => { let articleId = 1; $httpBackend.expectDELETE(`/api/v1/articles/${articleId}`).respond(200, { success: "true" }); - articleService.removeArticle({id: articleId}); + articleService.remove({id: articleId}); $httpBackend.flush(); $httpBackend.verifyNoOutstandingExpectation(); done(); diff --git a/src/lib/util/arrays.ts b/src/lib/util/arrays.ts index e8349f1..a0e524a 100644 --- a/src/lib/util/arrays.ts +++ b/src/lib/util/arrays.ts @@ -1,8 +1,7 @@ export class Arrays { - static remove(elements: T[], element: T) { elements.forEach((value: T, index: number, array: T[]) => { - if (value.id == element.id) { + if (value.id === element.id) { array.splice(index, 1); } }); diff --git a/src/plugins/comment_paragraph/block/discussion/discussion-block.component.spec.ts b/src/plugins/comment_paragraph/block/discussion/discussion-block.component.spec.ts index 63e9ef8..341c7ab 100644 --- a/src/plugins/comment_paragraph/block/discussion/discussion-block.component.spec.ts +++ b/src/plugins/comment_paragraph/block/discussion/discussion-block.component.spec.ts @@ -17,7 +17,7 @@ describe("Components", () => { let article = { name: "article1" }; let mockedBlockService = { getApiContent: (content: any): any => { - return Promise.resolve({ articles: [ article ], headers: (name: string) => { return name; } }); + return Promise.resolve({ articles: [article], headers: (name: string) => { return name; } }); } }; let articleService: any = helpers.mocks.articleService; @@ -55,7 +55,7 @@ describe("Components", () => { block.openDocument({ path: "path", profile: { identifier: "identifier" } }); expect(state.go).toHaveBeenCalledWith("main.profile.page", { page: "path", profile: "identifier" }); }); - + it("verify removed article has been removed from list", () => { expect(helper.component.documents.length).toEqual(1); simulateRemovedEvent(); @@ -65,7 +65,7 @@ describe("Components", () => { * Simulate the ArticleService ArticleEvent.removed event */ function simulateRemovedEvent() { - helper.component.articleService["notifyArticleRemovedListeners"](article); - } + helper.component.articleService["modelRemovedEventEmitter"].next(article); + } }); }); diff --git a/src/plugins/comment_paragraph/block/discussion/discussion-block.component.ts b/src/plugins/comment_paragraph/block/discussion/discussion-block.component.ts index 5dd2e6f..5393a28 100644 --- a/src/plugins/comment_paragraph/block/discussion/discussion-block.component.ts +++ b/src/plugins/comment_paragraph/block/discussion/discussion-block.component.ts @@ -1,7 +1,7 @@ import {Component, Inject, Input} from "ng-forward"; import {BlockService} from "../../../../lib/ng-noosfero-api/http/block.service"; -import {ArticleService} from "./../../../../lib/ng-noosfero-api/http/article.service" -import {Arrays} from "./../../../../lib/util/arrays" +import {ArticleService} from "./../../../../lib/ng-noosfero-api/http/article.service"; +import {Arrays} from "./../../../../lib/util/arrays"; @Component({ selector: "noosfero-comment-paragraph-plugin-discussion-block", @@ -26,9 +26,9 @@ export class DiscussionBlockComponent { }); this.watchArticles(); } - + watchArticles() { - this.articleService.subscribeToArticleRemoved((article: noosfero.Article) => { + this.articleService.subscribeToModelRemoved((article: noosfero.Article) => { Arrays.remove(this.documents, article); }); } diff --git a/src/spec/mocks.ts b/src/spec/mocks.ts index 0098fdc..1711a08 100644 --- a/src/spec/mocks.ts +++ b/src/spec/mocks.ts @@ -77,10 +77,14 @@ export var mocks: any = { }, articleService: { articleRemovedFn: null, - subscribeToArticleRemoved: (fn: Function) => { + articleAddedFn: null, + subscribeToModelRemoved: (fn: Function) => { mocks.articleService.articleRemovedFn = fn; }, - articleRemoved: + subscribeToModelAdded: (fn: Function) => { + mocks.articleService.articleAddedFn = fn; + }, + modelRemovedEventEmitter: { subscribe: (fn: Function) => { mocks.articleService.articleRemovedFn = fn; @@ -90,18 +94,22 @@ export var mocks: any = { } } , - removeArticle: (article: noosfero.Article) => { + modelAddedEventEmitter: + { + subscribe: (fn: Function) => { + mocks.articleService.articleAddedFn = fn; + }, + next: (param: any) => { + mocks.articleService.articleAddedFn(param); + } + } + , + remove: (article: noosfero.Article) => { return { catch: (func?: Function) => { } }; }, - notifyArticleRemovedListeners: (article: noosfero.Article) => { - mocks.articleService.articleRemoved.next(article); - }, - subscribe: (eventType: any, fn: Function) => { - mocks.articleService.articleRemoved.subscribe(fn); - }, getByProfile: (profileId: number, params?: any) => { return { then: (func?: Function) => { -- libgit2 0.21.2