Skip to content

Commit

Permalink
added print test
Browse files Browse the repository at this point in the history
  • Loading branch information
Adrian committed Jun 22, 2013
1 parent fef7c58 commit e4770e0
Show file tree
Hide file tree
Showing 5 changed files with 127 additions and 28 deletions.
68 changes: 41 additions & 27 deletions lib/pos_printer.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,54 +11,68 @@ var net = require('net');


printerQueue = {
printQue : [],
printerConections : {},
print : function(printer,data,callback){

var data = {printer : printer , data : data, callback: callback};
printerQueue.printQue.push(data);
callback('ok');
printerQueue.runPrint();


},
runPrint : function(){
// printer = { port :9100, hosts :'localhost'};
if ( printerQueue.running )
return;
printerQueue.running = true;
var job = printerQueue.printQue.shift();
if (job == null)
return;
job.printer = { port :9100, hosts :'localhost'};

var opt = {};
console.log('printing on:');
console.log(printer);
opt.port = printer.port || 9100;
opt.host = printer.host || 'localhost';

var host = opt.host+':'+opt.port;
var connection = printerQueue.printerConections[host];
if (connection === undefined)
{
connection = {};
connection.client = new net.Socket();
printerQueue.printerConections[host] = connection;
connection.client.on('error', function() {
callback('error');
console.log(job.printer);
opt.port = job.printer.port || 9100;
opt.host = job.printer.host || 'localhost';


var client = new net.Socket();

client.on('error', function() {
job.callback('error',job);

console.log('connection Error');
});
connection.client.on('close', function() {

client.on('close', function() {
printerQueue.running = false;
console.log('closing');
printerQueue.runPrint();
client.unref();
client.destroy();

});
client.setTimeout(5000,function(){
console.log('timeout');
printerQueue.runPrint();
});

connection.client.setKeepAlive(true,10000);

console.log('connnecting..');
console.log(opt);
connection.client.connect(opt.port,opt.host,
client.connect(opt.port,opt.host,
function() { //'connect' listener
console.log('client connected');
connection.client.write(data,'ascii' , function(){
console.log('client connected and printing');
client.end(job.data,'ascii' , function(){
job.callback('ok');

callback('ok');
});

});

}
else
{
connection.client.write(data,'ascii' , function(){

callback('ok');
});
}



Expand Down
5 changes: 4 additions & 1 deletion lib/printer_vm.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,20 +50,23 @@ printerVM.prototype.printJobs = function () {

if (index == printer_id[1]) {
self._ddpclient.collections.printJobs[id].status = 'complete';
self._ddpclient.call('printJobComplete', [id]);
pos_printer.print(printer, job.data,function(result){
if (result == 'ok')
{
self._ddpclient.call('printJobComplete', [id]);

self._ddpclient.collections.printJobs[id].status = 'complete';
}
else
{
/* if (self._ddpclient.collections.printJobs[id] !== undefined){
if (!self._ddpclient.collections.printJobs[id].failCount) self._ddpclient.collections.printJobs[id].failCount = 0;
self._ddpclient.collections.printJobs[id].failCount++
if (self._ddpclient.collections.printJobs[id].failCount < 3)
self.printJobs();
else
console.log('stop')
}*/
}
});
}
Expand Down
36 changes: 36 additions & 0 deletions test/pos_printer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/**
*
* User: adrianjones
* Date: 6/21/13
* Time: 3:02 PM
*/

var assert = require("assert");
var printer = require('../lib/pos_printer.js');
var printerOb = {host:'localhost', port :9100};
describe('Print Job', function(){

it('test Simple print', function(done){

printer.print(printerOb,'print1',function(result){
done(result);
})
})

it('test repeat print', function(){
var i = 0;
for(i = 0 ; i < 300 ; i++){
printer.print(printerOb,'print'+i,function(result){
if (i > 298)
done();
})

}
})

})/**
*
* User: adrianjones
* Date: 6/21/13
* Time: 3:03 PM
*/
15 changes: 15 additions & 0 deletions test/test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/**
*
* User: adrianjones
* Date: 6/21/13
* Time: 3:02 PM
*/
var assert = require("assert")
describe('Array', function(){
describe('#indexOf()', function(){
it('should return -1 when the value is not present', function(){
assert.equal(-1, [1,2,3].indexOf(5));
assert.equal(-1, [1,2,3].indexOf(0));
})
})
})
31 changes: 31 additions & 0 deletions testRun.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/**
*
* User: adrianjones
* Date: 6/21/13
* Time: 7:17 PM
*/
var testFiles=["test/test.js","test/pos_printer.js"];


var Mocha = require('mocha');


var mocha = new Mocha;


mocha.reporter('spec').ui('bdd');


for (var i =0;i<testFiles.length;i++){


mocha.addFile(testFiles[i]);


}

var runner = mocha.run(function(){

console.log('finished');

});

0 comments on commit e4770e0

Please sign in to comment.