NodeRedis/node-redis

View on GitHub
packages/graph/lib/commands/QUERY.spec.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { strict as assert } from 'node:assert';
import testUtils, { GLOBAL } from '../test-utils';
import QUERY from './QUERY';
import { parseArgs } from '@redis/client/lib/commands/generic-transformers';

describe('GRAPH.QUERY', () => {
  describe('transformArguments', () => {
    it('simple', () => {
      assert.deepEqual(
        parseArgs(QUERY, 'key', 'query'),
        ['GRAPH.QUERY', 'key', 'query']
      );
    });
  
    describe('params', () => {
      it('all types', () => {
        assert.deepEqual(
          parseArgs(QUERY, 'key', 'query', {
            params: {
              null: null,
              string: '"\\',
              number: 0,
              boolean: false,
              array: [0],
              object: {a: 0}
            }
          }),
          ['GRAPH.QUERY', 'key', 'CYPHER null=null string="\\"\\\\" number=0 boolean=false array=[0] object={a:0} query']
        );
      });
  
      it('TypeError', () => {
        assert.throws(() => {
          parseArgs(QUERY, 'key', 'query', {
            params: {
              a: Symbol()
            }
          })
        }, TypeError);
      });
    });
  
    it('TIMEOUT', () => {
      assert.deepEqual(
        parseArgs(QUERY, 'key', 'query', {
          TIMEOUT: 1
        }),
        ['GRAPH.QUERY', 'key', 'query', 'TIMEOUT', '1']
      );
    });
  
    it('compact', () => {
      assert.deepEqual(
        parseArgs(QUERY, 'key', 'query', undefined, true),
        ['GRAPH.QUERY', 'key', 'query', '--compact']
      );
    });
  });
  
  testUtils.testWithClient('client.graph.query', async client => {
    const { data } = await client.graph.query('key', 'RETURN 0');
    assert.deepEqual(data, [[0]]);
  }, GLOBAL.SERVERS.OPEN);
});