jasnode 0.2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. data/.gitignore +1 -0
  2. data/.gitmodules +3 -0
  3. data/MIT.LICENSE +20 -0
  4. data/README.md +28 -0
  5. data/Rakefile +34 -0
  6. data/VERSION.yml +5 -0
  7. data/bin/jasnode +52 -0
  8. data/features/jasnode.feature +24 -0
  9. data/features/step_definitions/jasnode-steps.rb +39 -0
  10. data/jasmine/MIT.LICENSE +20 -0
  11. data/jasmine/README.markdown +502 -0
  12. data/jasmine/Rakefile +158 -0
  13. data/jasmine/cruise_config.rb +21 -0
  14. data/jasmine/doc/files.html +460 -0
  15. data/jasmine/doc/index.html +322 -0
  16. data/jasmine/doc/symbols/_global_.html +918 -0
  17. data/jasmine/doc/symbols/jasmine.Block.html +417 -0
  18. data/jasmine/doc/symbols/jasmine.Clock.html +678 -0
  19. data/jasmine/doc/symbols/jasmine.Env.html +1169 -0
  20. data/jasmine/doc/symbols/jasmine.JsApiReporter.html +822 -0
  21. data/jasmine/doc/symbols/jasmine.Matchers.html +1474 -0
  22. data/jasmine/doc/symbols/jasmine.MultiReporter.html +394 -0
  23. data/jasmine/doc/symbols/jasmine.NestedResults.html +710 -0
  24. data/jasmine/doc/symbols/jasmine.Reporter.html +574 -0
  25. data/jasmine/doc/symbols/jasmine.Runner.html +710 -0
  26. data/jasmine/doc/symbols/jasmine.Spec.html +1253 -0
  27. data/jasmine/doc/symbols/jasmine.Spy.html +855 -0
  28. data/jasmine/doc/symbols/jasmine.Suite.html +705 -0
  29. data/jasmine/doc/symbols/jasmine.html +1345 -0
  30. data/jasmine/doc/symbols/jasmine.util.html +535 -0
  31. data/jasmine/doc/symbols/src/lib_TrivialReporter.js.html +124 -0
  32. data/jasmine/doc/symbols/src/src_Block.js.html +29 -0
  33. data/jasmine/doc/symbols/src/src_Env.js.html +248 -0
  34. data/jasmine/doc/symbols/src/src_JsApiReporter.js.html +111 -0
  35. data/jasmine/doc/symbols/src/src_Matchers.js.html +344 -0
  36. data/jasmine/doc/symbols/src/src_MultiReporter.js.html +36 -0
  37. data/jasmine/doc/symbols/src/src_NestedResults.js.html +88 -0
  38. data/jasmine/doc/symbols/src/src_PrettyPrinter.js.html +130 -0
  39. data/jasmine/doc/symbols/src/src_Queue.js.html +102 -0
  40. data/jasmine/doc/symbols/src/src_Reporter.js.html +35 -0
  41. data/jasmine/doc/symbols/src/src_Reporters.js.html +51 -0
  42. data/jasmine/doc/symbols/src/src_Runner.js.html +75 -0
  43. data/jasmine/doc/symbols/src/src_Spec.js.html +214 -0
  44. data/jasmine/doc/symbols/src/src_Suite.js.html +77 -0
  45. data/jasmine/doc/symbols/src/src_WaitsBlock.js.html +21 -0
  46. data/jasmine/doc/symbols/src/src_WaitsForBlock.js.html +45 -0
  47. data/jasmine/doc/symbols/src/src_base.js.html +585 -0
  48. data/jasmine/doc/symbols/src/src_mock-timeout.js.html +185 -0
  49. data/jasmine/doc/symbols/src/src_util.js.html +75 -0
  50. data/jasmine/examples/html/example_runner.html +27 -0
  51. data/jasmine/examples/html/spec/example_suite.js +11 -0
  52. data/jasmine/examples/ruby/Rakefile +33 -0
  53. data/jasmine/examples/ruby/spec/example/example_spec.js +11 -0
  54. data/jasmine/examples/ruby/spec/jasmine_helper.rb +41 -0
  55. data/jasmine/examples/ruby/spec/jasmine_spec.rb +31 -0
  56. data/jasmine/examples/ruby/spec/saucelabs.yml +24 -0
  57. data/jasmine/geminstaller.yml +25 -0
  58. data/jasmine/images/fail-16.png +0 -0
  59. data/jasmine/images/fail.png +0 -0
  60. data/jasmine/images/go-16.png +0 -0
  61. data/jasmine/images/go.png +0 -0
  62. data/jasmine/images/pending-16.png +0 -0
  63. data/jasmine/images/pending.png +0 -0
  64. data/jasmine/images/question-bk.png +0 -0
  65. data/jasmine/images/questionbk-16.png +0 -0
  66. data/jasmine/images/spinner.gif +0 -0
  67. data/jasmine/lib/TrivialReporter.js +117 -0
  68. data/jasmine/lib/consolex.js +28 -0
  69. data/jasmine/lib/jasmine-0.10.2.js +2318 -0
  70. data/jasmine/lib/jasmine.css +86 -0
  71. data/jasmine/lib/json2.js +478 -0
  72. data/jasmine/spec/jasmine_helper.rb +44 -0
  73. data/jasmine/spec/jasmine_spec.rb +31 -0
  74. data/jasmine/spec/runner.html +79 -0
  75. data/jasmine/spec/saucelabs.yml +24 -0
  76. data/jasmine/spec/suites/CustomMatchersSpec.js +112 -0
  77. data/jasmine/spec/suites/EnvSpec.js +141 -0
  78. data/jasmine/spec/suites/ExceptionsSpec.js +107 -0
  79. data/jasmine/spec/suites/JsApiReporterSpec.js +82 -0
  80. data/jasmine/spec/suites/MatchersSpec.js +709 -0
  81. data/jasmine/spec/suites/MockClockSpec.js +34 -0
  82. data/jasmine/spec/suites/MultiReporterSpec.js +30 -0
  83. data/jasmine/spec/suites/NestedResultsSpec.js +54 -0
  84. data/jasmine/spec/suites/PrettyPrintSpec.js +93 -0
  85. data/jasmine/spec/suites/QueueSpec.js +23 -0
  86. data/jasmine/spec/suites/ReporterSpec.js +60 -0
  87. data/jasmine/spec/suites/RunnerSpec.js +252 -0
  88. data/jasmine/spec/suites/SpecRunningSpec.js +1086 -0
  89. data/jasmine/spec/suites/SpecSpec.js +110 -0
  90. data/jasmine/spec/suites/SpySpec.js +201 -0
  91. data/jasmine/spec/suites/SuiteSpec.js +101 -0
  92. data/jasmine/spec/suites/TrivialReporterSpec.js +140 -0
  93. data/jasmine/spec/suites/UtilSpec.js +40 -0
  94. data/jasmine/src/Block.js +22 -0
  95. data/jasmine/src/Env.js +240 -0
  96. data/jasmine/src/JsApiReporter.js +103 -0
  97. data/jasmine/src/Matchers.js +336 -0
  98. data/jasmine/src/MultiReporter.js +28 -0
  99. data/jasmine/src/NestedResults.js +80 -0
  100. data/jasmine/src/PrettyPrinter.js +122 -0
  101. data/jasmine/src/Queue.js +94 -0
  102. data/jasmine/src/Reporter.js +27 -0
  103. data/jasmine/src/Reporters.js +43 -0
  104. data/jasmine/src/Runner.js +68 -0
  105. data/jasmine/src/Spec.js +206 -0
  106. data/jasmine/src/Suite.js +70 -0
  107. data/jasmine/src/WaitsBlock.js +13 -0
  108. data/jasmine/src/WaitsForBlock.js +38 -0
  109. data/jasmine/src/base.js +578 -0
  110. data/jasmine/src/mock-timeout.js +177 -0
  111. data/jasmine/src/util.js +67 -0
  112. data/jasmine/src/version.json +5 -0
  113. data/jasnode.gemspec +171 -0
  114. data/lib/jasnode/core.rb +180 -0
  115. data/lib/jasnode.js +135 -0
  116. data/lib/jasnode.rb +4 -0
  117. data/pkg/jasnode-0.1.0.0.gem +0 -0
  118. data/spec/jasnode/jasnode_spec.rb +40 -0
  119. data/spec/rspec_suite.rb +8 -0
  120. data/spec/spec_helper.rb +6 -0
  121. data/templates/Rakefile +9 -0
  122. data/templates/bin/hello_world +5 -0
  123. data/templates/lib/server.js +25 -0
  124. data/templates/spec/README.md +3 -0
  125. data/templates/spec/runner.js +16 -0
  126. data/templates/spec/server/server_spec.js +45 -0
  127. data/templates/spec/server/spec_server.js +45 -0
  128. data/templates/spec/spec.js +45 -0
  129. 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
