diff options
| author | Matias Niemelä | 2013-06-18 09:37:29 -0400 |
|---|---|---|
| committer | Matias Niemelä | 2013-06-18 09:37:29 -0400 |
| commit | f6be59c1b9253ad8438ec65ab959e294686c65ab (patch) | |
| tree | e6f012c6c0114589a7ef6cdcedf5baa1cc9ab680 /docs/component-spec/docsSearchSpec.js | |
| parent | 46dfb92afd185c93f60ca90a72653f33d7cb18e8 (diff) | |
| download | angular.js-f6be59c1b9253ad8438ec65ab959e294686c65ab.tar.bz2 | |
chore(ngdocs): provide test code for lunr search in docs
Diffstat (limited to 'docs/component-spec/docsSearchSpec.js')
| -rw-r--r-- | docs/component-spec/docsSearchSpec.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/docs/component-spec/docsSearchSpec.js b/docs/component-spec/docsSearchSpec.js new file mode 100644 index 00000000..38e6937a --- /dev/null +++ b/docs/component-spec/docsSearchSpec.js @@ -0,0 +1,59 @@ +describe("docsSearch", function() { + + beforeEach(module('docsApp')); + + var interceptedLunrResults; + beforeEach(function() { + interceptedLunrResults = []; + }); + + beforeEach(function() { + module(function($provide) { + var results = []; + results[0] = { section: 'tutorial', shortName: 'item one', keywords: 'item, one, 1' }; + results[1] = { section: 'tutorial', shortName: 'item man', keywords: 'item, man' }; + results[2] = { section: 'api', shortName: 'item other', keywords: 'item, other' }; + results[3] = { section: 'cookbook', shortName: 'item cookbook', keywords: 'item, other' }; + results[4] = { section: 'api', shortName: 'ngRepeat', keywords: 'item, other' }; + + $provide.value('NG_PAGES', results); + $provide.factory('lunrSearch', function() { + return function() { + return { + store : function(value) { + interceptedLunrResults.push(value); + }, + search : function(q) { + var data = []; + angular.forEach(results, function(res, i) { + data.push({ ref : i }); + }); + return data; + } + } + }; + }); + }); + }); + + it("should lookup and organize values properly", inject(function(docsSearch) { + var items = docsSearch('item'); + expect(items['api'].length).toBe(2); + })); + + it("should place cookbook items in the tutorial", inject(function(docsSearch) { + var items = docsSearch('item'); + expect(items['tutorial'].length).toBe(3); + })); + + it("should return all results without a search", inject(function(docsSearch) { + var items = docsSearch(); + expect(items['tutorial'].length).toBe(3); + expect(items['api'].length).toBe(2); + })); + + it("should store values with and without a ng prefix", inject(function(docsSearch) { + expect(interceptedLunrResults[4].title).toBe('ngRepeat repeat'); + })); + +}); |
