'use strict'; describe('$templateRequest', function() { it('should download the provided template file', inject(function($rootScope, $templateRequest, $httpBackend) { $httpBackend.expectGET('tpl.html').respond('
abc
'); var content; $templateRequest('tpl.html').then(function(html) { content = html; }); $rootScope.$digest(); $httpBackend.flush(); expect(content).toBe('
abc
'); })); it('should cache the request using $templateCache to prevent extra downloads', inject(function($rootScope, $templateRequest, $templateCache) { $templateCache.put('tpl.html', 'matias'); var content; $templateRequest('tpl.html').then(function(html) { content = html; }); $rootScope.$digest(); expect(content).toBe('matias'); })); it('should throw an error when the template is not found', inject(function($rootScope, $templateRequest, $httpBackend) { $httpBackend.expectGET('tpl.html').respond(404); $templateRequest('tpl.html'); $rootScope.$digest(); expect(function() { $rootScope.$digest(); $httpBackend.flush(); }).toThrowMinErr('$compile', 'tpload', 'Failed to load template: tpl.html'); })); it('should throw an error when the template is empty', inject(function($rootScope, $templateRequest, $httpBackend) { $httpBackend.expectGET('tpl.html').respond(''); $templateRequest('tpl.html'); $rootScope.$digest(); expect(function() { $rootScope.$digest(); $httpBackend.flush(); }).toThrowMinErr('$compile', 'tpload', 'Failed to load template: tpl.html'); })); it('should keep track of how many requests are going on', inject(function($rootScope, $templateRequest, $httpBackend) { $httpBackend.expectGET('a.html').respond('a'); $httpBackend.expectGET('b.html').respond('c'); $templateRequest('a.html'); $templateRequest('b.html'); expect($templateRequest.totalPendingRequests).toBe(2); $rootScope.$digest(); $httpBackend.flush(); expect($templateRequest.totalPendingRequests).toBe(0); $httpBackend.expectGET('c.html').respond(404); $templateRequest('c.html'); expect($templateRequest.totalPendingRequests).toBe(1); $rootScope.$digest(); try { $httpBackend.flush(); } catch(e) {} expect($templateRequest.totalPendingRequests).toBe(0); })); });