UNPKG

3.04 kBJavaScriptView Raw
1'use strict';
2
3var assert = require('assert');
4var path = require('path');
5
6var localeval = require('localeval');
7
8var umdify = require('../');
9
10var read = require('./utils').read;
11
12
13module.exports = function() {
14 triggered({});
15 triggered();
16
17 okTemplateName();
18 invalidTemplateName();
19
20 okTemplatePath();
21 invalidTemplatePath();
22
23 useDefault();
24 preserveDefault();
25
26 convertParametersToAlphabet();
27
28 noCode();
29
30 console.log('cjs ok');
31};
32
33function triggered(options) {
34 read(function(data) {
35 var code = umdify(data, options);
36
37 var triggered;
38 localeval(code, {
39 trigger: function() {
40 triggered = true;
41 }
42 });
43
44 assert(triggered);
45 });
46}
47
48function okTemplateName() {
49 read(function(data) {
50 var code = umdify(data, {
51 template: 'returnExportsGlobal'
52 });
53
54 var triggered;
55 localeval(code, {
56 trigger: function() {
57 triggered = true;
58 }
59 });
60
61 assert(triggered);
62 });
63}
64
65function invalidTemplateName() {
66 read(function(data) {
67 assert.throws(function() {
68 umdify(data, {
69 template: 'foobar'
70 });
71 },
72 Error);
73 });
74}
75
76function okTemplatePath() {
77 read(function(data) {
78 var p = path.join(__dirname, '..', 'templates', 'umd.hbs');
79
80 var code = umdify(data, {
81 template: p
82 });
83
84 var triggered;
85 localeval(code, {
86 trigger: function() {
87 triggered = true;
88 }
89 });
90
91 assert(triggered);
92 });
93}
94
95function invalidTemplatePath() {
96 read(function(data) {
97 var p = path.join(__dirname, '..', 'templates', 'foo');
98
99 assert.throws(function() {
100 umdify(data, {
101 template: p
102 });
103 },
104 Error);
105 });
106}
107
108function useDefault() {
109 var dep = 'foobar';
110 var code = umdify('foo()', {
111 deps: {
112 'default': [dep],
113 },
114 });
115
116 assert(code.indexOf('define(["' + dep + '"]') >= 0);
117 assert(code.indexOf('factory(require("' + dep + '"))') >= 0);
118 assert(code.indexOf('factory(' + dep + ')') >= 0);
119}
120
121function preserveDefault() {
122 var dep = 'foobar';
123 var code = umdify('foo()', {
124 deps: {
125 'default': [dep],
126 'amd': ['baz', 'bar'],
127 },
128 });
129
130 assert(code.indexOf('define(["baz","bar"], function (a0,b1) {') >= 0);
131 assert(code.indexOf('factory(require("' + dep + '"))') >= 0);
132 assert(code.indexOf('factory(' + dep + ')') >= 0);
133}
134
135function convertParametersToAlphabet() {
136 var code = umdify('foo()', {
137 deps: {
138 'default': ['foobar'],
139 'amd': ['baz', 'bar'],
140 },
141 });
142
143 assert(code.indexOf('a0,b1') >= 0);
144}
145
146function noCode() {
147 assert.throws(function() {
148 umdify();
149 }, function(err) {
150 if(err instanceof Error) {
151 return true;
152 }
153 });
154}