Commit f7c01b774aae6ec2fa1e942815f7996e6bcc1e3a
Exists in
master
and in
1 other branch
merge
Showing
8 changed files
with
158 additions
and
40 deletions
Show diff stats
src/app/components/navbar/navbar.spec.ts
| 1 | import { | 1 | import { |
| 2 | -createComponentFromClass, | ||
| 3 | -quickCreateComponent, | ||
| 4 | -provideEmptyObjects | 2 | + createComponentFromClass, |
| 3 | + quickCreateComponent, | ||
| 4 | + provideEmptyObjects | ||
| 5 | } from "./../../../spec/helpers"; | 5 | } from "./../../../spec/helpers"; |
| 6 | import { | 6 | import { |
| 7 | -Navbar | 7 | + Navbar |
| 8 | } from "./navbar"; | 8 | } from "./navbar"; |
| 9 | import { | 9 | import { |
| 10 | -AUTH_EVENTS | 10 | + AUTH_EVENTS |
| 11 | } from "./../auth"; | 11 | } from "./../auth"; |
| 12 | import { | 12 | import { |
| 13 | -User | 13 | + User |
| 14 | } from "./../../models/interfaces"; | 14 | } from "./../../models/interfaces"; |
| 15 | import { | 15 | import { |
| 16 | -Injectable, | ||
| 17 | -Provider, | ||
| 18 | -provide | 16 | + Injectable, |
| 17 | + Provider, | ||
| 18 | + provide | ||
| 19 | } from "ng-forward"; | 19 | } from "ng-forward"; |
| 20 | 20 | ||
| 21 | 21 | ||
| @@ -59,7 +59,6 @@ describe("Components", () => { | @@ -59,7 +59,6 @@ describe("Components", () => { | ||
| 59 | }) | 59 | }) |
| 60 | ]; | 60 | ]; |
| 61 | 61 | ||
| 62 | - | ||
| 63 | quickCreateComponent({ | 62 | quickCreateComponent({ |
| 64 | providers: providers, | 63 | providers: providers, |
| 65 | template: "<acme-navbar></acme-navbar>", | 64 | template: "<acme-navbar></acme-navbar>", |
| @@ -72,5 +71,118 @@ describe("Components", () => { | @@ -72,5 +71,118 @@ describe("Components", () => { | ||
| 72 | }); | 71 | }); |
| 73 | }); | 72 | }); |
| 74 | 73 | ||
| 74 | + it('It should open on click', (done: Function) => { | ||
| 75 | + | ||
| 76 | + let scope = { | ||
| 77 | + eventCalledHook: () => { }, | ||
| 78 | + $on: (eventName: string, func: Function) => { | ||
| 79 | + console.log("ON Called!"); | ||
| 80 | + this.eventCalledHook = func; | ||
| 81 | + } | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + let modalInstance = { | ||
| 85 | + close: () => { | ||
| 86 | + console.log("CLOSE Called!"); | ||
| 87 | + } | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + let $modal = { | ||
| 91 | + open: (args: {}) => { | ||
| 92 | + return modalInstance; | ||
| 93 | + } | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + let stateService = jasmine.createSpyObj("$state", ["go"]); | ||
| 97 | + let providers = [ | ||
| 98 | + new Provider('moment', { useValue: {} }), | ||
| 99 | + new Provider('$modal', { useValue: $modal }), | ||
| 100 | + new Provider('AuthService', { useValue: {} }), | ||
| 101 | + new Provider('Session', { | ||
| 102 | + useValue: { | ||
| 103 | + currentUser: () => { return user } | ||
| 104 | + } | ||
| 105 | + }), | ||
| 106 | + new Provider('$scope', { useValue: scope }), | ||
| 107 | + new Provider('$state', { useValue: stateService }), | ||
| 108 | + new Provider('AUTH_EVENTS', { useValue: { AUTH_EVENTS } }) | ||
| 109 | + ]; | ||
| 110 | + quickCreateComponent({ | ||
| 111 | + providers: providers, | ||
| 112 | + template: "<acme-navbar></acme-navbar>", | ||
| 113 | + directives: [Navbar] | ||
| 114 | + }) | ||
| 115 | + .then(fixture => { | ||
| 116 | + console.log("entrou no .then") | ||
| 117 | + let navbarComp: Navbar = <Navbar>fixture.debugElement.componentViewChildren[0].componentInstance; | ||
| 118 | + spyOn($modal, "open"); | ||
| 119 | + //navbarComp.activate(); | ||
| 120 | + navbarComp.openLogin(); | ||
| 121 | + expect($modal.open).toHaveBeenCalled(); | ||
| 122 | + expect($modal.open).toHaveBeenCalledWith({ | ||
| 123 | + templateUrl: 'app/components/auth/login.html', | ||
| 124 | + controller: 'AuthController', | ||
| 125 | + controllerAs: 'vm', | ||
| 126 | + bindToController: true | ||
| 127 | + }) | ||
| 128 | + done(); | ||
| 129 | + }) | ||
| 130 | + }); | ||
| 131 | + | ||
| 132 | + | ||
| 133 | + // it('closes the modal the login', (done: Function) => { | ||
| 134 | + // let scope = { | ||
| 135 | + // eventCalledHook: () => { }, | ||
| 136 | + // $on: (eventName: string, func: Function) => { | ||
| 137 | + // console.log("ON Called!"); | ||
| 138 | + // this.eventCalledHook = func; | ||
| 139 | + // } | ||
| 140 | + // } | ||
| 141 | + // | ||
| 142 | + // let modalInstance = { | ||
| 143 | + // close: () => { | ||
| 144 | + // console.log("CLOSE Called!"); | ||
| 145 | + // } | ||
| 146 | + // } | ||
| 147 | + // | ||
| 148 | + // let $modal = { | ||
| 149 | + // $open: (args: {}) => { | ||
| 150 | + // return modalInstance; | ||
| 151 | + // } | ||
| 152 | + // } | ||
| 153 | + // | ||
| 154 | + // let stateService = jasmine.createSpyObj("$state", ["go"]); | ||
| 155 | + // let providers = [ | ||
| 156 | + // new Provider('moment', { useValue: {} }), | ||
| 157 | + // new Provider('$modal', { useValue: $modal }), | ||
| 158 | + // new Provider('AuthService', { useValue: {} }), | ||
| 159 | + // new Provider('Session', { | ||
| 160 | + // useValue: { | ||
| 161 | + // currentUser: () => { return user } | ||
| 162 | + // } | ||
| 163 | + // }), | ||
| 164 | + // new Provider('$scope', { useValue: scope }), | ||
| 165 | + // new Provider('$state', { useValue: stateService }), | ||
| 166 | + // new Provider('AUTH_EVENTS', { useValue: { AUTH_EVENTS } }) | ||
| 167 | + // ]; | ||
| 168 | + // spyOn(modalInstance, "close"); | ||
| 169 | + // | ||
| 170 | + // quickCreateComponent({ | ||
| 171 | + // providers: providers, | ||
| 172 | + // template: "<acme-navbar></acme-navbar>", | ||
| 173 | + // directives: [Navbar] | ||
| 174 | + // }) | ||
| 175 | + // .then(fixture => { | ||
| 176 | + // let navbarComp: Navbar = <Navbar>fixture.debugElement.componentViewChildren[0].componentInstance; | ||
| 177 | + // navbarComp.activate(); | ||
| 178 | + // navbarComp.openLogin | ||
| 179 | + // | ||
| 180 | + // expect($modal.open).toHaveBeenCalledWith({}) | ||
| 181 | + // scope.eventCalledHook(); | ||
| 182 | + // expect(modalInstance.close).toHaveBeenCalled(); | ||
| 183 | + // done(); | ||
| 184 | + // }) | ||
| 185 | + // //done(); | ||
| 186 | + // }); | ||
| 75 | }); | 187 | }); |
| 76 | -}); | ||
| 77 | \ No newline at end of file | 188 | \ No newline at end of file |
| 189 | +}); |
src/app/components/navbar/navbar.ts
src/app/components/noosfero/noosfero-template.filter.js
| @@ -1,13 +0,0 @@ | @@ -1,13 +0,0 @@ | ||
| 1 | -(function() { | ||
| 2 | - 'use strict'; | ||
| 3 | - angular | ||
| 4 | - .module("noosferoApp") | ||
| 5 | - .filter("noosferoTemplate", function() { | ||
| 6 | - return function(text, options) { | ||
| 7 | - for(var option in options) { | ||
| 8 | - text = text.replace('{'+option+'}', options[option]); | ||
| 9 | - } | ||
| 10 | - return text; | ||
| 11 | - } | ||
| 12 | - }) | ||
| 13 | -})(); |
src/app/components/noosfero/noosfero-template.filter.spec.ts
0 → 100644
| @@ -0,0 +1,19 @@ | @@ -0,0 +1,19 @@ | ||
| 1 | +import {quickCreateComponent} from "../../../spec/helpers"; | ||
| 2 | +import {NoosferoTemplate} from './noosfero-template.filter'; | ||
| 3 | + | ||
| 4 | +describe("Filters", () => { | ||
| 5 | + describe("Noosfero Template Filter", () => { | ||
| 6 | + | ||
| 7 | + beforeEach(angular.mock.module("templates")); | ||
| 8 | + | ||
| 9 | + it("replace the options in text with the values passed on options", done => { | ||
| 10 | + let text = 'profile: {profile}, other: {other}'; | ||
| 11 | + let htmlTemplate = `{{ '${text}' | noosferoTemplate: {profile: 'profile1', other: 'other value'} }}`; | ||
| 12 | + quickCreateComponent({ providers: [NoosferoTemplate], template: htmlTemplate }).then(fixture => { | ||
| 13 | + expect(fixture.debugElement.text()).toEqual("profile: profile1, other: other value"); | ||
| 14 | + done(); | ||
| 15 | + }); | ||
| 16 | + }); | ||
| 17 | + | ||
| 18 | + }); | ||
| 19 | +}); |
src/app/components/noosfero/noosfero-template.filter.ts
| 1 | -(function() { | ||
| 2 | - 'use strict'; | ||
| 3 | - angular | ||
| 4 | - .module("noosferoApp") | ||
| 5 | - .filter("noosferoTemplate", function() { | ||
| 6 | - return function(text, options) { | ||
| 7 | - for(var option in options) { | ||
| 8 | - text = text.replace('{'+option+'}', options[option]); | 1 | +import {Pipe} from "ng-forward"; |
| 2 | + | ||
| 3 | +@Pipe("noosferoTemplate") | ||
| 4 | +export class NoosferoTemplate { | ||
| 5 | + | ||
| 6 | + transform(text: string, options: any) { | ||
| 7 | + for (var option in options) { | ||
| 8 | + text = text.replace('{' + option + '}', options[option]); | ||
| 9 | } | 9 | } |
| 10 | return text; | 10 | return text; |
| 11 | - } | ||
| 12 | - }) | ||
| 13 | -})(); | 11 | + } |
| 12 | + | ||
| 13 | +} |
src/app/index.ts
| @@ -42,7 +42,6 @@ NoosferoApp.run(noosferoAngularRunBlock); | @@ -42,7 +42,6 @@ NoosferoApp.run(noosferoAngularRunBlock); | ||
| 42 | NoosferoApp.addController("AuthController", AuthController); | 42 | NoosferoApp.addController("AuthController", AuthController); |
| 43 | 43 | ||
| 44 | 44 | ||
| 45 | -require("./components/noosfero/noosfero-template.filter.js"); | ||
| 46 | require("./components/noosfero/noosfero.service.js"); | 45 | require("./components/noosfero/noosfero.service.js"); |
| 47 | require("./components/noosfero/profile-image/profile-image.component.js"); | 46 | require("./components/noosfero/profile-image/profile-image.component.js"); |
| 48 | 47 |
src/app/main/main.component.ts
| @@ -10,7 +10,7 @@ import {LinkListBlock} from "../components/noosfero-blocks/link-list/link-list.c | @@ -10,7 +10,7 @@ import {LinkListBlock} from "../components/noosfero-blocks/link-list/link-list.c | ||
| 10 | import {RecentDocumentsBlock} from "../components/noosfero-blocks/recent-documents/recent-documents.component"; | 10 | import {RecentDocumentsBlock} from "../components/noosfero-blocks/recent-documents/recent-documents.component"; |
| 11 | import {ProfileImageBlock} from "../components/noosfero-blocks/profile-image/profile-image.component"; | 11 | import {ProfileImageBlock} from "../components/noosfero-blocks/profile-image/profile-image.component"; |
| 12 | import {MembersBlock} from "../components/noosfero-blocks/members-block/members-block.component"; | 12 | import {MembersBlock} from "../components/noosfero-blocks/members-block/members-block.component"; |
| 13 | - | 13 | +import {NoosferoTemplate} from "../components/noosfero/noosfero-template.filter"; |
| 14 | 14 | ||
| 15 | import {AuthService} from "./../components/auth/auth_service"; | 15 | import {AuthService} from "./../components/auth/auth_service"; |
| 16 | import {Session} from "./../components/auth/session"; | 16 | import {Session} from "./../components/auth/session"; |
| @@ -35,7 +35,8 @@ export class MainContent { | @@ -35,7 +35,8 @@ export class MainContent { | ||
| 35 | template: '<div ng-view></div>', | 35 | template: '<div ng-view></div>', |
| 36 | directives: [ | 36 | directives: [ |
| 37 | ArticleBlog, ArticleView, Boxes, Block, LinkListBlock, | 37 | ArticleBlog, ArticleView, Boxes, Block, LinkListBlock, |
| 38 | - MainBlock, RecentDocumentsBlock, Navbar, ProfileImageBlock, MembersBlock | 38 | + MainBlock, RecentDocumentsBlock, Navbar, ProfileImageBlock, |
| 39 | + MembersBlock, NoosferoTemplate | ||
| 39 | ], | 40 | ], |
| 40 | providers: [AuthService, Session] | 41 | providers: [AuthService, Session] |
| 41 | }) | 42 | }) |
src/lib/ng-noosfero-api/http/article.service.ts
| @@ -7,7 +7,7 @@ export class ArticleService { | @@ -7,7 +7,7 @@ export class ArticleService { | ||
| 7 | constructor(private Restangular: any) { } | 7 | constructor(private Restangular: any) { } |
| 8 | 8 | ||
| 9 | getByProfile(profileId: number, filters: any) { | 9 | getByProfile(profileId: number, filters: any) { |
| 10 | - return this.Restangular.service('profiles').one(profileId).one('articles').get(filters); | 10 | + return this.Restangular.one('profiles', profileId).customGET('articles', filters); |
| 11 | } | 11 | } |
| 12 | 12 | ||
| 13 | getChildren(id: number, filters: any) { | 13 | getChildren(id: number, filters: any) { |