1 | 'use strict';
|
2 |
|
3 | var assert = require('assert');
|
4 | var search = require('./search');
|
5 |
|
6 | describe('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 |
|
34 | describe('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 |