The library for web and native user interfaces.
Use bin/jsx and browserify to build a jasmine bundle.
Ben Newman committed
May 28, 2013 at 16:10 UTC
f8af93237adaa7c02df9edcbfccd07e6fdaaa0ed
18 files changed
+92
-36
Gruntfile.js
+2
@@ -53,7 +53,9 @@ module.exports = function(grunt) {
53
grunt.registerTask('build:min', ['jsx:release', 'browserify:min']);
54
grunt.registerTask('build:test', [
55
'jsx:debug',
56
+ 'jsx:jasmine',
57
'jsx:test',
58
+ 'browserify:jasmine',
59
'browserify:test'
60
]);
61
grunt/config/browserify.js
+12
@@ -76,6 +76,17 @@ var transformer = {
76
after: [simpleBannerify]
77
};
78
79
+var jasmine = {
80
+ entries: [
81
+ "./build/jasmine/all.js"
82
+ ],
83
+ requires: {
84
+ "jasmine": "./build/jasmine/all.js"
85
+ },
86
+ outfile: "./build/jasmine.js",
87
+ debug: false
88
+};
89
+
90
var test = {
91
entries: [
92
"./build/modules/test/all.js",
@@ -88,6 +99,7 @@ var test = {
99
100
module.exports = {
101
basic: basic,
102
+ jasmine: jasmine,
103
test: test,
104
min: min,
105
transformer: transformer
grunt/config/jsx/jsx.js
+10
@@ -11,6 +11,15 @@ var debug = {
11
outputDir: "build/modules"
12
};
13
14
+var jasmine = {
15
+ rootIDs: [
16
+ "all"
17
+ ],
18
+ configFile: debug.configFile,
19
+ sourceDir: "vendor/jasmine",
20
+ outputDir: "build/jasmine"
21
+};
22
+
23
var test = {
24
rootIDs: rootIDs.concat([
25
"test/all.js",
@@ -30,6 +39,7 @@ var release = {
39
40
module.exports = {
41
debug: debug,
42
+ jasmine: jasmine,
43
test: test,
44
release: release
45
};
src/test/all.js
-9
@@ -2,17 +2,8 @@
2
// modules in src/test and to specify an ordering on those modules, since
3
// some still have implicit dependencies on others.
4
5
-require("./phantom");
6
-require("./console");
5
require("ReactTestUtils");
6
require("reactComponentExpect");
9
-require("./diff");
10
-require("./PrintReporter");
11
-require("./HtmlReporter");
12
-require("./ReporterView");
13
-require("./SpecView");
14
-require("./SuiteView");
15
-require("./jasmine-support");
7
require("mocks");
8
require("mock-modules");
9
require("./mock-timers");
test/index.html
+1
-2
@@ -3,11 +3,10 @@
3
<head>
4
<link rel="stylesheet" type="text/css" href="jasmine.css" />
5
<script src="jasmine.js"></script>
6
- <script src="jasmine-html.js"></script>
6
<script src="react-test.js"></script>
7
<script>
8
window.onload = function() {
10
- jasmine.getEnv().execute();
9
+ require("jasmine").getEnv().execute();
10
};
11
</script>
12
</head>
test/phantom-harness.js
+4
-2
@@ -45,10 +45,12 @@ server.listen(port, function(req, res) {
45
break;
46
47
case "jasmine.css":
48
- case "jasmine.js":
49
- case "jasmine-html.js":
48
file = "../vendor/jasmine/" + file;
49
break;
50
+
51
+ case "jasmine.js":
52
+ file = "../build/" + file;
53
+ break;
54
}
55
56
if (/\.css$/i.test(file)) {
vendor/jasmine/HtmlReporter.js
renamed
+2
@@ -1,3 +1,5 @@
1
+var jasmine = require("./jasmine");
2
+
3
exports.HtmlReporter =
4
jasmine.HtmlReporter = function(_doc) {
5
var self = this;
vendor/jasmine/PrintReporter.js
renamed
+2
-1
@@ -1,3 +1,4 @@
1
+var jasmine = require("./jasmine");
2
var diff = require('./diff');
3
4
var red = '\u001b[1;41m';
@@ -54,7 +55,7 @@ PrintReporter.prototype.reportRunnerResults = function(runner) {
55
this.failCount + " fail"
56
].join(" "));
57
57
- require("test/phantom").exit(this.failCount);
58
+ require("./phantom").exit(this.failCount);
59
};
60
61
vendor/jasmine/ReporterView.js
renamed
+2
@@ -1,3 +1,5 @@
1
+var jasmine = require("jasmine");
2
+
3
jasmine.HtmlReporter.ReporterView = function(dom) {
4
this.startedAt = new Date();
5
this.runningSpecCount = 0;
vendor/jasmine/SpecView.js
renamed
+2
@@ -1,3 +1,5 @@
1
+var jasmine = require("./jasmine");
2
+
3
jasmine.HtmlReporter.SpecView = function(spec, dom, views) {
4
this.spec = spec;
5
this.dom = dom;
vendor/jasmine/SuiteView.js
renamed
+2
@@ -1,3 +1,5 @@
1
+var jasmine = require("./jasmine");
2
+
3
jasmine.HtmlReporter.SuiteView = function(suite, dom, views) {
4
this.suite = suite;
5
this.dom = dom;
vendor/jasmine/all.js
new
+38
@@ -0,0 +1,38 @@
1
+require("./phantom");
2
+require("./console");
3
+
4
+// TODO Also bundle jasmine.css here.
5
+var jasmine = require("./jasmine");
6
+require("./jasmine-html");
7
+require("./jasmine-support");
8
+
9
+require("./HtmlReporter");
10
+require("./PrintReporter");
11
+require("./ReporterView");
12
+require("./SpecView");
13
+require("./SuiteView");
14
+
15
+var env = jasmine.getEnv();
16
+env.addReporter(new jasmine.HtmlReporter);
17
+env.addReporter(new jasmine.PrintReporter);
18
+
19
+function exposeFrom(obj) {
20
+ obj.spyOn = jasmine.spyOn;
21
+ obj.it = jasmine.it;
22
+ obj.xit = jasmine.xit;
23
+ obj.expect = jasmine.expect;
24
+ obj.runs = jasmine.runs;
25
+ obj.waits = jasmine.waits;
26
+ obj.waitsFor = jasmine.waitsFor;
27
+ obj.beforeEach = jasmine.beforeEach;
28
+ obj.afterEach = jasmine.afterEach;
29
+ obj.describe = jasmine.describe;
30
+ obj.xdescribe = jasmine.xdescribe;
31
+ obj.jasmine = jasmine;
32
+ return obj;
33
+}
34
+jasmine.exposeFrom = exposeFrom;
35
+var global = Function("return this")();
36
+exposeFrom(global);
37
+
38
+module.exports = jasmine;
vendor/jasmine/console.js
renamed
vendor/jasmine/diff.js
renamed
vendor/jasmine/jasmine-html.js
+2
@@ -1,3 +1,5 @@
1
+var jasmine = require("./jasmine");
2
+
3
jasmine.HtmlReporterHelpers = {};
4
5
jasmine.HtmlReporterHelpers.createDom = function(type, attrs, childrenVarArgs) {
vendor/jasmine/jasmine-support.js
renamed
+1
-8
@@ -1,5 +1,4 @@
1
-var global = Function("return this")();
2
-var jasmine = global.jasmine;
1
+var jasmine = require("./jasmine");
2
var spec = false; // TODO
3
4
// Add some matcher for mock functions
@@ -126,9 +125,3 @@ if (typeof WeakMap !== "undefined") {
125
return (mismatchKeys.length == 0 && mismatchValues.length == 0);
126
};
127
}
129
-
130
-var HtmlReporter = require("./HtmlReporter").HtmlReporter;
131
-var PrintReporter = require("./PrintReporter").PrintReporter;
132
-
133
-jasmine.getEnv().addReporter(new HtmlReporter);
134
-jasmine.getEnv().addReporter(new PrintReporter);
vendor/jasmine/jasmine.js
+12
-14
@@ -1,12 +1,10 @@
1
-var isCommonJS = typeof window == "undefined" && typeof exports == "object";
2
-
1
/**
2
* Top level namespace for Jasmine, a lightweight JavaScript BDD/spec/testing framework.
3
*
4
* @namespace
5
*/
6
var jasmine = {};
9
-if (isCommonJS) exports.jasmine = jasmine;
7
+exports = module.exports = jasmine;
8
/**
9
* @private
10
*/
@@ -480,7 +478,7 @@ jasmine.log = function() {
478
var spyOn = function(obj, methodName) {
479
return jasmine.getEnv().currentSpec.spyOn(obj, methodName);
480
};
483
-if (isCommonJS) exports.spyOn = spyOn;
481
+exports.spyOn = spyOn;
482
483
/**
484
* Creates a Jasmine spec that will be added to the current suite.
@@ -498,7 +496,7 @@ if (isCommonJS) exports.spyOn = spyOn;
496
var it = function(desc, func) {
497
return jasmine.getEnv().it(desc, func);
498
};
501
-if (isCommonJS) exports.it = it;
499
+exports.it = it;
500
501
/**
502
* Creates a <em>disabled</em> Jasmine spec.
@@ -511,7 +509,7 @@ if (isCommonJS) exports.it = it;
509
var xit = function(desc, func) {
510
return jasmine.getEnv().xit(desc, func);
511
};
514
-if (isCommonJS) exports.xit = xit;
512
+exports.xit = xit;
513
514
/**
515
* Starts a chain for a Jasmine expectation.
@@ -525,7 +523,7 @@ if (isCommonJS) exports.xit = xit;
523
var expect = function(actual) {
524
return jasmine.getEnv().currentSpec.expect(actual);
525
};
528
-if (isCommonJS) exports.expect = expect;
526
+exports.expect = expect;
527
528
/**
529
* Defines part of a jasmine spec. Used in cominbination with waits or waitsFor in asynchrnous specs.
@@ -535,7 +533,7 @@ if (isCommonJS) exports.expect = expect;
533
var runs = function(func) {
534
jasmine.getEnv().currentSpec.runs(func);
535
};
538
-if (isCommonJS) exports.runs = runs;
536
+exports.runs = runs;
537
538
/**
539
* Waits a fixed time period before moving to the next block.
@@ -546,7 +544,7 @@ if (isCommonJS) exports.runs = runs;
544
var waits = function(timeout) {
545
jasmine.getEnv().currentSpec.waits(timeout);
546
};
549
-if (isCommonJS) exports.waits = waits;
547
+exports.waits = waits;
548
549
/**
550
* Waits for the latchFunction to return true before proceeding to the next block.
@@ -558,7 +556,7 @@ if (isCommonJS) exports.waits = waits;
556
var waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) {
557
jasmine.getEnv().currentSpec.waitsFor.apply(jasmine.getEnv().currentSpec, arguments);
558
};
561
-if (isCommonJS) exports.waitsFor = waitsFor;
559
+exports.waitsFor = waitsFor;
560
561
/**
562
* A function that is called before each spec in a suite.
@@ -570,7 +568,7 @@ if (isCommonJS) exports.waitsFor = waitsFor;
568
var beforeEach = function(beforeEachFunction) {
569
jasmine.getEnv().beforeEach(beforeEachFunction);
570
};
573
-if (isCommonJS) exports.beforeEach = beforeEach;
571
+exports.beforeEach = beforeEach;
572
573
/**
574
* A function that is called after each spec in a suite.
@@ -582,7 +580,7 @@ if (isCommonJS) exports.beforeEach = beforeEach;
580
var afterEach = function(afterEachFunction) {
581
jasmine.getEnv().afterEach(afterEachFunction);
582
};
585
-if (isCommonJS) exports.afterEach = afterEach;
583
+exports.afterEach = afterEach;
584
585
/**
586
* Defines a suite of specifications.
@@ -602,7 +600,7 @@ if (isCommonJS) exports.afterEach = afterEach;
600
var describe = function(description, specDefinitions) {
601
return jasmine.getEnv().describe(description, specDefinitions);
602
};
605
-if (isCommonJS) exports.describe = describe;
603
+exports.describe = describe;
604
605
/**
606
* Disables a suite of specifications. Used to disable some suites in a file, or files, temporarily during development.
@@ -613,7 +611,7 @@ if (isCommonJS) exports.describe = describe;
611
var xdescribe = function(description, specDefinitions) {
612
return jasmine.getEnv().xdescribe(description, specDefinitions);
613
};
616
-if (isCommonJS) exports.xdescribe = xdescribe;
614
+exports.xdescribe = xdescribe;
615
616
617
// Provide the XMLHttpRequest class for IE 5.x-6.x: