dld_backend/node_modules/memjs/test/server_test.js
2025-10-30 12:13:02 +05:30

95 lines
2.7 KiB
JavaScript

var test = require('tap').test;
var MemJS = require('../');
var makeRequestBuffer = require('../lib/memjs/utils').makeRequestBuffer;
test('AuthListMechanisms', function(t) {
var expectedBuf = makeRequestBuffer(0x20, '', '', '');
var dummySocket = {
write: function(buf) {
t.equal(expectedBuf.toString(), buf.toString());
}
};
var server = new MemJS.Server('test.example.com', 11211);
server._socket = dummySocket;
server.listSasl();
t.end();
});
test('ResponseHandler with authentication error', function(t) {
var server = new MemJS.Server('localhost', 11211);
server.onError('test', function(err) {
t.equal('Memcached server authentication failed!', err);
});
// Simulate a memcached server response, with an authentication error
// No SASL configured, wrong credentials, ...
var responseBuf = makeRequestBuffer(0x21, '', '', '');
// Override status
// 0x20 = Authentication required / Not Successful
responseBuf.writeUInt16BE(0x20, 6);
server.responseHandler(responseBuf);
t.end();
});
test('Authenticate', function(t) {
var expectedBuf = makeRequestBuffer(0x21, 'PLAIN', '', '\0user1\0password');
var dummySocket = {
write: function(buf) {
t.equal(expectedBuf.toString(), buf.toString());
}
};
var server = new MemJS.Server('test.example.com', 11211, 'user1', 'password', {});
server._socket = dummySocket;
server.saslAuth();
t.end();
});
test('SetSaslCredentials', function(t) {
var server;
server = new MemJS.Server('test.example.com', 11211, undefined,
undefined, {username: 'user1', password: 'password'});
t.equal('user1', server.username);
t.equal('password', server.password);
server = new MemJS.Server('test.example.com', 11211, 'user2',
'password2', {username: 'user1', password: 'password'});
t.equal('user2', server.username);
t.equal('password2', server.password);
server = new MemJS.Server('test.example.com', 11211);
t.equal(process.env.MEMCACHIER_USERNAME ||
process.env.MEMCACHE_USERNAME, server.username);
t.equal(process.env.MEMCACHIER_PASSWORD ||
process.env.MEMCACHE_PASSWORD, server.password);
t.end();
});
test('ResponseCallbackOrdering', function(t) {
var server = new MemJS.Server();
var callbacksCalled = 0;
server.onResponse(1, function() {
t.equal(0, callbacksCalled);
callbacksCalled += 1;
});
server.respond({header: {opaque: 1}});
server.onResponse(2, function() {
t.equal(1, callbacksCalled);
callbacksCalled += 1;
});
server.onResponse(3, function() {
t.equal(2, callbacksCalled);
callbacksCalled += 1;
});
server.respond({header: {opaque: 2}});
server.respond({header: {opaque: 3}});
t.end();
});