diff --git a/src/lib/ng-noosfero-api/http/profile.service.spec.ts b/src/lib/ng-noosfero-api/http/profile.service.spec.ts new file mode 100644 index 0000000..b373946 --- /dev/null +++ b/src/lib/ng-noosfero-api/http/profile.service.spec.ts @@ -0,0 +1,65 @@ +import {Profile} from "../../../app/models/interfaces"; +import {ProfileService} from "./profile.service"; + + +describe("Services", () => { + + describe("Profile Service", () => { + + let $httpBackend: ng.IHttpBackendService; + let profileService: ProfileService; + + beforeEach(angular.mock.module("noosferoApp")); + + beforeEach(inject((_$httpBackend_: ng.IHttpBackendService, _ProfileService_: ProfileService) => { + $httpBackend = _$httpBackend_; + profileService = _ProfileService_; + })); + + + describe("Succesfull requests", () => { + + it("should return profile by its identifier", (done) => { + let identifier = 'profile1'; + $httpBackend.expectGET(`/api/v1/profiles?identifier=${identifier}`).respond(200, [{ name: "profile1" }]); + profileService.getByIdentifier(identifier).then((response: restangular.IResponse) => { + expect(response.data[0]).toEqual({ name: "profile1" }); + done(); + }); + $httpBackend.flush(); + }); + + it("should return the members of a profile", (done) => { + let profileId = 1; + $httpBackend.expectGET(`/api/v1/profiles/${profileId}/members`).respond(200, [{ name: "profile1" }]); + profileService.getProfileMembers(profileId).then((response: restangular.IResponse) => { + expect(response.data[0]).toEqual({ name: "profile1" }); + done(); + }); + $httpBackend.flush(); + }); + + it("should return the boxes of a profile", (done) => { + let profileId = 1; + $httpBackend.expectGET(`/api/v1/profiles/${profileId}/boxes`).respond(200, [{ position: 1 }]); + profileService.getBoxes(profileId).then((response: restangular.IResponse) => { + expect(response.data[0]).toEqual({ position: 1 }); + done(); + }); + $httpBackend.flush(); + }); + + it("should return activities of a profile", (done) => { + let profileId = 1; + $httpBackend.expectGET(`/api/v1/profiles/${profileId}/activities`).respond(200, [{ verb: "create_article" }]); + profileService.getActivities(profileId).then((response: restangular.IResponse) => { + expect(response.data[0]).toEqual({ verb: "create_article" }); + done(); + }); + $httpBackend.flush(); + }); + }); + + + }); +}); diff --git a/src/lib/ng-noosfero-api/http/profile.service.ts b/src/lib/ng-noosfero-api/http/profile.service.ts index 133ca98..8ff7377 100644 --- a/src/lib/ng-noosfero-api/http/profile.service.ts +++ b/src/lib/ng-noosfero-api/http/profile.service.ts @@ -4,28 +4,26 @@ import { Injectable, Inject } from "ng-forward"; @Inject("Restangular") export class ProfileService { - constructor(private Restangular: any) { + constructor(private Restangular: any) { } + getByIdentifier(identifier: string) { + return this.Restangular.one('profiles').get({ identifier: identifier }); } - getActivities(profileId: number, options: any = {}) { - return this.get(profileId).customGET("activities", options); - } - - get(profileId: number) { - return this.Restangular.one('profiles', profileId); + getProfileMembers(profileId: number, params?: any) { + return this.get(profileId).customGET("members", params); } - getProfileMembers(profileId: number, filters: any) { - return this.get(profileId).customGET("members", filters); + getBoxes(profileId: number) { + return this.get(profileId).customGET('boxes'); } - getByIdentifier(identifier: string) { - return this.Restangular.one('profiles').get({ identifier: identifier }); + getActivities(profileId: number, params?: any) { + return this.get(profileId).customGET("activities", params); } - getBoxes(profileId: number) { - return this.get(profileId).customGET('boxes'); + private get(profileId: number) { + return this.Restangular.one('profiles', profileId); } } -- libgit2 0.21.2