describe('Test rs recommended ka directive', function () { var compile, scope, $httpBackend, rootScope, events, relationModel; beforeEach(module('myitsmApp', 'templates')); beforeEach(function () { inject(function ($compile, $rootScope, $injector, _events_, _relationModel_) { $httpBackend = $injector.get('$httpBackend'); var getLocale = function () { return readJSON('scripts/app/i18n/resources-locale_en.json'); }; $httpBackend.whenGET(/^scripts\/app\/i18n\/resources-locale_en.*$/).respond(getLocale()); $httpBackend.whenGET('/smartit/rest/v2/metadata?type=global').respond(200); $httpBackend.whenGET('/smartit/rest/relations/AG00123F73CF5Eqc4TSQTOQxAgc0QB').respond(200); $httpBackend.whenPOST('/smartit/rest/globalsearch?chunk_size=15&need_totalcount=false').respond([]); compile = $compile; rootScope = $rootScope; scope = $rootScope.$new(); events = _events_; relationModel = _relationModel_; }); }); beforeEach(function () { scope.context = { id: 'AG00123F73CF5Eqc4TSQTOQxAgc0QB' }; }); function getCompiledElement() { var element = angular.element(''); var compiledElement = compile(element)(scope); scope.$digest(); return compiledElement; } it('should compile', function () { var directiveElem = getCompiledElement(), divElem = directiveElem[0]; expect(divElem).toBeDefined(); }); it('should listen REFRESH_RECOMMENDED_KNOWLEDGE handlers on transition from search knowledge view to recommended knowledge view', function () { var directiveElem = getCompiledElement(), isolateScope = directiveElem.find('rs-recommended-ka').isolateScope(); relationModel.cache = { 'AG00123F73CF5Eqc4TSQTOQxAgc0QB': [{ "desc": "Test", "type": "knowledge", "templateName": "Problem Solution", "id": "KBGAA5V0HI5R3ANB8BXO1PK388S9LK" }] } rootScope.$broadcast(events.REFRESH_RECOMMENDED_KNOWLEDGE); isolateScope.$digest(); expect(isolateScope.recommendedArticles[0].desc).toBe('Test'); }); });