Jasmine test suite doesn't run - node.js

I can't figure out what I've done to mess up Jasmine.
Here's a link to the repo I'm working on:
https://github.com/bryanbeus/04-09-bloccit/tree/v0.1.3
The problem is somehow related to the files /spec/integration/flairs_spec.js, /spec/integration/post_spec.js, and probably more.
The problem can be seen when running a command like npm test. I get the following result:
04-09-bloccit#1.0.0 test /home/siddhartha/Documents/07-Temp/01-Bloc/04-09-bloccit
export NODE_ENV=test && jasmine
npm ERR! Test failed. See above for more details.
It used to be that this ERR would only occur if I had an non-compilable error somewhere in my code. (For example, a simple thing like ; out of place, or an improper use of this.)
Recently, I've heard from someone else that this type of failure for Jasmine isn't normal. Usually, if there's a problem in the code, Jasmine is still supposed to say something. ?
Whatever the problem is, it is now spreading to general usage.
I'm trying to call the server npm module for a test with this command:
const server = require("../../src/server");
If that line is anywhere in my files, the entire Jasmine test fails in the exact same manner. (npm ERR... and no other details.)
If I run npm test /spec/integration/flairs_spec.js with that call to server active, the test fails in the npm ERR... manner.
However, if I comment out the call to server, then Jasmine at least runs. It returns this error:
....................
Started
F
Failures:
1) routes : flairs GET /topics/:topicId/posts/:postId/flairs/new should render a new flair form
Message:
Expected Error: connect ECONNREFUSED 127.0.0.1:3000 to be null.
Stack:
Error: Expected Error: connect ECONNREFUSED 127.0.0.1:3000 to be null.
at
at Request.request.get [as _callback] (/home/siddhartha/Documents/07-Temp/01-Bloc/04-09-bloccit/spec/integration/flairs_spec.js:57:21)
at self.callback (/home/siddhartha/Documents/07-Temp/01-Bloc/04-09-bloccit/node_modules/request/request.js:186:22)
at Request.emit (events.js:160:13)
at Request.onRequestError (/home/siddhartha/Documents/07-Temp/01-Bloc/04-09-bloccit/node_modules/request/request.js:878:8)
at ClientRequest.emit (events.js:160:13)
at Socket.socketErrorListener (_http_client.js:389:9)
at Socket.emit (events.js:160:13)
at emitErrorNT (internal/streams/destroy.js:64:8)
at process._tickCallback (internal/process/next_tick.js:152:19)
Message:
Expected undefined to contain 'New Flair'.
Stack:
Error: Expected undefined to contain 'New Flair'.
at
at Request.request.get [as _callback] (/home/siddhartha/Documents/07-Temp/01-Bloc/04-09-bloccit/spec/integration/flairs_spec.js:58:22)
at self.callback (/home/siddhartha/Documents/07-Temp/01-Bloc/04-09-bloccit/node_modules/request/request.js:186:22)
at Request.emit (events.js:160:13)
at Request.onRequestError (/home/siddhartha/Documents/07-Temp/01-Bloc/04-09-bloccit/node_modules/request/request.js:878:8)
at ClientRequest.emit (events.js:160:13)
at Socket.socketErrorListener (_http_client.js:389:9)
at Socket.emit (events.js:160:13)
at emitErrorNT (internal/streams/destroy.js:64:8)
at process._tickCallback (internal/process/next_tick.js:152:19)
1 spec, 1 failure
Finished in 0.399 seconds
npm ERR! Test failed. See above for more details.
.......
So, removing the server call at least lets Jasmine run.
Any help on this is appreciated. Thank you for helping a novice programmer.

I found the source of the error.
Using git diff v0.1.2..v0.1.3 I was able to see the differences between the last working branch, and the current one.
From here, I saw that in db/src/controllers/flairController.js I had placed this in the controller for the flair object:
const flairQueries = require("./db/queries.flairs.js");
The problem with that is that the directory isn't correct. I replaced it with this:
const flairQueries = require("../db/queries.flairs.js");
After this, the Jasmine test suite worked.
I understand that this means that the controller couldn't load properly. The full understanding of this is still elusive, so if anyone has time to try to explain, I would appreciate it. Otherwise, we can consider this question closed. Thanks!

