UNPKG

@spalger/kibana

Version:

Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic

74 lines (63 loc) 3.18 kB
describe('Highlight', function () { var angular = require('angular'); var expect = require('expect.js'); var ngMock = require('ngMock'); require('ui/highlight'); var filter; var tags; beforeEach(ngMock.module('kibana')); beforeEach(ngMock.inject(function (highlightFilter, highlightTags) { filter = highlightFilter; tags = highlightTags; })); var text = '' + 'Bacon ipsum dolor amet pork loin pork cow pig beef chuck ground round shankle sirloin landjaeger kevin ' + 'venison sausage ribeye tongue. Chicken bacon ball tip pork. Brisket pork capicola spare ribs pastrami rump ' + 'sirloin, t-bone ham shoulder jerky turducken bresaola. Chicken cow beef picanha. Picanha hamburger alcatra ' + 'cupim. Salami capicola boudin pork belly shank picanha.'; it('should not modify text if highlight is empty', function () { expect(filter(text, undefined)).to.be(text); expect(filter(text, null)).to.be(text); expect(filter(text, [])).to.be(text); }); it('should highlight a single result', function () { var highlights = [ tags.pre + 'hamburger' + tags.post + ' alcatra cupim. Salami capicola boudin pork belly shank picanha.' ]; var result = filter(text, highlights); expect(result.indexOf('<mark>hamburger</mark>')).to.be.greaterThan(-1); expect(result.split('<mark>hamburger</mark>').length).to.be(text.split('hamburger').length); }); it('should highlight multiple results', function () { var highlights = [ 'kevin venison sausage ribeye tongue. ' + tags.pre + 'Chicken' + tags.post + ' bacon ball tip pork. Brisket ' + 'pork capicola spare ribs pastrami rump sirloin, t-bone ham shoulder jerky turducken bresaola. ' + tags.pre + 'Chicken' + tags.post + ' cow beef picanha. Picanha' ]; var result = filter(text, highlights); expect(result.indexOf('<mark>Chicken</mark>')).to.be.greaterThan(-1); expect(result.split('<mark>Chicken</mark>').length).to.be(text.split('Chicken').length); }); it('should highlight multiple hits in a result', function () { var highlights = [ 'Bacon ipsum dolor amet ' + tags.pre + 'pork' + tags.post + ' loin ' + '' + tags.pre + 'pork' + tags.post + ' cow pig beef chuck ground round shankle ' + 'sirloin landjaeger', 'kevin venison sausage ribeye tongue. Chicken bacon ball tip ' + '' + tags.pre + 'pork' + tags.post + '. Brisket ' + '' + tags.pre + 'pork' + tags.post + ' capicola spare ribs', 'hamburger alcatra cupim. Salami capicola boudin ' + tags.pre + 'pork' + tags.post + ' ' + 'belly shank picanha.' ]; var result = filter(text, highlights); expect(result.indexOf('<mark>pork</mark>')).to.be.greaterThan(-1); expect(result.split('<mark>pork</mark>').length).to.be(text.split('pork').length); }); it('should accept an object and return a string containing its properties', function () { var obj = {foo: 1, bar: 2}; var result = filter(obj, null); expect(result.indexOf('' + obj)).to.be(-1); expect(result.indexOf('foo')).to.be.greaterThan(-1); expect(result.indexOf('bar')).to.be.greaterThan(-1); }); });