UNPKG

2.3 kBJavaScriptView Raw
1'use strict';
2
3var assert = require('assert');
4var search = require('./search');
5
6describe('Search assets', function () {
7 it('returns nothing if nothing is passed', function () {
8 assert.deepEqual(search.assets(), []);
9 });
10
11 it('returns matches based on a pattern', function () {
12 var modules = {
13 'foobar.txt': {},
14 'barbar.css': {}
15 };
16 var extensions = ['.txt'];
17 var matches = [{ name: 'foobar.txt', asset: {} }];
18
19 assert.deepEqual(search.assets(modules, extensions), matches);
20 });
21
22 it('returns matches if they have query', function () {
23 var modules = {
24 'foobar.txt?123': {},
25 'barbar.css': {}
26 };
27 var extensions = ['.txt'];
28 var matches = [{ name: 'foobar.txt?123', asset: {} }];
29
30 assert.deepEqual(search.assets(modules, extensions), matches);
31 });
32});
33
34describe('Search files', function () {
35 it('returns nothing if nothing is passed', function () {
36 assert.deepEqual(search.files(), []);
37 });
38
39 it('returns matches based on extension', function () {
40 var modules = ['foobar.txt', 'barbar.css'];
41 var extensions = ['.txt'];
42 var matches = ['foobar.txt'];
43
44 assert.deepEqual(search.files(modules, extensions), matches);
45 });
46
47 it('does not fail with missing modules', function () {
48 var modules = ['foobar.txt', '', 'barbar.css'];
49 var extensions = ['.txt'];
50 var matches = ['foobar.txt'];
51
52 assert.deepEqual(search.files(modules, extensions), matches);
53 });
54
55 it('returns matches based on extension with a customized getter', function () {
56 var modules = {
57 foobar: {
58 resource: 'foobar.txt'
59 },
60 barbar: {
61 resource: 'barbar.css'
62 }
63 };
64 var extensions = ['.txt'];
65 var matches = ['foobar.txt'];
66
67 assert.deepEqual(search.files(modules, extensions, function (file) {
68 return file.resource;
69 }), matches);
70 });
71
72 it('does not fail with missing modules when a getter fails', function () {
73 var modules = {
74 foobar: {
75 resource: 'foobar.txt'
76 },
77 demo: {},
78 barbar: {
79 resource: 'barbar.css'
80 }
81 };
82 var extensions = ['.txt'];
83 var matches = ['foobar.txt'];
84
85 assert.deepEqual(search.files(modules, extensions, function (file) {
86 return file.resource;
87 }), matches);
88 });
89});
\No newline at end of file