UNPKG

nsqjs-streams

Version:

Wraps NSQ Reader and Writer clients in NodeJS streams.

151 lines (109 loc) 3.92 kB
/*eslint quotes:0*/ /*eslint-env node, mocha*/ var assert = require("assert"), should = require("should"), mockery = require('mockery'); var NSQD_HOST = process.env.NSQD_HOST || "localhost", NSQD_PORT = process.env.NSQD_PORT || 4150, NSQLOOKUPD_HOST = process.env.NSQLOOKUPD_HOST || "localhost", NSQLOOKUPD_PORT = process.env.NSQLOOKUPD_PORT || 4161; mockery.registerMock('nsqjs', require('./nsqjs-mock.js')); mockery.registerAllowables([ '../', './reader_stream.js', './writer_stream.js', 'util', 'stream', 'events' ]); describe("Writer", function () { 'use strict'; mockery.enable(); // Require modules where mocks should be used var nsqStreams = require('../'); mockery.disable(); var writer, reader, payload = { test_data: 1234 }; it("should emit an error when nsqd is not available", function (done) { try { writer = new nsqStreams.Writer("localhost", 65535); console.log(writer instanceof require('events').EventEmitter); writer.on('ready', function () { console.log('Writer is ready!!'); done(); }); } catch (e) { console.log(e.stack); } }); /* it("should emit ready when connected to nsqd", function (done) { writer = new nsqStreams.Writer(NSQD_HOST, NSQD_PORT); writer.on("ready", function () { done(); }); }); describe("#write", function () { writer = new nsqStreams.Writer(NSQD_HOST, NSQD_PORT); beforeEach(function (done) { writer.write("test_topic"); writer.write(payload); reader = new nsqStreams.Reader("test_topic", "test_channel", { lookupdHTTPAddresses: NSQLOOKUPD_HOST + ":" + NSQLOOKUPD_PORT }); reader.on("nsqd_connected", function () { done(); }); }); it("should send a payload", function (done) { reader.on("readable", function () { var data = reader.read(); should(data).be.a.string; data = JSON.parse(data); assert.deepEqual(data, payload); reader.close(); done(); }); }); }); describe("#close", function () { it("should close the nsqd connection", function (done) { writer.close(); writer.on("close", function () { done(); }); }); }); i*/ }); describe("Reader", function () { mockery.enable(); // Require modules where mocks should be used var nsqStreams = require('../'); mockery.disable(); var writer, reader, payload = { test_data: 1234 }; describe("#read", function () { /* beforeEach(function (done) { writer = new nsqStreams.Writer(NSQD_HOST, NSQD_PORT); writer.on("ready", function () { writer.write("test_topic"); writer.write(payload); reader = new nsqStreams.Reader("test_topic", "test_channel", { lookupdHTTPAddresses: NSQLOOKUPD_HOST + ":" + NSQLOOKUPD_PORT }); reader.on("nsqd_connected", function () { done(); }); }); }); */ it("should receive the payload", function (done) { /* reader.on("readable", function () { var data = reader.read(); should(data).be.a.string; data = JSON.parse(data); assert.deepEqual(data, payload); // Reader must be closed, otherwise done might be called more // than once which is an error. reader.close(); done(); }); */ done(); }); }); });