Commit 94fa90c3afd2ee74f4e98c35147691a9d5d37ab2

Authored by ABNER SILVA DE OLIVEIRA
1 parent 30c6672c

fixed blog component spec compilation issues

src/app/components/noosfero-articles/blog/blog.component.spec.ts
... ... @@ -7,7 +7,8 @@ import {createComponentFromClass, quickCreateComponent, provideEmptyObjects, cre
7 7  
8 8 // this htmlTemplate will be re-used between the container components in this spec file
9 9 const htmlTemplate: string = '<noosfero-blog [article]="ctrl.article" [profile]="ctrl.profile"></noosfero-blog>';
10   -let articleService = {};
  10 +
  11 +let articleService: { getChildren: Function } = <any>{};
11 12  
12 13 describe("Blog Component", () => {
13 14  
... ... @@ -17,19 +18,22 @@ describe(&quot;Blog Component&quot;, () =&gt; {
17 18 // component Noosfero ArtileView will be load on our tests
18 19 beforeEach(angular.mock.module("templates"));
19 20  
20   - function promiseResultTemplate(thenFunc: Function) {
  21 + function promiseResultTemplate(response?: {}) {
21 22 let thenFuncEmpty = (func: Function) => {
22 23 // does nothing
23   - //func()
24 24 };
25   - if (thenFunc) {
  25 + if (response) {
26 26 return {
27   - then: thenFunc
28   - }
  27 + then: (func: (response: any) => void) => {
  28 + func(response);
  29 + }
  30 + };
29 31 } else {
30 32 return {
31   - then: thenFuncEmpty
32   - }
  33 + then: (func: (response: any) => void) => {
  34 + // does nothing
  35 + }
  36 + };
33 37 }
34 38 }
35 39  
... ... @@ -37,7 +41,7 @@ describe(&quot;Blog Component&quot;, () =&gt; {
37 41 // creating mock for articleService
38 42 articleService = {
39 43 getChildren: (article_id: number, filters: {}) => {
40   - return promiseResultTemplate();
  44 + return promiseResultTemplate(null);
41 45 }
42 46 };
43 47 });
... ... @@ -64,51 +68,52 @@ describe(&quot;Blog Component&quot;, () =&gt; {
64 68 done();
65 69 });
66 70  
67   - it("verify the blog data", (done: Function) => {
68 71  
69   - articleService.getChildren = (article_id: number, filters: {}) => {
70   - return promiseResultTemplate(() => {
71   - return {
72   - headers: {
73   - total: 1
  72 +
  73 + });
  74 +
  75 + it("verify the blog data", (done: Function) => {
  76 +
  77 + // defining a mock result to articleService.getChildren method
  78 + articleService.getChildren = (article_id: number, filters: {}) => {
  79 + return promiseResultTemplate({
  80 + headers: (headerName: string) => {
  81 + return 1;
74 82 },
75   - data: {
76   - articles: [
77   - ]
  83 + data: <any>{
  84 + articles: []
78 85 }
79   - }
80 86 });
81   - }
82   - @Component({
83   - selector: 'test-container-component',
84   - template: htmlTemplate,
85   - directives: [ArticleBlog],
86   - providers: [provideEmptyObjects('Restangular'), createProviderToValue('ArticleService', articleService)]
87   - })
88   - class BlogContainerComponent {
89   - article = { type: 'anyArticleType' };
90   - profile = { name: 'profile-name' };
91   - }
  87 + };
92 88  
93   - createComponentFromClass(BlogContainerComponent).then((fixture) => {
94   - // and here we can inspect and run the test assertions
  89 + @Component({
  90 + selector: 'test-container-component',
  91 + template: htmlTemplate,
  92 + directives: [ArticleBlog],
  93 + providers: [provideEmptyObjects('Restangular'), createProviderToValue('ArticleService', articleService)]
  94 + })
  95 + class BlogContainerComponent {
  96 + article = { type: 'anyArticleType' };
  97 + profile = { name: 'profile-name' };
  98 + }
95 99  
96   - // gets the children component of ArticleContainerComponent
97   - let articleBlog: BlogContainerComponent = fixture.debugElement.componentViewChildren[0].componentInstance;
  100 + createComponentFromClass(BlogContainerComponent).then((fixture) => {
98 101  
99   - // and checks if the article View rendered was the Default Article View
100   - //expect(articleView.constructor.prototype).toEqual(ArticleDefaultView.prototype);
101   - expect(articleBlog["posts"]).toEqual([]);
102   - expect(articleBlog["totalPosts"]).toEqual(1);
  102 + // gets the children component of BlogContainerComponent
  103 + let articleBlog: BlogContainerComponent = fixture.debugElement.componentViewChildren[0].componentInstance;
103 104  
  105 + // check if the component property are the provided by the mocked articleService
  106 + expect((<any>articleBlog)["posts"]).toEqual([]);
  107 + expect((<any>articleBlog)["totalPosts"]).toEqual(1);
104 108  
105   - // done needs to be called (it isn't really needed, as we can read in
106   - // here (https://github.com/ngUpgraders/ng-forward/blob/master/API.md#createasync)
107   - // because createAsync in ng-forward is not really async, but as the intention
108   - // here is write tests in angular 2 ways, this is recommended
109   - done();
110   - });
111 109  
  110 + // done needs to be called (it isn't really needed, as we can read in
  111 + // here (https://github.com/ngUpgraders/ng-forward/blob/master/API.md#createasync)
  112 + // because createAsync in ng-forward is not really async, but as the intention
  113 + // here is write tests in angular 2 ways, this is recommended
  114 + done();
112 115 });
113 116  
114 117 });
  118 +
  119 +});
... ...