NodeRedis/node-redis

View on GitHub
packages/client/lib/commands/CLIENT_INFO.spec.ts

Summary

Maintainability
A
2 hrs
Test Coverage
import { strict as assert } from 'node:assert';
import CLIENT_INFO from './CLIENT_INFO';
import testUtils, { GLOBAL } from '../test-utils';
import { parseArgs } from './generic-transformers';

describe('CLIENT INFO', () => {
  testUtils.isVersionGreaterThanHook([6, 2]);

  it('transformArguments', () => {
    assert.deepEqual(
      parseArgs(CLIENT_INFO),
      ['CLIENT', 'INFO']
    );
  });

  testUtils.testWithClient('client.clientInfo', async client => {
    const reply = await client.clientInfo();
    assert.equal(typeof reply.id, 'number');
    assert.equal(typeof reply.addr, 'string');
    assert.equal(typeof reply.laddr, 'string');
    assert.equal(typeof reply.fd, 'number');
    assert.equal(typeof reply.name, 'string');
    assert.equal(typeof reply.age, 'number');
    assert.equal(typeof reply.idle, 'number');
    assert.equal(typeof reply.flags, 'string');
    assert.equal(typeof reply.db, 'number');
    assert.equal(typeof reply.sub, 'number');
    assert.equal(typeof reply.psub, 'number');
    assert.equal(typeof reply.multi, 'number');
    assert.equal(typeof reply.qbuf, 'number');
    assert.equal(typeof reply.qbufFree, 'number');
    assert.equal(typeof reply.argvMem, 'number');
    assert.equal(typeof reply.obl, 'number');
    assert.equal(typeof reply.oll, 'number');
    assert.equal(typeof reply.omem, 'number');
    assert.equal(typeof reply.totMem, 'number');
    assert.equal(typeof reply.events, 'string');
    assert.equal(typeof reply.cmd, 'string');
    assert.equal(typeof reply.user, 'string');
    assert.equal(typeof reply.redir, 'number');

    if (testUtils.isVersionGreaterThan([7, 0])) {
      assert.equal(typeof reply.multiMem, 'number');
      assert.equal(typeof reply.resp, 'number');

      if (testUtils.isVersionGreaterThan([7, 0, 3])) {
        assert.equal(typeof reply.ssub, 'number');
      }
    }
  }, GLOBAL.SERVERS.OPEN);
});