Commit 4aa998ad243e8d6e6e1fdaf899b6d39296251e72
1 parent
ac499870
Exists in
master
and in
35 other branches
Create a helper to provide filters to tests
Showing
5 changed files
with
21 additions
and
18 deletions
Show diff stats
src/app/components/noosfero-blocks/link-list/link-list.component.spec.ts
| 1 | 1 | import {TestComponentBuilder} from 'ng-forward/cjs/testing/test-component-builder'; |
| 2 | 2 | import {Pipe, Input, provide, Component} from 'ng-forward'; |
| 3 | +import {provideFilters} from '../../../../spec/helpers'; | |
| 3 | 4 | |
| 4 | 5 | import {LinkListBlock} from './link-list.component'; |
| 5 | 6 | |
| ... | ... | @@ -41,21 +42,17 @@ describe("Link List Block Component", () => { |
| 41 | 42 | |
| 42 | 43 | it("display links stored in block settings", done => { |
| 43 | 44 | |
| 44 | - @Pipe('noosferoTemplateFilter') | |
| 45 | - class NoosferoTemplateFilter { | |
| 46 | - transform(input: any, changeTo: any) { | |
| 47 | - return input; | |
| 48 | - } | |
| 49 | - } | |
| 50 | - | |
| 51 | - @Component({ selector: 'test-container-component', template: htmlTemplate, directives: [LinkListBlock] }) | |
| 45 | + @Component({ | |
| 46 | + selector: 'test-container-component', | |
| 47 | + template: htmlTemplate, | |
| 48 | + directives: [LinkListBlock], | |
| 49 | + providers: provideFilters("noosferoTemplateFilter") | |
| 50 | + }) | |
| 52 | 51 | class CustomBlockType { |
| 53 | 52 | block: any = { settings: { links: [{ name: 'link1', address: 'address1' }, { name: 'link2', address: 'address2' }] } }; |
| 54 | 53 | owner: any = { name: 'profile-name' }; |
| 55 | - constructor() { | |
| 56 | - } | |
| 57 | 54 | } |
| 58 | - tcb.overrideView(LinkListBlock, { templateUrl: "app/components/noosfero-blocks/link-list/link-list.html", pipes: [NoosferoTemplateFilter] }).createAsync(CustomBlockType).then(fixture => { | |
| 55 | + tcb.createAsync(CustomBlockType).then(fixture => { | |
| 59 | 56 | expect(fixture.debugElement.queryAll(".link-list-block a").length).toEqual(2); |
| 60 | 57 | done(); |
| 61 | 58 | }); | ... | ... |
src/app/components/noosfero-blocks/link-list/link-list.html
| 1 | 1 | <div class="link-list-block"> |
| 2 | 2 | <div ng-repeat="link in ctrl.links"> |
| 3 | - <a ng-href="{{link.address | noosferoTemplateFilter:{profile: ctrl.owner.identifier} }}"> | |
| 3 | + <a ng-href="{{link.address | noosferoTemplate:{profile: ctrl.owner.identifier} }}"> | |
| 4 | 4 | <i class="fa fa-fw icon-{{link.icon}}"></i> <span>{{link.name}}</span> |
| 5 | 5 | </a> |
| 6 | 6 | </div> | ... | ... |
src/app/components/noosfero-blocks/recent-documents/recent-documents.component.spec.ts
| 1 | 1 | import {TestComponentBuilder} from 'ng-forward/cjs/testing/test-component-builder'; |
| 2 | 2 | import {Provider, Input, provide, Component} from 'ng-forward'; |
| 3 | - | |
| 3 | +import {provideFilters} from '../../../../spec/helpers'; | |
| 4 | 4 | import {RecentDocumentsBlock} from './recent-documents.component'; |
| 5 | 5 | |
| 6 | 6 | const htmlTemplate: string = '<noosfero-recent-documents-block [block]="ctrl.block" [owner]="ctrl.owner"></noosfero-recent-documents-block>'; |
| ... | ... | @@ -13,8 +13,6 @@ describe("Recent Documents Block Component", () => { |
| 13 | 13 | |
| 14 | 14 | let state = jasmine.createSpyObj("state", ["go"]); |
| 15 | 15 | let providers = [ |
| 16 | - new Provider('truncateFilter', { useValue: () => { } }), | |
| 17 | - new Provider('stripTagsFilter', { useValue: () => { } }), | |
| 18 | 16 | new Provider('$state', { useValue: state }), |
| 19 | 17 | new Provider('ArticleService', { |
| 20 | 18 | useValue: { |
| ... | ... | @@ -23,7 +21,8 @@ describe("Recent Documents Block Component", () => { |
| 23 | 21 | } |
| 24 | 22 | } |
| 25 | 23 | }), |
| 26 | - ]; | |
| 24 | + ].concat(provideFilters("truncateFilter", "stripTagsFilter")); | |
| 25 | + | |
| 27 | 26 | @Component({ selector: 'test-container-component', template: htmlTemplate, directives: [RecentDocumentsBlock], providers: providers }) |
| 28 | 27 | class BlockContainerComponent { |
| 29 | 28 | block = { type: 'Block', settings: {} }; | ... | ... |
src/app/components/noosfero/noosfero-template.filter.js
| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | 'use strict'; |
| 3 | 3 | angular |
| 4 | 4 | .module("noosferoApp") |
| 5 | - .filter("noosferoTemplateFilter", function() { | |
| 5 | + .filter("noosferoTemplate", function() { | |
| 6 | 6 | return function(text, options) { |
| 7 | 7 | for(var option in options) { |
| 8 | 8 | text = text.replace('{'+option+'}', options[option]); | ... | ... |
src/spec/helpers.ts
| 1 | 1 | |
| 2 | 2 | import {ngClass, TestComponentBuilder, ComponentFixture} from 'ng-forward/cjs/testing/test-component-builder'; |
| 3 | 3 | import {quickFixture} from 'ng-forward/cjs/tests/utils'; |
| 4 | -import {Input, provide, Component} from 'ng-forward'; | |
| 4 | +import {Provider, Input, provide, Component} from 'ng-forward'; | |
| 5 | 5 | |
| 6 | 6 | |
| 7 | 7 | |
| ... | ... | @@ -29,3 +29,10 @@ export function createComponentFromClass(yourClass: ngClass) { |
| 29 | 29 | return tcb.createAsync(yourClass); |
| 30 | 30 | } |
| 31 | 31 | |
| 32 | +export function provideFilters(...filters: string[]) { | |
| 33 | + let providers: Provider[] = []; | |
| 34 | + for (var filter of filters) { | |
| 35 | + providers.push(new Provider(filter, { useValue: () => { } })); | |
| 36 | + } | |
| 37 | + return providers; | |
| 38 | +} | ... | ... |