From 523af564307b7915cd302c070235f051b625e8d9 Mon Sep 17 00:00:00 2001 From: "H. Temelski" Date: Tue, 18 Mar 2025 14:09:07 +0200 Subject: [PATCH 1/3] Bumped docker test version, skipped failing tests --- .github/workflows/tests.yml | 2 +- packages/bloom/lib/test-utils.ts | 2 +- packages/client/lib/test-utils.ts | 2 +- packages/entraid/lib/test-utils.ts | 2 +- packages/json/lib/test-utils.ts | 2 +- packages/search/lib/commands/PROFILE_AGGREGATE.spec.ts | 8 +++----- packages/search/lib/test-utils.ts | 4 +++- packages/test-utils/lib/index.ts | 9 ++++++--- packages/time-series/lib/test-utils.ts | 2 +- 9 files changed, 18 insertions(+), 15 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7bcc72e5408..366a24b4dc6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -22,7 +22,7 @@ jobs: fail-fast: false matrix: node-version: [ '18', '20', '22' ] - redis-version: [ 'rs-7.2.0-v13', 'rs-7.4.0-v1', '8.0-M04-pre' ] + redis-version: [ 'rs-7.2.0-v13', 'rs-7.4.0-v1', '8.0-M05-pre' ] steps: - uses: actions/checkout@v4 with: diff --git a/packages/bloom/lib/test-utils.ts b/packages/bloom/lib/test-utils.ts index 7996d61e44e..71b423b41ea 100644 --- a/packages/bloom/lib/test-utils.ts +++ b/packages/bloom/lib/test-utils.ts @@ -4,7 +4,7 @@ import RedisBloomModules from '.'; export default TestUtils.createFromConfig({ dockerImageName: 'redislabs/client-libs-test', dockerImageVersionArgument: 'redis-version', - defaultDockerVersion: '8.0-M04-pre' + defaultDockerVersion: '8.0-M05-pre' }); export const GLOBAL = { diff --git a/packages/client/lib/test-utils.ts b/packages/client/lib/test-utils.ts index dce1f97d88a..f7862a9d685 100644 --- a/packages/client/lib/test-utils.ts +++ b/packages/client/lib/test-utils.ts @@ -8,7 +8,7 @@ import { BasicCommandParser } from './client/parser'; const utils = TestUtils.createFromConfig({ dockerImageName: 'redislabs/client-libs-test', dockerImageVersionArgument: 'redis-version', - defaultDockerVersion: '8.0-M04-pre' + defaultDockerVersion: '8.0-M05-pre' }); export default utils; diff --git a/packages/entraid/lib/test-utils.ts b/packages/entraid/lib/test-utils.ts index 970637a1225..11ad498f0b3 100644 --- a/packages/entraid/lib/test-utils.ts +++ b/packages/entraid/lib/test-utils.ts @@ -6,7 +6,7 @@ import { EntraidCredentialsProvider } from './entraid-credentials-provider'; export const testUtils = TestUtils.createFromConfig({ dockerImageName: 'redislabs/client-libs-test', dockerImageVersionArgument: 'redis-version', - defaultDockerVersion: '8.0-M04-pre' + defaultDockerVersion: '8.0-M05-pre' }); const DEBUG_MODE_ARGS = testUtils.isVersionGreaterThan([7]) ? diff --git a/packages/json/lib/test-utils.ts b/packages/json/lib/test-utils.ts index caa1c3049af..9894b2d0399 100644 --- a/packages/json/lib/test-utils.ts +++ b/packages/json/lib/test-utils.ts @@ -4,7 +4,7 @@ import RedisJSON from '.'; export default TestUtils.createFromConfig({ dockerImageName: 'redislabs/client-libs-test', dockerImageVersionArgument: 'redis-version', - defaultDockerVersion: '8.0-M04-pre' + defaultDockerVersion: '8.0-M05-pre' }); export const GLOBAL = { diff --git a/packages/search/lib/commands/PROFILE_AGGREGATE.spec.ts b/packages/search/lib/commands/PROFILE_AGGREGATE.spec.ts index bdf452c16ea..2bc57022e3e 100644 --- a/packages/search/lib/commands/PROFILE_AGGREGATE.spec.ts +++ b/packages/search/lib/commands/PROFILE_AGGREGATE.spec.ts @@ -1,5 +1,5 @@ import { strict as assert } from 'node:assert'; -import testUtils, { GLOBAL } from '../test-utils'; +import testUtils, { GLOBAL, skipTest } from '../test-utils'; import { FT_AGGREGATE_STEPS } from './AGGREGATE'; import PROFILE_AGGREGATE from './PROFILE_AGGREGATE'; import { SCHEMA_FIELD_TYPE } from './CREATE'; @@ -59,7 +59,7 @@ describe('PROFILE AGGREGATE', () => { assert.ok(shardProfile.includes('Warning')); assert.ok(shardProfile.includes('Iterators profile')); - }, GLOBAL.SERVERS.OPEN); + }, GLOBAL.SERVERS.OPEN, skipTest); testUtils.testWithClientIfVersionWithinRange([[7, 2, 0], [7, 4, 0]], 'client.ft.search', async client => { await Promise.all([ @@ -106,7 +106,5 @@ describe('PROFILE AGGREGATE', () => { const normalizedRes = normalizeObject(res); assert.equal(normalizedRes.Results.total_results, 1); assert.ok(normalizedRes.Profile.Shards); - - }, GLOBAL.SERVERS.OPEN_3) - + }, GLOBAL.SERVERS.OPEN_3, skipTest); }); diff --git a/packages/search/lib/test-utils.ts b/packages/search/lib/test-utils.ts index 1318676042e..57c0b9bcae1 100644 --- a/packages/search/lib/test-utils.ts +++ b/packages/search/lib/test-utils.ts @@ -2,10 +2,12 @@ import TestUtils from '@redis/test-utils'; import RediSearch from '.'; import { RespVersions } from '@redis/client'; +export const skipTest = true; + export default TestUtils.createFromConfig({ dockerImageName: 'redislabs/client-libs-test', dockerImageVersionArgument: 'redis-version', - defaultDockerVersion: '8.0-M04-pre' + defaultDockerVersion: '8.0-M05-pre' }); export const GLOBAL = { diff --git a/packages/test-utils/lib/index.ts b/packages/test-utils/lib/index.ts index b48f11b02c7..e6517ddb5f1 100644 --- a/packages/test-utils/lib/index.ts +++ b/packages/test-utils/lib/index.ts @@ -228,7 +228,8 @@ export default class TestUtils { >( title: string, fn: (client: RedisClientType) => unknown, - options: ClientTestOptions + options: ClientTestOptions, + skip?: boolean, ): void { let dockerPromise: ReturnType; if (this.isVersionGreaterThan(options.minimumDockerVersion)) { @@ -242,6 +243,7 @@ export default class TestUtils { } it(title, async function () { + if (skip) return this.skip(); if (!dockerPromise) return this.skip(); const client = createClient({ @@ -282,11 +284,12 @@ export default class TestUtils { range: ([minVersion: Array, maxVersion: Array] | [minVersion: Array, 'LATEST']), title: string, fn: (client: RedisClientType) => unknown, - options: ClientTestOptions + options: ClientTestOptions, + skip?: boolean ): void { if (this.isVersionInRange(range[0], range[1] === 'LATEST' ? [Infinity, Infinity, Infinity] : range[1])) { - return this.testWithClient(`${title} [${range[0].join('.')}] - [${(range[1] === 'LATEST') ? range[1] : range[1].join(".")}] `, fn, options) + return this.testWithClient(`${title} [${range[0].join('.')}] - [${(range[1] === 'LATEST') ? range[1] : range[1].join(".")}] `, fn, options, skip) } else { console.warn(`Skipping test ${title} because server version ${this.#VERSION_NUMBERS.join('.')} is not within range ${range[0].join(".")} - ${range[1] !== 'LATEST' ? range[1].join(".") : 'LATEST'}`) } diff --git a/packages/time-series/lib/test-utils.ts b/packages/time-series/lib/test-utils.ts index 0b7e940788f..0f25341e34d 100644 --- a/packages/time-series/lib/test-utils.ts +++ b/packages/time-series/lib/test-utils.ts @@ -4,7 +4,7 @@ import TimeSeries from '.'; export default TestUtils.createFromConfig({ dockerImageName: 'redislabs/client-libs-test', dockerImageVersionArgument: 'redis-version', - defaultDockerVersion: '8.0-M04-pre' + defaultDockerVersion: '8.0-M05-pre' }); export const GLOBAL = { From a1d5bc6e786556d3d4da32cac276aa7c4bb3d5ae Mon Sep 17 00:00:00 2001 From: "H. Temelski" Date: Tue, 18 Mar 2025 14:10:26 +0200 Subject: [PATCH 2/3] Minor refactor --- packages/test-utils/lib/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/test-utils/lib/index.ts b/packages/test-utils/lib/index.ts index e6517ddb5f1..a91cb62a7ef 100644 --- a/packages/test-utils/lib/index.ts +++ b/packages/test-utils/lib/index.ts @@ -229,7 +229,7 @@ export default class TestUtils { title: string, fn: (client: RedisClientType) => unknown, options: ClientTestOptions, - skip?: boolean, + skipTest?: boolean, ): void { let dockerPromise: ReturnType; if (this.isVersionGreaterThan(options.minimumDockerVersion)) { @@ -243,7 +243,7 @@ export default class TestUtils { } it(title, async function () { - if (skip) return this.skip(); + if (skipTest) return this.skip(); if (!dockerPromise) return this.skip(); const client = createClient({ @@ -285,11 +285,11 @@ export default class TestUtils { title: string, fn: (client: RedisClientType) => unknown, options: ClientTestOptions, - skip?: boolean + skipTest?: boolean ): void { if (this.isVersionInRange(range[0], range[1] === 'LATEST' ? [Infinity, Infinity, Infinity] : range[1])) { - return this.testWithClient(`${title} [${range[0].join('.')}] - [${(range[1] === 'LATEST') ? range[1] : range[1].join(".")}] `, fn, options, skip) + return this.testWithClient(`${title} [${range[0].join('.')}] - [${(range[1] === 'LATEST') ? range[1] : range[1].join(".")}] `, fn, options, skipTest) } else { console.warn(`Skipping test ${title} because server version ${this.#VERSION_NUMBERS.join('.')} is not within range ${range[0].join(".")} - ${range[1] !== 'LATEST' ? range[1].join(".") : 'LATEST'}`) } From ab70f30ba4b8d77a2ef052cc781c6b1f618e7e27 Mon Sep 17 00:00:00 2001 From: "H. Temelski" Date: Tue, 18 Mar 2025 14:39:54 +0200 Subject: [PATCH 3/3] More refactoring --- .../search/lib/commands/PROFILE_AGGREGATE.spec.ts | 6 +++--- packages/search/lib/test-utils.ts | 2 -- packages/test-utils/lib/index.ts | 12 ++++++------ 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/search/lib/commands/PROFILE_AGGREGATE.spec.ts b/packages/search/lib/commands/PROFILE_AGGREGATE.spec.ts index 2bc57022e3e..ca2302f08ea 100644 --- a/packages/search/lib/commands/PROFILE_AGGREGATE.spec.ts +++ b/packages/search/lib/commands/PROFILE_AGGREGATE.spec.ts @@ -1,5 +1,5 @@ import { strict as assert } from 'node:assert'; -import testUtils, { GLOBAL, skipTest } from '../test-utils'; +import testUtils, { GLOBAL } from '../test-utils'; import { FT_AGGREGATE_STEPS } from './AGGREGATE'; import PROFILE_AGGREGATE from './PROFILE_AGGREGATE'; import { SCHEMA_FIELD_TYPE } from './CREATE'; @@ -59,7 +59,7 @@ describe('PROFILE AGGREGATE', () => { assert.ok(shardProfile.includes('Warning')); assert.ok(shardProfile.includes('Iterators profile')); - }, GLOBAL.SERVERS.OPEN, skipTest); + }, Object.assign(GLOBAL.SERVERS.OPEN, {skipTest: true})); testUtils.testWithClientIfVersionWithinRange([[7, 2, 0], [7, 4, 0]], 'client.ft.search', async client => { await Promise.all([ @@ -106,5 +106,5 @@ describe('PROFILE AGGREGATE', () => { const normalizedRes = normalizeObject(res); assert.equal(normalizedRes.Results.total_results, 1); assert.ok(normalizedRes.Profile.Shards); - }, GLOBAL.SERVERS.OPEN_3, skipTest); + }, Object.assign(GLOBAL.SERVERS.OPEN_3, {skipTest: true})); }); diff --git a/packages/search/lib/test-utils.ts b/packages/search/lib/test-utils.ts index 57c0b9bcae1..7264b1b6b12 100644 --- a/packages/search/lib/test-utils.ts +++ b/packages/search/lib/test-utils.ts @@ -2,8 +2,6 @@ import TestUtils from '@redis/test-utils'; import RediSearch from '.'; import { RespVersions } from '@redis/client'; -export const skipTest = true; - export default TestUtils.createFromConfig({ dockerImageName: 'redislabs/client-libs-test', dockerImageVersionArgument: 'redis-version', diff --git a/packages/test-utils/lib/index.ts b/packages/test-utils/lib/index.ts index a91cb62a7ef..1c564749ff2 100644 --- a/packages/test-utils/lib/index.ts +++ b/packages/test-utils/lib/index.ts @@ -54,6 +54,7 @@ interface TestUtilsConfig { interface CommonTestOptions { serverArguments: Array; minimumDockerVersion?: Array; + skipTest?: boolean; } interface ClientTestOptions< @@ -228,8 +229,7 @@ export default class TestUtils { >( title: string, fn: (client: RedisClientType) => unknown, - options: ClientTestOptions, - skipTest?: boolean, + options: ClientTestOptions ): void { let dockerPromise: ReturnType; if (this.isVersionGreaterThan(options.minimumDockerVersion)) { @@ -243,7 +243,7 @@ export default class TestUtils { } it(title, async function () { - if (skipTest) return this.skip(); + if (options.skipTest) return this.skip(); if (!dockerPromise) return this.skip(); const client = createClient({ @@ -284,12 +284,11 @@ export default class TestUtils { range: ([minVersion: Array, maxVersion: Array] | [minVersion: Array, 'LATEST']), title: string, fn: (client: RedisClientType) => unknown, - options: ClientTestOptions, - skipTest?: boolean + options: ClientTestOptions ): void { if (this.isVersionInRange(range[0], range[1] === 'LATEST' ? [Infinity, Infinity, Infinity] : range[1])) { - return this.testWithClient(`${title} [${range[0].join('.')}] - [${(range[1] === 'LATEST') ? range[1] : range[1].join(".")}] `, fn, options, skipTest) + return this.testWithClient(`${title} [${range[0].join('.')}] - [${(range[1] === 'LATEST') ? range[1] : range[1].join(".")}] `, fn, options) } else { console.warn(`Skipping test ${title} because server version ${this.#VERSION_NUMBERS.join('.')} is not within range ${range[0].join(".")} - ${range[1] !== 'LATEST' ? range[1].join(".") : 'LATEST'}`) } @@ -319,6 +318,7 @@ export default class TestUtils { } it(title, async function () { + if (options.skipTest) return this.skip(); if (!dockerPromise) return this.skip(); const pool = createClientPool({