jasnode 0.2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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