mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-17 15:40:22 +00:00
60 lines
1.9 KiB
JavaScript
60 lines
1.9 KiB
JavaScript
|
|
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');
|
||
|
|
}));
|
||
|
|
|
||
|
|
});
|