Related

Error: toString failed Node.js buffer

Sometimes my get request to an api fails with this error message, (btw im using the request module to trigger my requests)
Error: toString failed
buffer.js:378
throw new Error('toString failed');
^
Error: toString failed
at Buffer.toString (buffer.js:378:11)
at BufferList.toString (/home/vardha/www/abp/node_modules/bl/bl.js:155:33)
at Request.<anonymous> (/home/vardha/www/abp/node_modules/request/request.js:1013:32)
at emitOne (events.js:82:20)
at Request.emit (events.js:169:7)
at IncomingMessage.<anonymous> (/home/vardha/www/abp/node_modules/request/request.js:962:12)
at emitNone (events.js:72:20)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:921:12)
at nextTickCallbackWith2Args (node.js:442:9)
This has been buggin me a lot since I have no idea as to whats causing this and was not able to find any clear solution in the github page. ANy help would be appreciated.
This error usually occurs when you request for file which is relatively bigger in size (or) the bufferlength exceeds / reaches 256 MB which the V8 engine will throw as an error.
This issue is still being addressed by the NodeJS community Read out this comprehensive post which has all the progress/answers that you are looking for.
https://github.com/nodejs/node/pull/4394
Hope this helps!

Starting node-huxley with example tests

I'm struggling to get node-huxley to run. Having installed it globally, I then installed the node-selenium driver, cloned the repo and tried to run Huxley on the examples. However I'm seeing this error.
It seems to suggest that the server isn't running, but I've verified it as running on localhost:8000 correctly. Any ideas how to debug this?
firefox opening.
At 1 type and toggle.hux
/usr/local/lib/node_modules/huxley/node_modules/selenium-webdriver/lib/webdriver/promise.js:1549
throw error;
^
Error: ECONNREFUSED connect ECONNREFUSED
at ClientRequest.<anonymous> (/usr/local/lib/node_modules/huxley/node_modules/selenium-webdriver/http/index.js:127:16)
at ClientRequest.EventEmitter.emit (events.js:95:17)
at Socket.socketErrorListener (http.js:1547:9)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:440:14
at process._tickCallback (node.js:415:13)
==== async task ====
WebDriver.createSession()
at Function.webdriver.WebDriver.acquireSession_ (/usr/local/lib/node_modules/huxley/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:131:49)
at Function.webdriver.WebDriver.createSession (/usr/local/lib/node_modules/huxley/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:111:30)
at Builder.build (/usr/local/lib/node_modules/huxley/node_modules/selenium-webdriver/builder.js:105:20)
at _open (/usr/local/lib/node_modules/huxley/source/browser/driver.js:28:6)
at Object.open (/usr/local/lib/node_modules/huxley/source/browser/driver.js:49:3)
at _openRunAndClose (/usr/local/lib/node_modules/huxley/index.js:76:11)
at /usr/local/lib/node_modules/huxley/index.js:169:5
at /usr/local/lib/node_modules/huxley/index.js:217:5
at /usr/local/lib/node_modules/huxley/source/playback/getPlaybackInfos.js:121:5
Have you started selenium? (https://github.com/chenglou/node-huxley#installation)

Strange error in production with node.js and nginx: "Error: Request aborted"

I really don't know what is happening but the request is aborted at some time and only happens in production on the unix machine. On my windows machine works everything fine.
I'm using express and express.bodyParser. There is many things that it depends, so ask me what I need to provide in order to help me.
Error:
Error: Request aborted
at IncomingMessage.onReqAborted (/var/apps/xxx/node_modules/easy-express/node_modules/express/node_modules/connect/node_modules/multiparty/index.js:131:17)
at IncomingMessage.EventEmitter.emit (events.js:92:17)
at abortIncoming (http.js:1912:11)
at Socket.socket.onend (http.js:2004:7)
at Socket.g (events.js:175:14)
at Socket.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
at process._tickCallback (node.js:415:13)
Here I've seen this https://github.com/andrewrk/node-multiparty:
'aborted'
Emitted when the request is aborted. This event will be followed shortly by an error event. In practice you do not need to handle this event.
What is strange is that it works. The only problem is the error in the log really. I think it might have other problems.
Thanks (:

OpenID for Node.js cannot run the sample server

When I try to run the sample nodejs server using openid found at
http://ox.no/software/node-openid
I get the following trace:
/home/ubuntu/node_modules/openid/openid.js:868
return callback({ message: 'No providers found for the given identifier'
^
TypeError: undefined is not a function
at /home/ubuntu/node_modules/openid/openid.js:868:14
at /home/ubuntu/node_modules/openid/openid.js:656:13
at /home/ubuntu/node_modules/openid/openid.js:612:11
at /home/ubuntu/node_modules/openid/openid.js:254:9
at IncomingMessage.<anonymous> (/home/ubuntu/node_modules/openid/openid.js:258:32)
at IncomingMessage.emit (events.js:88:20)
at HTTPParser.onMessageComplete (http.js:137:23)
at CleartextStream.ondata (http.js:1150:24)
at CleartextStream._push (tls.js:375:27)
at SecurePair.cycle (tls.js:734:20)
Perhaps the problem is the openid_identifier I supply on the first page. I have tried
yahoo.com
www.google.com/accounts/o8/id
www.google.com/accounts/o9/ud
When I try www.google.com/accounts/o8/id I get a slightly different trace:
/home/ubuntu/node_modules/openid/openid.js:895
return callback(null, authUrl);
^
TypeError: undefined is not a function
at successOrNext (/home/ubuntu/node_modules/openid/openid.js:895:18)
at /home/ubuntu/node_modules/openid/openid.js:1008:3
at successOrNext (/home/ubuntu/node_modules/openid/openid.js:909:9)
at /home/ubuntu/node_modules/openid/openid.js:931:5
at /home/ubuntu/node_modules/openid/openid.js:678:7
at /home/ubuntu/node_modules/openid/openid.js:544:16
at /home/ubuntu/node_modules/openid/openid.js:254:9
at IncomingMessage.<anonymous> (/home/ubuntu/node_modules/openid/openid.js:258:32)
at IncomingMessage.emit (events.js:88:20)
at HTTPParser.onMessageComplete (http.js:137:23)
Anyone have any idea what I've done wrong, how I can fix it?
At least for me the following worked like a charm:
git clone git#github.com:havard/node-openid.git
cd node-openid/
sudo node sample.js
I then launched my browser to localhost and logged in with Google's address: https://www.google.com/accounts/o8/id
It worked fine. So it looks like the sample on their website is a bit out of date while the one in their git repo works.

hubot fails to start with flowdock adapter

node: 0.10.0
npm: 1.2.14
I've set the environment variables HUBOT_FLOWDOCK_LOGIN_EMAIL and HUBOT_FLOWDOCK_LOGIN_PASSWORD, and then tried the following.
Pulled down the prebuilt hubot from the hubot site.
Modified the package.json as above.
Run npm install
Added
"hubot-flowdock": ">= 0.0.1",
just underneath dependencies in my package.json
Removed redis from hubot-scripts.json
run npm install
then running ./bin/hubot -a flowdock -d
With this implementation, ./bin/hubot - flowdock
Produces the following stacktrace:
TypeError: Uncaught, unspecified "error" event.
at TypeError (<anonymous>)
at Session.EventEmitter.emit (events.js:74:15)
at Request._callback (/Users/gb/workspace/hubot-2.2.0/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:49:17)
at Request.self.callback (/Users/gb/workspace/hubot-2.2.0/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:122:22)
at Request.EventEmitter.emit (events.js:98:17)
at Request.<anonymous> (/Users/gb/workspace/hubot-2.2.0/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:661:16)
at Request.EventEmitter.emit (events.js:117:20)
at IncomingMessage.<anonymous> (/Users/gb/workspace/hubot-2.2.0/node_modules/hubot-flowdock/node_modules/flowdock/node_modules/request/main.js:623:14)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:870:14
Looking at /Users/gb/workspace/hubot-2.2.0/node_modules/hubot-flowdock/node_modules/flowdock/lib/flowdock.js:49:17, that is a fail on a response statusCode > 300.
So far so good. Adding a console.log to the line above produces "401" unauthorized.
How? The credentials are correct (I log in with that email/password routinely).
For anyone who cares, eventually I realized that my password was incorrect. I was attempting to use my email password, while the correct answer is to use the password you set up when you first connect to flowdock

Resources