Skip to content

Commit

Permalink
Node tests: remove BaseClient definition. (#686)
Browse files Browse the repository at this point in the history
Co-authored-by: nihohit <[email protected]>
  • Loading branch information
shachlanAmazon and nihohit authored Dec 18, 2023
1 parent e9a10f3 commit c9dff17
Showing 1 changed file with 8 additions and 82 deletions.
90 changes: 8 additions & 82 deletions node/tests/SharedTests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,91 +4,12 @@ import { v4 as uuidv4 } from "uuid";
import {
ExpireOptions,
InfoOptions,
ReturnType,
SetOptions,
RedisClient,
RedisClusterClient,
parseInfoResponse,
} from "../";
import { ClusterResponse } from "../src/RedisClusterClient";
import { Client, GetAndSetRandomValue, getFirstResult } from "./TestUtilities";

type BaseClient = {
set: (
key: string,
value: string,
options?: SetOptions
) => Promise<string | "OK" | null>;
ping: (str?: string) => Promise<string>;
get: (key: string) => Promise<string | null>;
del: (keys: string[]) => Promise<number>;
clientGetName: () => Promise<ClusterResponse<string | null>>;
configRewrite: () => Promise<"OK">;
info(options?: InfoOptions[]): Promise<ClusterResponse<string>>;
configResetStat: () => Promise<"OK">;
mset: (keyValueMap: Record<string, string>) => Promise<"OK">;
mget: (keys: string[]) => Promise<(string | null)[]>;
incr: (key: string) => Promise<number>;
incrBy: (key: string, amount: number) => Promise<number>;
clientId: () => Promise<ClusterResponse<number>>;
decr: (key: string) => Promise<number>;
decrBy: (key: string, amount: number) => Promise<number>;
incrByFloat: (key: string, amount: number) => Promise<string>;
configGet: (
parameters: string[]
) => Promise<ClusterResponse<Record<string, string>>>;
configSet: (parameters: Record<string, string>) => Promise<"OK">;
hset: (
key: string,
fieldValueMap: Record<string, string>
) => Promise<number>;
hget: (key: string, field: string) => Promise<string | null>;
hdel: (key: string, fields: string[]) => Promise<number>;
hmget: (key: string, fields: string[]) => Promise<(string | null)[]>;
hexists: (key: string, field: string) => Promise<number>;
hgetall: (key: string) => Promise<string[]>;
hincrBy: (key: string, field: string, amount: number) => Promise<number>;
hincrByFloat: (
key: string,
field: string,
amount: number
) => Promise<string>;
lpush: (key: string, elements: string[]) => Promise<number>;
lpop: (key: string, count?: number) => Promise<string | string[] | null>;
lrange: (key: string, start: number, end: number) => Promise<string[]>;
llen: (key: string) => Promise<number>;
ltrim: (key: string, start: number, end: number) => Promise<"OK">;
lrem: (key: string, count: number, element: string) => Promise<number>;
rpush: (key: string, elements: string[]) => Promise<number>;
rpop: (key: string, count?: number) => Promise<string | string[] | null>;
sadd: (key: string, members: string[]) => Promise<number>;
srem: (key: string, members: string[]) => Promise<number>;
smembers: (key: string) => Promise<string[]>;
scard: (key: string) => Promise<number>;
exists: (keys: string[]) => Promise<number>;
unlink: (keys: string[]) => Promise<number>;
expire: (
key: string,
seconds: number,
option?: ExpireOptions
) => Promise<number>;
expireAt: (
key: string,
unixSeconds: number,
option?: ExpireOptions
) => Promise<number>;
pexpire: (
key: string,
milliseconds: number,
option?: ExpireOptions
) => Promise<number>;
pexpireAt: (
key: string,
unixMilliseconds: number,
option?: ExpireOptions
) => Promise<number>;
ttl: (key: string) => Promise<number>;
customCommand: (commandName: string, args: string[]) => Promise<ReturnType>;
};

async function getVersion(): Promise<[number, number, number]> {
const versioString = await new Promise<string>((resolve, reject) => {
exec(`redis-server -v`, (error, stdout) => {
Expand All @@ -107,8 +28,13 @@ async function getVersion(): Promise<[number, number, number]> {
return [parseInt(numbers[0]), parseInt(numbers[1]), parseInt(numbers[2])];
}

export type BaseClient = RedisClient | RedisClusterClient;

export function runBaseTests<Context>(config: {
init: () => Promise<{ context: Context; client: BaseClient }>;
init: () => Promise<{
context: Context;
client: BaseClient;
}>;
close: (context: Context, testSucceeded: boolean) => void;
timeout?: number;
}) {
Expand Down

0 comments on commit c9dff17

Please sign in to comment.