mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 02:55:58 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| 
 | |
| const assert = require('assert');
 | |
| const search = require('../src/admin/search');
 | |
| 
 | |
| describe('admin search', () => {
 | |
| 	describe('filterDirectories', () => {
 | |
| 		it('should resolve all paths to relative paths', (done) => {
 | |
| 			assert.deepEqual(search.filterDirectories([
 | |
| 				'hfjksfd/fdsgagag/admin/gdhgfsdg/sggag.tpl',
 | |
| 			]), [
 | |
| 				'admin/gdhgfsdg/sggag',
 | |
| 			]);
 | |
| 			done();
 | |
| 		});
 | |
| 		it('should exclude .js files', (done) => {
 | |
| 			assert.deepEqual(search.filterDirectories([
 | |
| 				'hfjksfd/fdsgagag/admin/gdhgfsdg/sggag.tpl',
 | |
| 				'dfahdfsgf/admin/hgkfds/fdhsdfh.js',
 | |
| 			]), [
 | |
| 				'admin/gdhgfsdg/sggag',
 | |
| 			]);
 | |
| 			done();
 | |
| 		});
 | |
| 		it('should exclude partials', (done) => {
 | |
| 			assert.deepEqual(search.filterDirectories([
 | |
| 				'hfjksfd/fdsgagag/admin/gdhgfsdg/sggag.tpl',
 | |
| 				'dfahdfsgf/admin/partials/hgkfds/fdhsdfh.tpl',
 | |
| 			]), [
 | |
| 				'admin/gdhgfsdg/sggag',
 | |
| 			]);
 | |
| 			done();
 | |
| 		});
 | |
| 		it('should exclude files in the admin directory', (done) => {
 | |
| 			assert.deepEqual(search.filterDirectories([
 | |
| 				'hfjksfd/fdsgagag/admin/gdhgfsdg/sggag.tpl',
 | |
| 				'dfdasg/admin/hjkdfsk.tpl',
 | |
| 			]), [
 | |
| 				'admin/gdhgfsdg/sggag',
 | |
| 			]);
 | |
| 			done();
 | |
| 		});
 | |
| 	});
 | |
| 
 | |
| 	describe('sanitize', () => {
 | |
| 		it('should strip out scripts', (done) => {
 | |
| 			assert.equal(
 | |
| 				search.sanitize('Pellentesque tristique senectus' +
 | |
| 					'<script>alert("nope");</script> habitant morbi'),
 | |
| 				'Pellentesque tristique senectus' +
 | |
| 					' habitant morbi'
 | |
| 			);
 | |
| 			done();
 | |
| 		});
 | |
| 		it('should remove all tags', (done) => {
 | |
| 			assert.equal(
 | |
| 				search.sanitize('<p>Pellentesque <b>habitant morbi</b> tristique senectus' +
 | |
| 					'Aenean <i>vitae</i> est.Mauris <a href="placerat">eleifend</a> leo.</p>'),
 | |
| 				'Pellentesque habitant morbi tristique senectus' +
 | |
| 					'Aenean vitae est.Mauris eleifend leo.'
 | |
| 			);
 | |
| 			done();
 | |
| 		});
 | |
| 	});
 | |
| 
 | |
| 	describe('simplify', () => {
 | |
| 		it('should remove all mustaches', (done) => {
 | |
| 			assert.equal(
 | |
| 				search.simplify('Pellentesque tristique {{senectus}}habitant morbi' +
 | |
| 					'liquam tincidunt {mauris.eu}risus'),
 | |
| 				'Pellentesque tristique habitant morbi' +
 | |
| 					'liquam tincidunt risus'
 | |
| 			);
 | |
| 			done();
 | |
| 		});
 | |
| 		it('should collapse all whitespace', (done) => {
 | |
| 			assert.equal(
 | |
| 				search.simplify('Pellentesque tristique   habitant morbi' +
 | |
| 					'  \n\n    liquam tincidunt mauris eu risus.'),
 | |
| 				'Pellentesque tristique habitant morbi' +
 | |
| 					'\nliquam tincidunt mauris eu risus.'
 | |
| 			);
 | |
| 			done();
 | |
| 		});
 | |
| 	});
 | |
| });
 |