@@ -0,0 +1,4 @@
1
+ # Copyright (c) 2010 Cory Ondrejka. All rights reserved.
2
+ # See MIT.LICENSE for licensing details.
3
+
4
+ require "jasnode/core"
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
@@ -0,0 +1,8 @@
1
+ # Copyright (c) 2010 Cory Ondrejka. All rights reserved.
2
+ # See MIT.LICENSE for licensing details.
3
+
4
+ dir = File.join(File.dirname(__FILE__), "**","*_spec.rb")
5
+ specs = Dir[dir]
6
+ specs.each do |file|
7
+ require file
8
+ end
@@ -0,0 +1,6 @@
1
+ # Copyright (c) 2010 Cory Ondrejka. All rights reserved.
2
+ # See MIT.LICENSE for licensing details.
3
+
4
+ require 'spec'
5
+
6
+ require File.join(File.dirname(__FILE__), "../lib/jasnode")
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ namespace :spec do
5
+ desc 'Run jspec executable specs'
6
+ task :bin do
7
+ sh 'spec --color --require spec/ruby/bin/spec_helper.rb spec/ruby/bin/*_spec.rb'
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ #! /usr/local/bin/node
2
+
3
+ var server = require('../lib/server');
4
+
5
+ server.server.listen(8000);
@@ -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,3 @@
1
+ # Specs
2
+
3
+ Specs can take the form of spec.js, spec_name.js, or name_spec.js. Any files in this form will be read in the spec hierarchy. Note that files can either live directly in the spec directory or in subdirectories.
@@ -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