From 79fe0e522810d3f617e357ae14808c7e74e40d0b Mon Sep 17 00:00:00 2001 From: Marie JONES Date: Tue, 6 Nov 2018 09:48:09 +0100 Subject: [PATCH] feat(oui-dropdown): allow click on link items --- packages/oui-dropdown/src/index.spec.js | 26 +++++++++++++++++++ .../oui-dropdown/src/item/dropdown-item.html | 4 ++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/packages/oui-dropdown/src/index.spec.js b/packages/oui-dropdown/src/index.spec.js index f2fa14d1..0be80e1c 100644 --- a/packages/oui-dropdown/src/index.spec.js +++ b/packages/oui-dropdown/src/index.spec.js @@ -212,6 +212,32 @@ describe("ouiDropdown", () => { expect(link.attr("target")).toBe("_blank"); expect(link.attr("rel")).toBe("noopener"); }); + + it("should call click callback", () => { + const onLinkClickSpy = jasmine.createSpy("onLinkClickSpy"); + const onButtonClickSpy = jasmine.createSpy("onButtonClickSpy"); + const element = TestUtils.compileTemplate(` + + + + + + + + + `, { + onLinkClick: onLinkClickSpy, + onButtonClick: onButtonClickSpy + }); + + $timeout.flush(); + const items = angular.element(element[0].querySelectorAll("oui-dropdown-item")).children(); + angular.element(items[0]).triggerHandler("click"); + angular.element(items[1]).triggerHandler("click"); + + expect(onLinkClickSpy).toHaveBeenCalled(); + expect(onButtonClickSpy).toHaveBeenCalled(); + }); }); describe("Group", () => { diff --git a/packages/oui-dropdown/src/item/dropdown-item.html b/packages/oui-dropdown/src/item/dropdown-item.html index a7996605..4741b3df 100644 --- a/packages/oui-dropdown/src/item/dropdown-item.html +++ b/packages/oui-dropdown/src/item/dropdown-item.html @@ -12,7 +12,8 @@ ng-if="::!!$ctrl.href" ng-href="{{::$ctrl.href}}" ng-attr-target="{{::$ctrl.linkTarget}}" - ng-attr-rel="{{::$ctrl.linkRel}}"> + ng-attr-rel="{{::$ctrl.linkRel}}" + ng-click="$ctrl.onClick()"> {{::$ctrl.text}} {{::$ctrl.text}}