54 lines
1.4 KiB
CoffeeScript
54 lines
1.4 KiB
CoffeeScript
vows = require 'vows'
|
|
assert = require 'assert'
|
|
phantom = require '../phantom'
|
|
|
|
describe = (name, bat) -> vows.describe(name).addBatch(bat).export(module)
|
|
|
|
# Make coffeescript not return anything
|
|
# This is needed because vows topics do different things if you have a return
|
|
# value
|
|
t = (fn) ->
|
|
->
|
|
fn.apply this, arguments
|
|
return
|
|
|
|
describe "The phantom module (error behavior)",
|
|
"Can try to spawn instance at nonexistent path":
|
|
topic: t ->
|
|
phantom.create {port: 12311, path: "./test/doesn't-exist"}, (ph, err) =>
|
|
@callback null, [ph, err]
|
|
|
|
"which is null": ([ph, err]) ->
|
|
assert.isNull ph
|
|
|
|
"which returned an error": ([ph, err]) ->
|
|
assert.isObject err
|
|
|
|
"with an error code of ENOENT": ([ph, err]) ->
|
|
assert.strictEqual err?.code, "ENOENT"
|
|
|
|
"Can try to spawn two instances on the same port":
|
|
topic: t ->
|
|
phantom.create {port: 12312}, (ph, err) =>
|
|
@callback null, [ph, err]
|
|
|
|
"where the first succeeds": ([ph, err]) ->
|
|
assert.isObject ph
|
|
|
|
"and does not error": ([ph, err]) ->
|
|
assert.isNull err
|
|
|
|
"but, when the second is run,":
|
|
topic: t ->
|
|
phantom.create {port: 12312}, (ph2, err2) =>
|
|
@callback null, [ph2, err2]
|
|
|
|
"it fails": ([ph2, err2]) ->
|
|
assert.isNull ph2
|
|
|
|
"and it errors": ([ph2, err2]) ->
|
|
assert.isObject err2
|
|
|
|
"with error code EADDRINUSE": ([ph2, err2]) ->
|
|
assert.equal err2.code, "EADDRINUSE"
|