jasnode 0.2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.gitmodules +3 -0
- data/MIT.LICENSE +20 -0
- data/README.md +28 -0
- data/Rakefile +34 -0
- data/VERSION.yml +5 -0
- data/bin/jasnode +52 -0
- data/features/jasnode.feature +24 -0
- data/features/step_definitions/jasnode-steps.rb +39 -0
- data/jasmine/MIT.LICENSE +20 -0
- data/jasmine/README.markdown +502 -0
- data/jasmine/Rakefile +158 -0
- data/jasmine/cruise_config.rb +21 -0
- data/jasmine/doc/files.html +460 -0
- data/jasmine/doc/index.html +322 -0
- data/jasmine/doc/symbols/_global_.html +918 -0
- data/jasmine/doc/symbols/jasmine.Block.html +417 -0
- data/jasmine/doc/symbols/jasmine.Clock.html +678 -0
- data/jasmine/doc/symbols/jasmine.Env.html +1169 -0
- data/jasmine/doc/symbols/jasmine.JsApiReporter.html +822 -0
- data/jasmine/doc/symbols/jasmine.Matchers.html +1474 -0
- data/jasmine/doc/symbols/jasmine.MultiReporter.html +394 -0
- data/jasmine/doc/symbols/jasmine.NestedResults.html +710 -0
- data/jasmine/doc/symbols/jasmine.Reporter.html +574 -0
- data/jasmine/doc/symbols/jasmine.Runner.html +710 -0
- data/jasmine/doc/symbols/jasmine.Spec.html +1253 -0
- data/jasmine/doc/symbols/jasmine.Spy.html +855 -0
- data/jasmine/doc/symbols/jasmine.Suite.html +705 -0
- data/jasmine/doc/symbols/jasmine.html +1345 -0
- data/jasmine/doc/symbols/jasmine.util.html +535 -0
- data/jasmine/doc/symbols/src/lib_TrivialReporter.js.html +124 -0
- data/jasmine/doc/symbols/src/src_Block.js.html +29 -0
- data/jasmine/doc/symbols/src/src_Env.js.html +248 -0
- data/jasmine/doc/symbols/src/src_JsApiReporter.js.html +111 -0
- data/jasmine/doc/symbols/src/src_Matchers.js.html +344 -0
- data/jasmine/doc/symbols/src/src_MultiReporter.js.html +36 -0
- data/jasmine/doc/symbols/src/src_NestedResults.js.html +88 -0
- data/jasmine/doc/symbols/src/src_PrettyPrinter.js.html +130 -0
- data/jasmine/doc/symbols/src/src_Queue.js.html +102 -0
- data/jasmine/doc/symbols/src/src_Reporter.js.html +35 -0
- data/jasmine/doc/symbols/src/src_Reporters.js.html +51 -0
- data/jasmine/doc/symbols/src/src_Runner.js.html +75 -0
- data/jasmine/doc/symbols/src/src_Spec.js.html +214 -0
- data/jasmine/doc/symbols/src/src_Suite.js.html +77 -0
- data/jasmine/doc/symbols/src/src_WaitsBlock.js.html +21 -0
- data/jasmine/doc/symbols/src/src_WaitsForBlock.js.html +45 -0
- data/jasmine/doc/symbols/src/src_base.js.html +585 -0
- data/jasmine/doc/symbols/src/src_mock-timeout.js.html +185 -0
- data/jasmine/doc/symbols/src/src_util.js.html +75 -0
- data/jasmine/examples/html/example_runner.html +27 -0
- data/jasmine/examples/html/spec/example_suite.js +11 -0
- data/jasmine/examples/ruby/Rakefile +33 -0
- data/jasmine/examples/ruby/spec/example/example_spec.js +11 -0
- data/jasmine/examples/ruby/spec/jasmine_helper.rb +41 -0
- data/jasmine/examples/ruby/spec/jasmine_spec.rb +31 -0
- data/jasmine/examples/ruby/spec/saucelabs.yml +24 -0
- data/jasmine/geminstaller.yml +25 -0
- data/jasmine/images/fail-16.png +0 -0
- data/jasmine/images/fail.png +0 -0
- data/jasmine/images/go-16.png +0 -0
- data/jasmine/images/go.png +0 -0
- data/jasmine/images/pending-16.png +0 -0
- data/jasmine/images/pending.png +0 -0
- data/jasmine/images/question-bk.png +0 -0
- data/jasmine/images/questionbk-16.png +0 -0
- data/jasmine/images/spinner.gif +0 -0
- data/jasmine/lib/TrivialReporter.js +117 -0
- data/jasmine/lib/consolex.js +28 -0
- data/jasmine/lib/jasmine-0.10.2.js +2318 -0
- data/jasmine/lib/jasmine.css +86 -0
- data/jasmine/lib/json2.js +478 -0
- data/jasmine/spec/jasmine_helper.rb +44 -0
- data/jasmine/spec/jasmine_spec.rb +31 -0
- data/jasmine/spec/runner.html +79 -0
- data/jasmine/spec/saucelabs.yml +24 -0
- data/jasmine/spec/suites/CustomMatchersSpec.js +112 -0
- data/jasmine/spec/suites/EnvSpec.js +141 -0
- data/jasmine/spec/suites/ExceptionsSpec.js +107 -0
- data/jasmine/spec/suites/JsApiReporterSpec.js +82 -0
- data/jasmine/spec/suites/MatchersSpec.js +709 -0
- data/jasmine/spec/suites/MockClockSpec.js +34 -0
- data/jasmine/spec/suites/MultiReporterSpec.js +30 -0
- data/jasmine/spec/suites/NestedResultsSpec.js +54 -0
- data/jasmine/spec/suites/PrettyPrintSpec.js +93 -0
- data/jasmine/spec/suites/QueueSpec.js +23 -0
- data/jasmine/spec/suites/ReporterSpec.js +60 -0
- data/jasmine/spec/suites/RunnerSpec.js +252 -0
- data/jasmine/spec/suites/SpecRunningSpec.js +1086 -0
- data/jasmine/spec/suites/SpecSpec.js +110 -0
- data/jasmine/spec/suites/SpySpec.js +201 -0
- data/jasmine/spec/suites/SuiteSpec.js +101 -0
- data/jasmine/spec/suites/TrivialReporterSpec.js +140 -0
- data/jasmine/spec/suites/UtilSpec.js +40 -0
- data/jasmine/src/Block.js +22 -0
- data/jasmine/src/Env.js +240 -0
- data/jasmine/src/JsApiReporter.js +103 -0
- data/jasmine/src/Matchers.js +336 -0
- data/jasmine/src/MultiReporter.js +28 -0
- data/jasmine/src/NestedResults.js +80 -0
- data/jasmine/src/PrettyPrinter.js +122 -0
- data/jasmine/src/Queue.js +94 -0
- data/jasmine/src/Reporter.js +27 -0
- data/jasmine/src/Reporters.js +43 -0
- data/jasmine/src/Runner.js +68 -0
- data/jasmine/src/Spec.js +206 -0
- data/jasmine/src/Suite.js +70 -0
- data/jasmine/src/WaitsBlock.js +13 -0
- data/jasmine/src/WaitsForBlock.js +38 -0
- data/jasmine/src/base.js +578 -0
- data/jasmine/src/mock-timeout.js +177 -0
- data/jasmine/src/util.js +67 -0
- data/jasmine/src/version.json +5 -0
- data/jasnode.gemspec +171 -0
- data/lib/jasnode/core.rb +180 -0
- data/lib/jasnode.js +135 -0
- data/lib/jasnode.rb +4 -0
- data/pkg/jasnode-0.1.0.0.gem +0 -0
- data/spec/jasnode/jasnode_spec.rb +40 -0
- data/spec/rspec_suite.rb +8 -0
- data/spec/spec_helper.rb +6 -0
- data/templates/Rakefile +9 -0
- data/templates/bin/hello_world +5 -0
- data/templates/lib/server.js +25 -0
- data/templates/spec/README.md +3 -0
- data/templates/spec/runner.js +16 -0
- data/templates/spec/server/server_spec.js +45 -0
- data/templates/spec/server/spec_server.js +45 -0
- data/templates/spec/spec.js +45 -0
- metadata +184 -0
data/lib/jasnode.js
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
// This file is autogenerated by jasnode
|
2
|
+
// It was inspired by node-jasmine (c) 2010 Adam Abrons and Misko Hevery http://getangular.com
|
3
|
+
// Copyright (c) 2010 Cory Ondrejka. All rights reserved.
|
4
|
+
// See MIT.LICENSE for licensing details.
|
5
|
+
|
6
|
+
var fs = require('fs');
|
7
|
+
var sys = require('sys');
|
8
|
+
|
9
|
+
var filename = '/Users/cory/src/jasnode/lib/jasnode/../../jasmine/lib/jasmine-0.10.2.js';
|
10
|
+
var src = fs.readFileSync(filename);
|
11
|
+
|
12
|
+
// give jasmine values to bind
|
13
|
+
global.window = {
|
14
|
+
setTimeout: setTimeout,
|
15
|
+
clearTimeout: clearTimeout,
|
16
|
+
setInterval: setInterval,
|
17
|
+
clearInterval: clearInterval
|
18
|
+
};
|
19
|
+
|
20
|
+
var jasmine = process.compile(src + '\njasmine;', filename);
|
21
|
+
|
22
|
+
delete global.window;
|
23
|
+
|
24
|
+
jasmine.run_specs = function() {
|
25
|
+
var log = [];
|
26
|
+
var columnCounter = 0;
|
27
|
+
var verbose = true;
|
28
|
+
|
29
|
+
// process in specs collected by jasnode
|
30
|
+
process.compile(fs.readFileSync('/Users/cory/src/jasnode/jasmine/examples/ruby/spec/example/example_spec.js'), '/Users/cory/src/jasnode/jasmine/examples/ruby/spec/example/example_spec.js');
|
31
|
+
process.compile(fs.readFileSync('/Users/cory/src/jasnode/spec/jasnode/spectest/spec/server/server_spec.js'), '/Users/cory/src/jasnode/spec/jasnode/spectest/spec/server/server_spec.js');
|
32
|
+
process.compile(fs.readFileSync('/Users/cory/src/jasnode/templates/spec/server/server_spec.js'), '/Users/cory/src/jasnode/templates/spec/server/server_spec.js');
|
33
|
+
process.compile(fs.readFileSync('/Users/cory/src/jasnode/spec/jasnode/spectest/spec/spec.js'), '/Users/cory/src/jasnode/spec/jasnode/spectest/spec/spec.js');
|
34
|
+
process.compile(fs.readFileSync('/Users/cory/src/jasnode/templates/spec/spec.js'), '/Users/cory/src/jasnode/templates/spec/spec.js');
|
35
|
+
process.compile(fs.readFileSync('/Users/cory/src/jasnode/spec/jasnode/spectest/spec/server/spec_server.js'), '/Users/cory/src/jasnode/spec/jasnode/spectest/spec/server/spec_server.js');
|
36
|
+
process.compile(fs.readFileSync('/Users/cory/src/jasnode/templates/spec/server/spec_server.js'), '/Users/cory/src/jasnode/templates/spec/server/spec_server.js');
|
37
|
+
|
38
|
+
|
39
|
+
// override jasmine reporter base class
|
40
|
+
var jasmineEnv = jasmine.getEnv();
|
41
|
+
jasmineEnv.reporter = {
|
42
|
+
log: function(str){
|
43
|
+
},
|
44
|
+
|
45
|
+
reportRunnerStarting: function(runner) {
|
46
|
+
date = new Date();
|
47
|
+
sys.puts('Starting spec run at ' + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds());
|
48
|
+
start = date.getTime();
|
49
|
+
},
|
50
|
+
|
51
|
+
reportSuiteResults: function(suite) {
|
52
|
+
var spec_results = suite.results();
|
53
|
+
var path = [];
|
54
|
+
while(suite) {
|
55
|
+
path.unshift(suite.description);
|
56
|
+
suite = suite.parentSuite;
|
57
|
+
}
|
58
|
+
var description = path.join(' -> ');
|
59
|
+
|
60
|
+
spec_results.items_.forEach(function(spec){
|
61
|
+
if (spec.failedCount > 0 && spec.description) {
|
62
|
+
log.push(description + '\n');
|
63
|
+
log.push(' it ' + spec.description + '\n');
|
64
|
+
spec.items_.forEach(function(result){
|
65
|
+
log.push(' ' + result.trace.stack + '\n');
|
66
|
+
});
|
67
|
+
}
|
68
|
+
});
|
69
|
+
},
|
70
|
+
|
71
|
+
reportSpecResults: function(spec) {
|
72
|
+
sys.print(spec.results().failedCount ? "F" : ".");
|
73
|
+
if (columnCounter++ < 50) return;
|
74
|
+
columnCounter = 0;
|
75
|
+
sys.print('\n');
|
76
|
+
},
|
77
|
+
|
78
|
+
reportRunnerResults: function(runner) {
|
79
|
+
elapsed = (Number(new Date) - start) / 1000;
|
80
|
+
sys.puts('\n');
|
81
|
+
if (verbose)
|
82
|
+
log.forEach(function(log){ sys.puts(log); });
|
83
|
+
|
84
|
+
sys.puts('\n');
|
85
|
+
sys.puts('Finished in ' + elapsed + ' seconds');
|
86
|
+
sys.puts(jasmine.results(runner));
|
87
|
+
process.exit(runner.results().failedCount);
|
88
|
+
}
|
89
|
+
};
|
90
|
+
jasmineEnv.execute();
|
91
|
+
};
|
92
|
+
|
93
|
+
// print out the results
|
94
|
+
jasmine.results = function(runner){
|
95
|
+
var results = runner.results();
|
96
|
+
var suites = runner.suites();
|
97
|
+
var msg = '';
|
98
|
+
msg += "\033[1m" + results.totalCount + ' example' + ((results.totalCount === 1) ? '' : 's') + '\033[22m, ';
|
99
|
+
if (0 == results.failedCount)
|
100
|
+
msg += "\033[32m" + results.failedCount + ' failure' + ((results.failedCount === 1) ? '' : 's') + '\033[39m\n';
|
101
|
+
else
|
102
|
+
msg += "\033[31m" + results.failedCount + ' failure' + ((results.failedCount === 1) ? '' : 's') + '\033[39m\n';
|
103
|
+
return msg;
|
104
|
+
};
|
105
|
+
|
106
|
+
// create a busy wait to allow for async testing
|
107
|
+
jasmine.async_spec_wait = function() {
|
108
|
+
var wait = jasmine.async_spec_wait;
|
109
|
+
wait.start = new Date().getTime();
|
110
|
+
wait.done = false;
|
111
|
+
(function inner_wait(){
|
112
|
+
waits(10);
|
113
|
+
runs(function() {
|
114
|
+
if (wait.start + wait.timeout < new Date().getTime()) {
|
115
|
+
expect('timeout waiting for spec').toBeNull();
|
116
|
+
} else if (wait.done) {
|
117
|
+
wait.done = false;
|
118
|
+
} else {
|
119
|
+
inner_wait();
|
120
|
+
}
|
121
|
+
});
|
122
|
+
})();
|
123
|
+
};
|
124
|
+
|
125
|
+
// timeout after 10 seconds of waiting
|
126
|
+
jasmine.async_spec_wait.timeout = 10 * 1000;
|
127
|
+
|
128
|
+
jasmine.async_spec_done = function() {
|
129
|
+
jasmine.async_spec_wait.done = true;
|
130
|
+
};
|
131
|
+
|
132
|
+
// make sure all the jasmine methods are available
|
133
|
+
for ( var key in jasmine) {
|
134
|
+
exports[key] = jasmine[key];
|
135
|
+
}
|
data/lib/jasnode.rb
ADDED
Binary file
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "spec_helper")
|
2
|
+
require "ftools"
|
3
|
+
|
4
|
+
describe Jasnode::Spec do
|
5
|
+
before(:each) do
|
6
|
+
template_base = File.expand_path(File.join(File.dirname(__FILE__), '..', "..", 'templates'))
|
7
|
+
@name = File.expand_path(File.join(File.dirname(__FILE__), "spectest"))
|
8
|
+
File.makedirs("#{@name}")
|
9
|
+
FileUtils.cp_r("#{template_base}/.", @name)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should find all the javascript spec files" do
|
13
|
+
Jasnode::Spec.find_specs(@name).should == ["/Users/cory/src/jasnode/spec/jasnode/spectest/spec/server/server_spec.js", "/Users/cory/src/jasnode/spec/jasnode/spectest/spec/spec.js", "/Users/cory/src/jasnode/spec/jasnode/spectest/spec/server/spec_server.js"]
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should find the current jasmine lib" do
|
17
|
+
Jasnode::Spec.find_jasmine.should == ["/Users/cory/src/jasnode/lib/jasnode/../../jasmine/lib/jasmine-0.10.2.js"]
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should correctly generate the text to build a jasmine runner" do
|
21
|
+
Jasnode::Spec.build_jasmine_test_file(Jasnode::Spec.find_jasmine, Jasnode::Spec.find_specs(@name), true).should == "// This file is autogenerated by jasnode\n// It was inspired by node-jasmine (c) 2010 Adam Abrons and Misko Hevery http://getangular.com\n// Copyright (c) 2010 Cory Ondrejka. All rights reserved.\n// See MIT.LICENSE for licensing details.\n\nvar fs = require('fs');\nvar sys = require('sys');\n\nvar filename = '/Users/cory/src/jasnode/lib/jasnode/../../jasmine/lib/jasmine-0.10.2.js';\nvar src = fs.readFileSync(filename);\n\n// give jasmine values to bind\nglobal.window = {\n setTimeout: setTimeout,\n clearTimeout: clearTimeout,\n setInterval: setInterval,\n clearInterval: clearInterval\n};\n\nvar jasmine = process.compile(src + '\\njasmine;', filename);\n\ndelete global.window;\n\njasmine.run_specs = function() {\n var log = [];\n var columnCounter = 0;\n var verbose = true;\n \n // process in specs collected by jasnode\n process.compile(fs.readFileSync('/Users/cory/src/jasnode/spec/jasnode/spectest/spec/server/server_spec.js'), '/Users/cory/src/jasnode/spec/jasnode/spectest/spec/server/server_spec.js');\n process.compile(fs.readFileSync('/Users/cory/src/jasnode/spec/jasnode/spectest/spec/spec.js'), '/Users/cory/src/jasnode/spec/jasnode/spectest/spec/spec.js');\n process.compile(fs.readFileSync('/Users/cory/src/jasnode/spec/jasnode/spectest/spec/server/spec_server.js'), '/Users/cory/src/jasnode/spec/jasnode/spectest/spec/server/spec_server.js');\n\n \n // override jasmine reporter base class\n var jasmineEnv = jasmine.getEnv();\n jasmineEnv.reporter = {\n log: function(str){\n },\n\n reportRunnerStarting: function(runner) {\n date = new Date();\n sys.puts('Starting spec run at ' + date.getHours() + \":\" + date.getMinutes() + \":\" + date.getSeconds());\n start = date.getTime();\n },\n\n reportSuiteResults: function(suite) {\n var spec_results = suite.results();\n var path = [];\n while(suite) {\n path.unshift(suite.description);\n suite = suite.parentSuite;\n }\n var description = path.join(' -> ');\n\n spec_results.items_.forEach(function(spec){\n if (spec.failedCount > 0 && spec.description) {\n log.push(description + '\\n');\n log.push(' it ' + spec.description + '\\n');\n spec.items_.forEach(function(result){\n log.push(' ' + result.trace.stack + '\\n');\n });\n }\n });\n },\n\n reportSpecResults: function(spec) {\n sys.print(spec.results().failedCount ? \"F\" : \".\");\n if (columnCounter++ < 50) return;\n columnCounter = 0;\n sys.print('\\n');\n },\n\n reportRunnerResults: function(runner) {\n elapsed = (Number(new Date) - start) / 1000;\n sys.puts('\\n');\n if (verbose)\n log.forEach(function(log){ sys.puts(log); });\n \n sys.puts('\\n');\n sys.puts('Finished in ' + elapsed + ' seconds');\n sys.puts(jasmine.results(runner));\n process.exit(runner.results().failedCount);\n }\n };\n jasmineEnv.execute();\n};\n\n// print out the results\njasmine.results = function(runner){\n var results = runner.results();\n var suites = runner.suites();\n var msg = '';\n msg += \"\\033[1m\" + results.totalCount + ' example' + ((results.totalCount === 1) ? '' : 's') + '\\033[22m, ';\n if (0 == results.failedCount)\n msg += \"\\033[32m\" + results.failedCount + ' failure' + ((results.failedCount === 1) ? '' : 's') + '\\033[39m\\n';\n else\n msg += \"\\033[31m\" + results.failedCount + ' failure' + ((results.failedCount === 1) ? '' : 's') + '\\033[39m\\n';\n return msg;\n};\n\n// create a busy wait to allow for async testing\njasmine.async_spec_wait = function() {\n var wait = jasmine.async_spec_wait;\n wait.start = new Date().getTime();\n wait.done = false;\n (function inner_wait(){\n waits(10);\n runs(function() {\n if (wait.start + wait.timeout < new Date().getTime()) {\n expect('timeout waiting for spec').toBeNull();\n } else if (wait.done) {\n wait.done = false;\n } else {\n inner_wait();\n }\n });\n })(); \n};\n\n// timeout after 10 seconds of waiting\njasmine.async_spec_wait.timeout = 10 * 1000;\n\njasmine.async_spec_done = function() {\n jasmine.async_spec_wait.done = true;\n};\n\n// make sure all the jasmine methods are available\nfor ( var key in jasmine) {\n exports[key] = jasmine[key];\n}\n"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should save the jasmine runner into the appropriate locations" do
|
25
|
+
File.open(File.join(@name,"lib", "jasnode.js"), "w") {|f| f.write(Jasnode::Spec.build_jasmine_test_file(Jasnode::Spec.find_jasmine, Jasnode::Spec.find_specs(@name), true)) }
|
26
|
+
File.exist?("#{@name}/lib/jasnode.js").should == true
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should handle the command line" do
|
30
|
+
Dir.chdir(@name)
|
31
|
+
output = %x[../../../bin/jasnode spec]
|
32
|
+
output = output.split("\n")
|
33
|
+
output[-1].should == "\e[1m12 examples\e[22m, \e[32m0 failures\e[39m"
|
34
|
+
Dir.chdir("..")
|
35
|
+
end
|
36
|
+
|
37
|
+
after(:each) do
|
38
|
+
FileUtils.rm_rf(@name)
|
39
|
+
end
|
40
|
+
end
|
data/spec/rspec_suite.rb
ADDED
data/spec/spec_helper.rb
ADDED
data/templates/Rakefile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
var sys = require("sys"),
|
2
|
+
http = require("http"),
|
3
|
+
url = require("url");
|
4
|
+
|
5
|
+
exports.version = "0.0.1";
|
6
|
+
|
7
|
+
exports.server = http.createServer(function (req, res) {
|
8
|
+
var data = "";
|
9
|
+
if (req.method === "GET") {
|
10
|
+
res.writeHead(200, {'Content-Type': 'text/plain'});
|
11
|
+
res.write("hi!");
|
12
|
+
res.close();
|
13
|
+
} else if (req.method == "POST") {
|
14
|
+
req.addListener("data",function(chunk) {
|
15
|
+
data += chunk;
|
16
|
+
});
|
17
|
+
req.addListener("end",function() {
|
18
|
+
res.writeHead(200, {'Content-Type': 'text/plain'}); res.close();
|
19
|
+
var uri = url.parse(req.url);
|
20
|
+
var path = uri.pathname;
|
21
|
+
exports.results = req.method + " " + path + " " + req.url + ": " + data;
|
22
|
+
data = "";
|
23
|
+
});
|
24
|
+
}
|
25
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// jasmine spec runner: created by "jasnode init"
|
2
|
+
|
3
|
+
// default modules required by almost everything
|
4
|
+
var sys = require('sys');
|
5
|
+
http = require('http');
|
6
|
+
|
7
|
+
// tell node where to look for spec libraries
|
8
|
+
require.paths.push("../lib");
|
9
|
+
|
10
|
+
// jasnode.js is a file created by jasnode. It contains Pivotal's jasmine and additional wrapper code as needed to run jasmine specs.
|
11
|
+
var jasmine = require('jasnode');
|
12
|
+
|
13
|
+
// server.js is the example file built by the templage, replace with your own
|
14
|
+
server = require('server');
|
15
|
+
|
16
|
+
jasmine.run_specs();
|
@@ -0,0 +1,45 @@
|
|
1
|
+
describe('server spec', function() {
|
2
|
+
describe('yet more tests', function() {
|
3
|
+
it('should have a version', function() {
|
4
|
+
expect(server.version).toMatch(/^\d+\.\d+\.\d+$/)
|
5
|
+
});
|
6
|
+
|
7
|
+
it('should respond to gets on 8000', function() {
|
8
|
+
server.server.listen(8000);
|
9
|
+
setTimeout(function() {
|
10
|
+
var connection = http.createClient(8000, "127.0.0.1");
|
11
|
+
var request = connection.request("GET","/", {"host" : "127.0.0.1"});
|
12
|
+
var response_body = "";
|
13
|
+
request.addListener("response", function (response) {
|
14
|
+
expect(response.statusCode).toEqual(200);
|
15
|
+
response.addListener("data", function(chunk) {
|
16
|
+
response_body += chunk;
|
17
|
+
});
|
18
|
+
response.addListener("end", function() {
|
19
|
+
expect(response_body).toEqual("hi!");
|
20
|
+
response_body = "";
|
21
|
+
jasmine.async_spec_done();
|
22
|
+
});
|
23
|
+
});
|
24
|
+
request.close();
|
25
|
+
}, 1);
|
26
|
+
jasmine.async_spec_wait();
|
27
|
+
});
|
28
|
+
|
29
|
+
it('should respond to puts on 8000', function() {
|
30
|
+
runs(function() {
|
31
|
+
var connection = http.createClient(8000, "127.0.0.1");
|
32
|
+
var request = connection.request("POST","/", {"host" : "127.0.0.1"});
|
33
|
+
request.write("howdy!", encoding="ascii");
|
34
|
+
request.close();
|
35
|
+
}, 20);
|
36
|
+
|
37
|
+
waits(100);
|
38
|
+
|
39
|
+
runs(function() {
|
40
|
+
expect(server.results).toEqual("POST / /: howdy!")
|
41
|
+
server.server.close();
|
42
|
+
});
|
43
|
+
});
|
44
|
+
});
|
45
|
+
});
|
@@ -0,0 +1,45 @@
|
|
1
|
+
describe('spec server', function() {
|
2
|
+
describe('more tests', function() {
|
3
|
+
it('should have a version', function() {
|
4
|
+
expect(server.version).toMatch(/^\d+\.\d+\.\d+$/)
|
5
|
+
});
|
6
|
+
|
7
|
+
it('should respond to gets on 8000', function() {
|
8
|
+
server.server.listen(8000);
|
9
|
+
setTimeout(function() {
|
10
|
+
var connection = http.createClient(8000, "127.0.0.1");
|
11
|
+
var request = connection.request("GET","/", {"host" : "127.0.0.1"});
|
12
|
+
var response_body = "";
|
13
|
+
request.addListener("response", function (response) {
|
14
|
+
expect(response.statusCode).toEqual(200);
|
15
|
+
response.addListener("data", function(chunk) {
|
16
|
+
response_body += chunk;
|
17
|
+
});
|
18
|
+
response.addListener("end", function() {
|
19
|
+
expect(response_body).toEqual("hi!");
|
20
|
+
response_body = "";
|
21
|
+
jasmine.async_spec_done();
|
22
|
+
});
|
23
|
+
});
|
24
|
+
request.close();
|
25
|
+
}, 1);
|
26
|
+
jasmine.async_spec_wait();
|
27
|
+
});
|
28
|
+
|
29
|
+
it('should respond to puts on 8000', function() {
|
30
|
+
runs(function() {
|
31
|
+
var connection = http.createClient(8000, "127.0.0.1");
|
32
|
+
var request = connection.request("POST","/", {"host" : "127.0.0.1"});
|
33
|
+
request.write("howdy!", encoding="ascii");
|
34
|
+
request.close();
|
35
|
+
}, 20);
|
36
|
+
|
37
|
+
waits(100);
|
38
|
+
|
39
|
+
runs(function() {
|
40
|
+
expect(server.results).toEqual("POST / /: howdy!")
|
41
|
+
server.server.close();
|
42
|
+
});
|
43
|
+
});
|
44
|
+
});
|
45
|
+
});
|
@@ -0,0 +1,45 @@
|
|
1
|
+
describe('base direcotry spec', function() {
|
2
|
+
describe('server', function() {
|
3
|
+
it('should have a version', function() {
|
4
|
+
expect(server.version).toMatch(/^\d+\.\d+\.\d+$/)
|
5
|
+
});
|
6
|
+
|
7
|
+
it('should respond to gets on 8000', function() {
|
8
|
+
server.server.listen(8000);
|
9
|
+
setTimeout(function() {
|
10
|
+
var connection = http.createClient(8000, "127.0.0.1");
|
11
|
+
var request = connection.request("GET","/", {"host" : "127.0.0.1"});
|
12
|
+
var response_body = "";
|
13
|
+
request.addListener("response", function (response) {
|
14
|
+
expect(response.statusCode).toEqual(200);
|
15
|
+
response.addListener("data", function(chunk) {
|
16
|
+
response_body += chunk;
|
17
|
+
});
|
18
|
+
response.addListener("end", function() {
|
19
|
+
expect(response_body).toEqual("hi!");
|
20
|
+
response_body = "";
|
21
|
+
jasmine.async_spec_done();
|
22
|
+
});
|
23
|
+
});
|
24
|
+
request.close();
|
25
|
+
}, 1);
|
26
|
+
jasmine.async_spec_wait();
|
27
|
+
});
|
28
|
+
|
29
|
+
it('should respond to puts on 8000', function() {
|
30
|
+
runs(function() {
|
31
|
+
var connection = http.createClient(8000, "127.0.0.1");
|
32
|
+
var request = connection.request("POST","/", {"host" : "127.0.0.1"});
|
33
|
+
request.write("howdy!", encoding="ascii");
|
34
|
+
request.close();
|
35
|
+
}, 20);
|
36
|
+
|
37
|
+
waits(100);
|
38
|
+
|
39
|
+
runs(function() {
|
40
|
+
expect(server.results).toEqual("POST / /: howdy!")
|
41
|
+
server.server.close();
|
42
|
+
});
|
43
|
+
});
|
44
|
+
});
|
45
|
+
});
|
metadata
ADDED
@@ -0,0 +1,184 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jasnode
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Cory Ondrejka
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2010-03-30 00:00:00 -07:00
|
13
|
+
default_executable: jasnode
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Easy Jasmine BDD with Node.js
|
17
|
+
email: cory.ondrejka+jasnode@gmail.com
|
18
|
+
executables:
|
19
|
+
- jasnode
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README.md
|
24
|
+
files:
|
25
|
+
- .gitignore
|
26
|
+
- .gitmodules
|
27
|
+
- MIT.LICENSE
|
28
|
+
- README.md
|
29
|
+
- Rakefile
|
30
|
+
- VERSION.yml
|
31
|
+
- bin/jasnode
|
32
|
+
- features/jasnode.feature
|
33
|
+
- features/step_definitions/jasnode-steps.rb
|
34
|
+
- jasmine/MIT.LICENSE
|
35
|
+
- jasmine/README.markdown
|
36
|
+
- jasmine/Rakefile
|
37
|
+
- jasmine/cruise_config.rb
|
38
|
+
- jasmine/doc/files.html
|
39
|
+
- jasmine/doc/index.html
|
40
|
+
- jasmine/doc/symbols/_global_.html
|
41
|
+
- jasmine/doc/symbols/jasmine.Block.html
|
42
|
+
- jasmine/doc/symbols/jasmine.Clock.html
|
43
|
+
- jasmine/doc/symbols/jasmine.Env.html
|
44
|
+
- jasmine/doc/symbols/jasmine.JsApiReporter.html
|
45
|
+
- jasmine/doc/symbols/jasmine.Matchers.html
|
46
|
+
- jasmine/doc/symbols/jasmine.MultiReporter.html
|
47
|
+
- jasmine/doc/symbols/jasmine.NestedResults.html
|
48
|
+
- jasmine/doc/symbols/jasmine.Reporter.html
|
49
|
+
- jasmine/doc/symbols/jasmine.Runner.html
|
50
|
+
- jasmine/doc/symbols/jasmine.Spec.html
|
51
|
+
- jasmine/doc/symbols/jasmine.Spy.html
|
52
|
+
- jasmine/doc/symbols/jasmine.Suite.html
|
53
|
+
- jasmine/doc/symbols/jasmine.html
|
54
|
+
- jasmine/doc/symbols/jasmine.util.html
|
55
|
+
- jasmine/doc/symbols/src/lib_TrivialReporter.js.html
|
56
|
+
- jasmine/doc/symbols/src/src_Block.js.html
|
57
|
+
- jasmine/doc/symbols/src/src_Env.js.html
|
58
|
+
- jasmine/doc/symbols/src/src_JsApiReporter.js.html
|
59
|
+
- jasmine/doc/symbols/src/src_Matchers.js.html
|
60
|
+
- jasmine/doc/symbols/src/src_MultiReporter.js.html
|
61
|
+
- jasmine/doc/symbols/src/src_NestedResults.js.html
|
62
|
+
- jasmine/doc/symbols/src/src_PrettyPrinter.js.html
|
63
|
+
- jasmine/doc/symbols/src/src_Queue.js.html
|
64
|
+
- jasmine/doc/symbols/src/src_Reporter.js.html
|
65
|
+
- jasmine/doc/symbols/src/src_Reporters.js.html
|
66
|
+
- jasmine/doc/symbols/src/src_Runner.js.html
|
67
|
+
- jasmine/doc/symbols/src/src_Spec.js.html
|
68
|
+
- jasmine/doc/symbols/src/src_Suite.js.html
|
69
|
+
- jasmine/doc/symbols/src/src_WaitsBlock.js.html
|
70
|
+
- jasmine/doc/symbols/src/src_WaitsForBlock.js.html
|
71
|
+
- jasmine/doc/symbols/src/src_base.js.html
|
72
|
+
- jasmine/doc/symbols/src/src_mock-timeout.js.html
|
73
|
+
- jasmine/doc/symbols/src/src_util.js.html
|
74
|
+
- jasmine/examples/html/example_runner.html
|
75
|
+
- jasmine/examples/html/spec/example_suite.js
|
76
|
+
- jasmine/examples/ruby/Rakefile
|
77
|
+
- jasmine/examples/ruby/spec/example/example_spec.js
|
78
|
+
- jasmine/examples/ruby/spec/jasmine_helper.rb
|
79
|
+
- jasmine/examples/ruby/spec/jasmine_spec.rb
|
80
|
+
- jasmine/examples/ruby/spec/saucelabs.yml
|
81
|
+
- jasmine/geminstaller.yml
|
82
|
+
- jasmine/images/fail-16.png
|
83
|
+
- jasmine/images/fail.png
|
84
|
+
- jasmine/images/go-16.png
|
85
|
+
- jasmine/images/go.png
|
86
|
+
- jasmine/images/pending-16.png
|
87
|
+
- jasmine/images/pending.png
|
88
|
+
- jasmine/images/question-bk.png
|
89
|
+
- jasmine/images/questionbk-16.png
|
90
|
+
- jasmine/images/spinner.gif
|
91
|
+
- jasmine/lib/TrivialReporter.js
|
92
|
+
- jasmine/lib/consolex.js
|
93
|
+
- jasmine/lib/jasmine-0.10.2.js
|
94
|
+
- jasmine/lib/jasmine.css
|
95
|
+
- jasmine/lib/json2.js
|
96
|
+
- jasmine/spec/jasmine_helper.rb
|
97
|
+
- jasmine/spec/jasmine_spec.rb
|
98
|
+
- jasmine/spec/runner.html
|
99
|
+
- jasmine/spec/saucelabs.yml
|
100
|
+
- jasmine/spec/suites/CustomMatchersSpec.js
|
101
|
+
- jasmine/spec/suites/EnvSpec.js
|
102
|
+
- jasmine/spec/suites/ExceptionsSpec.js
|
103
|
+
- jasmine/spec/suites/JsApiReporterSpec.js
|
104
|
+
- jasmine/spec/suites/MatchersSpec.js
|
105
|
+
- jasmine/spec/suites/MockClockSpec.js
|
106
|
+
- jasmine/spec/suites/MultiReporterSpec.js
|
107
|
+
- jasmine/spec/suites/NestedResultsSpec.js
|
108
|
+
- jasmine/spec/suites/PrettyPrintSpec.js
|
109
|
+
- jasmine/spec/suites/QueueSpec.js
|
110
|
+
- jasmine/spec/suites/ReporterSpec.js
|
111
|
+
- jasmine/spec/suites/RunnerSpec.js
|
112
|
+
- jasmine/spec/suites/SpecRunningSpec.js
|
113
|
+
- jasmine/spec/suites/SpecSpec.js
|
114
|
+
- jasmine/spec/suites/SpySpec.js
|
115
|
+
- jasmine/spec/suites/SuiteSpec.js
|
116
|
+
- jasmine/spec/suites/TrivialReporterSpec.js
|
117
|
+
- jasmine/spec/suites/UtilSpec.js
|
118
|
+
- jasmine/src/Block.js
|
119
|
+
- jasmine/src/Env.js
|
120
|
+
- jasmine/src/JsApiReporter.js
|
121
|
+
- jasmine/src/Matchers.js
|
122
|
+
- jasmine/src/MultiReporter.js
|
123
|
+
- jasmine/src/NestedResults.js
|
124
|
+
- jasmine/src/PrettyPrinter.js
|
125
|
+
- jasmine/src/Queue.js
|
126
|
+
- jasmine/src/Reporter.js
|
127
|
+
- jasmine/src/Reporters.js
|
128
|
+
- jasmine/src/Runner.js
|
129
|
+
- jasmine/src/Spec.js
|
130
|
+
- jasmine/src/Suite.js
|
131
|
+
- jasmine/src/WaitsBlock.js
|
132
|
+
- jasmine/src/WaitsForBlock.js
|
133
|
+
- jasmine/src/base.js
|
134
|
+
- jasmine/src/mock-timeout.js
|
135
|
+
- jasmine/src/util.js
|
136
|
+
- jasmine/src/version.json
|
137
|
+
- jasnode.gemspec
|
138
|
+
- lib/jasnode.js
|
139
|
+
- lib/jasnode.rb
|
140
|
+
- lib/jasnode/core.rb
|
141
|
+
- pkg/jasnode-0.1.0.0.gem
|
142
|
+
- spec/jasnode/jasnode_spec.rb
|
143
|
+
- spec/rspec_suite.rb
|
144
|
+
- spec/spec_helper.rb
|
145
|
+
- templates/Rakefile
|
146
|
+
- templates/bin/hello_world
|
147
|
+
- templates/lib/server.js
|
148
|
+
- templates/spec/README.md
|
149
|
+
- templates/spec/runner.js
|
150
|
+
- templates/spec/server/server_spec.js
|
151
|
+
- templates/spec/server/spec_server.js
|
152
|
+
- templates/spec/spec.js
|
153
|
+
has_rdoc: true
|
154
|
+
homepage: http://angrybits.github.com/jasnode
|
155
|
+
licenses: []
|
156
|
+
|
157
|
+
post_install_message:
|
158
|
+
rdoc_options:
|
159
|
+
- --charset=UTF-8
|
160
|
+
require_paths:
|
161
|
+
- lib
|
162
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: "0"
|
167
|
+
version:
|
168
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: "0"
|
173
|
+
version:
|
174
|
+
requirements: []
|
175
|
+
|
176
|
+
rubyforge_project:
|
177
|
+
rubygems_version: 1.3.5
|
178
|
+
signing_key:
|
179
|
+
specification_version: 3
|
180
|
+
summary: Jasmine Ruby Runner
|
181
|
+
test_files:
|
182
|
+
- spec/jasnode/jasnode_spec.rb
|
183
|
+
- spec/rspec_suite.rb
|
184
|
+
- spec/spec_helper.rb
|