node-zoom2
Version:
z39.50 with Node 12+ support
116 lines (114 loc) • 3.69 kB
JavaScript
var zoom = require('../lib');
var expect = require('chai').expect;
describe('connection', function() {
this.timeout(20000);
it('should get/set values', function() {
expect(zoom.connection('192.83.186.170:210/INNOPAC')
.set('preferredRecordSyntax', 'usmarc')
.get('preferredRecordSyntax')).to.equal('usmarc');
})
it('should set query with only 1 one arguement', function() {
expect(zoom.connection('192.83.186.170:210/INNOPAC')
.set('preferredRecordSyntax', 'usmarc')
.query('@attr 1=7 ' + '9780073383095')._query['prefix']).to.be.an('function');
})
it('should set query with only 1 one arguement', function() {
expect(zoom.connection('192.83.186.170:210/INNOPAC')
.set('preferredRecordSyntax', 'usmarc')
.query('@attr 1=4 ' + '"Jitter in"')._query['prefix']).to.be.an('function');
})
it('should fail at createReadStream without query', function(done) {
try {
zoom.connection('192.83.186.170:210/INNOPAC')
.set('preferredRecordSyntax', 'usmarc')
.createReadStream()
} catch (e) {
if (e.message.indexOf('Query not found') !== -1) {
done()
} else {
done(e)
}
}
})
it('should fail at searching without query', function(done) {
try {
zoom.connection('192.83.186.170:210/INNOPAC')
.set('preferredRecordSyntax', 'usmarc')
.search()
} catch (e) {
if (e.message.indexOf('Query not found') !== -1) {
done()
} else {
done(e)
}
}
})
it('should fail at sorting without query', function(done) {
try {
zoom.connection('192.83.186.170:210/INNOPAC')
.set('preferredRecordSyntax', 'usmarc')
.sort('error')
} catch (e) {
if (e.message.indexOf('Query not found') !== -1) {
done()
} else {
done(e)
}
}
})
it('should have error', function(done) {
zoom.connection('192.83.186.170:210/INNOPA')
.set('preferredRecordSyntax', 'usmarc')
.query('prefix', '@attr 1=7 ' + '9780230343719')
.search(function (err, resultset) {
if (err) {
done();
} else {
done('should be an error');
}
})
})
it('should query, search and resultset functions work', function(done) {
zoom.connection('192.83.186.170:210/INNOPAC')
.set('preferredRecordSyntax', 'usmarc')
.query('prefix', '@attr 1=7 ' + '9780073383095')
.search(function (err, resultset) {
expect(resultset.size).to.be.greaterThan(0);
resultset.getRecords(0, 10, function (err, records) {
while (records && records.hasNext()) {
var record = records.next();
if (record.json) {
break;
}
}
if (record.json) {
resultset.set('test', 'value');
expect(resultset.get('test')).to.equal('value');
expect(resultset._resultset).to.not.equal(undefined);
resultset.destroy();
expect(resultset._resultset).to.equal(undefined);
done();
} else {
done('No record found');
}
})
})
})
it('should createReadStream', function(done) {
var conn = zoom.connection('192.83.186.170:210/INNOPAC')
.set('preferredRecordSyntax', 'usmarc')
.query('prefix', '@attr 1=7 ' + '9780073383095')
.createReadStream()
.on('data', function (record) {
if (record.json && record.xml && record.txml && record.render && record.raw) {
expect(record.schema).to.be.an('undefined');
expect(record.database).to.equal('INNOPAC');
expect(record.syntax).to.equal('USmarc');
}
})
.on('close', function() {
conn.destroy();
done();
})
})
})