diff --git a/app/modules/home/duties/duty.directive.spec.coffee b/app/modules/home/duties/duty.directive.spec.coffee new file mode 100644 index 00000000..25c9729f --- /dev/null +++ b/app/modules/home/duties/duty.directive.spec.coffee @@ -0,0 +1,79 @@ +describe "homeDirective", () -> + scope = compile = provide = null + mockTgProjectsService = null + mockTgNavUrls = null + mockTranslate = null + template = "
" + + createDirective = () -> + elm = compile(template)(scope) + return elm + + _mockTgNavUrls = () -> + mockTgNavUrls = { + resolve: sinon.stub() + } + provide.value "$tgNavUrls", mockTgNavUrls + + _mockTgProjectsService = () -> + mockTgProjectsService = { + projectsById: { + get: sinon.stub() + } + } + provide.value "tgProjectsService", mockTgProjectsService + + _mockTranslate = () -> + mockTranslate = { + instant: sinon.stub() + } + provide.value "$translate", mockTranslate + + _mocks = () -> + module ($provide) -> + provide = $provide + _mockTgNavUrls() + _mockTgProjectsService() + _mockTranslate() + return null + + beforeEach -> + module "templates" + module "taigaHome" + + _mocks() + + inject ($rootScope, $compile) -> + scope = $rootScope.$new() + compile = $compile + + it "duty directive content", () -> + scope.duty = { + project: 1 + ref: 1 + _name: "userstories" + subject: "Testing js subject" + status_extra_info: { + color: "#CCCCCC" + } + assigned_to_extra_info: { + photo: "http://jstesting.taiga.io/photo" + full_name_display: "Taiga testing js" + } + } + + mockTgProjectsService.projectsById.get + .withArgs("1") + .returns({slug: "project-slug", "name": "testing js project"}) + + mockTgNavUrls.resolve + .withArgs("project-userstories-detail", {project: "project-slug", ref: 1}) + .returns("http://jstesting.taiga.io") + + mockTranslate.instant + .withArgs("COMMON.USER_STORY") + .returns("COMMON.USER_STORY") + + elm = createDirective() + scope.$apply() + expect(elm.find('.duty-status').css("color")).to.be.equal('rgb(204, 204, 204)') diff --git a/app/modules/home/home.directive.coffee b/app/modules/home/home.directive.coffee index a19108bc..1b74a29d 100644 --- a/app/modules/home/home.directive.coffee +++ b/app/modules/home/home.directive.coffee @@ -1,6 +1,5 @@ HomeDirective = (homeService) -> link = (scope, el, attrs, ctrl) -> - console.log 111111 scope.vm = {} taiga.defineImmutableProperty(scope.vm, "workInProgress", () -> homeService.workInProgress) diff --git a/app/modules/home/home.directive.spec.coffee b/app/modules/home/home.directive.spec.coffee index 648733b3..cc12cfaf 100644 --- a/app/modules/home/home.directive.spec.coffee +++ b/app/modules/home/home.directive.spec.coffee @@ -1,7 +1,6 @@ describe "homeDirective", () -> scope = compile = provide = null - mockTgHomeService = null - template = "
" + template = "
" createDirective = () -> elm = compile(template)(scope) @@ -12,26 +11,41 @@ describe "homeDirective", () -> workInProgress: Immutable.fromJS({ assignedTo: { userStories: [{"id": 1}] - tasks: [] - issues: [] + tasks: [{"id": 2}] + issues: [{"id": 3}] } watching: { - userStories: [] - tasks: [] - issues: [] + userStories: [{"id": 4}] + tasks: [{"id": 5}] + issues: [{"id": 6}] } }) } provide.value "tgHomeService", mockTgHomeService + _mockTranslateFilter = () -> + mockTranslateFilter = (value) -> + return value + provide.value "translateFilter", mockTranslateFilter + + _mockTgDuty = () -> + provide.factory 'tgDutyDirective', () -> {} + + _mockHomeProjectList = () -> + provide.factory 'tgHomeProjectListDirective', () -> {} + _mocks = () -> module ($provide) -> provide = $provide + _mockTgDuty() + _mockHomeProjectList() _mockTgHomeService() + _mockTranslateFilter() return null beforeEach -> + module "templates" module "taigaHome" _mocks() @@ -42,4 +56,5 @@ describe "homeDirective", () -> it "home directive content", () -> elm = createDirective() - console.log 111, elm, elm.find('div') + scope.$apply() + expect(elm.find('.duty-single')).to.have.length(6) diff --git a/app/modules/home/home.jade b/app/modules/home/home.jade index 40f04c9d..f2d5e217 100644 --- a/app/modules/home/home.jade +++ b/app/modules/home/home.jade @@ -5,7 +5,7 @@ div.home-wrapper.centered div.duty-summary div.title-bar.working-on-title(ng-show="vm.assignedTo.size", translate="HOME.WORKING_ON_SECTION") section.working-on(ng-show="vm.assignedTo.size") - div.duty-single(tg-duty="duty", tg-repeat="duty in vm.assignedTo", ng-class="{blocked: duty.is_blocked}") + div.duty-single(tg-duty="duty", ng-repeat="duty in vm.assignedTo", ng-class="{blocked: duty.is_blocked}") div.title-bar.watching-title(translate="HOME.WATCHING_SECTION")