1 | 'use strict';
|
2 |
|
3 | var assert = require('assert');
|
4 | var path = require('path');
|
5 |
|
6 | var localeval = require('localeval');
|
7 |
|
8 | var umdify = require('../');
|
9 |
|
10 | var read = require('./utils').read;
|
11 |
|
12 |
|
13 | module.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 |
|
33 | function 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 |
|
48 | function 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 |
|
65 | function invalidTemplateName() {
|
66 | read(function(data) {
|
67 | assert.throws(function() {
|
68 | umdify(data, {
|
69 | template: 'foobar'
|
70 | });
|
71 | },
|
72 | Error);
|
73 | });
|
74 | }
|
75 |
|
76 | function 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 |
|
95 | function 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 |
|
108 | function 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 |
|
121 | function 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 |
|
135 | function 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 |
|
146 | function noCode() {
|
147 | assert.throws(function() {
|
148 | umdify();
|
149 | }, function(err) {
|
150 | if(err instanceof Error) {
|
151 | return true;
|
152 | }
|
153 | });
|
154 | }
|